使用一个新的脚手架应用程序,它是从"yo“生成的,并以"mvn spring:run”和"grunt server“开始的,我可以加载该应用程序并执行诸如登录、查看度量、查看会话、设置、日志和审核等操作。但是,每当我看到“用户跟踪器”页面时,我什么都看不到?
我相信这部分应该是演示气氛,websocket / AngularJS集成?查看浏览器控制台日志,我看到以下内容:
Websocket failed. Downgrading to Comet and resending atmosphere.js:2866
GET http://0.0.0.0:9000/websocket/activity?X-Atmosphere-tracking-id=0&X-Atmosph…true&X-Cache-Date=0application%2Fjson&X-atmo-protocol=true&_=1393276976964 404 (Not Found) 似乎尝试了一个websocket连接,但最终超时了,并且长期轮询失败了?我正在使用最新的Chrome (也在Firefox和Safari的最新版本上试用)。
我错过了一些简单的东西吗?
--更新1 --
将其作为WAR部署到Tomcat 7.0.50显示的是用户跟踪器页面中大气中的数据,但它不断循环试图获得WebSocket连接(HTTP代码101: switching protocols),因此用户数据周期性地出现和消失。我在Chrome中看到了这样一个错误:
No suspended connection available. Make sure atmosphere.subscribe has been called and request.onOpen invoked before invoking this method Tomcat日志显示了以下内容:
[WARN] org.atmosphere.cpr.DefaultAnnotationProcessor - Unable to detect annotations. Application may fail to deploy.--更新2 --
将它作为战争部署到Jetty 8.1.14.v20131031 (Jetty 9.1.1.v20140108抛出错误)并使用Chrome 32.0.1700.107测试它,似乎适用于长轮询的回退传输。但是,由于大气出于某种原因认为servlet容器是Tomcat,所以到WebSockets的初始连接失败了?在服务器日志中,它引发以下问题:
java.lang.ClassCastException: org.eclipse.jetty.server.Request cannot be cast to org.apache.catalina.connector.RequestFacade
at org.atmosphere.container.TomcatWebSocketUtil.doService(TomcatWebSocketUtil.java:141)
at org.atmosphere.container.Tomcat7Servlet30SupportWithWebSocket.service(Tomcat7Servlet30SupportWithWebSocket.java:62)再次感谢你的帮助--肯定取得了进展:)
--更新3 --
概括一下每件事:
发布于 2014-02-24 21:54:30
不,你没有错过什么:-)
如果您直接使用Java服务器,它应该可以工作:您需要使用另一个浏览器(或另一个选项卡)连接到应用程序,您将看到它在工作。
但是,对于"grunt server",有一个bug: Grunt代理只是不支持Websocket,所以它不工作.因此,有一件奇怪的事情,那就是回退运输不起作用。
我把它填成窃听器了。
更新1
关于您的更新,它看起来还有另一个气氛错误:http://atmosphere-framework.2306103.n4.nabble.com/Log-warning-that-Atmosphere-is-unable-to-detect-annotations-td4658159.html
看起来Atmopshere在WAR中找不到它的注释,您能在开发模式("mvn spring-boot:run")中尝试相同的东西吗?这意味着这是Tomcat战争的一个问题
https://stackoverflow.com/questions/21999490
复制相似问题