icCube IDE会引发异常。你知道可能是什么原因吗?
清除Cookie会有所帮助,但这是一种非常不舒服的解决方法。
IDE显示一个带有AUTHENTICATIONERROR:
的弹出窗口com.google.gwt.user.client.rpc.StatusCodeException: 500 The call failed on the server; see server log for details
服务器日志显示异常:
javax.servlet.ServletException: Content-Type was 'text/plain; charset=utf-8'. Expected 'text/x-gwt-rpc'.
at com.google.gwt.user.server.rpc.RPCServletUtils.checkContentTypeIgnoreCase(RPCServletUtils.java:476)
at com.google.gwt.user.server.rpc.RPCServletUtils.readContent(RPCServletUtils.java:207)
at com.google.gwt.user.server.rpc.RPCServletUtils.readContentAsGwtRpc(RPCServletUtils.java:250)
at com.google.gwt.user.server.rpc.AbstractRemoteServiceServlet.readContent(AbstractRemoteServiceServlet.java:182)
at com.google.gwt.user.server.rpc.RemoteServiceServlet.processPost(RemoteServiceServlet.java:239)
at com.google.gwt.user.server.rpc.AbstractRemoteServiceServlet.doPost(AbstractRemoteServiceServlet.java:62)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:808)
at crazydev.iccube.server.http.IcCubeServletHolder.handle(SourceFile:63)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1669)
at crazydev.iccube.server.authentication.IcCubeGwtAuthenticationServletFilter.doFilter(SourceFile:101)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:585)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:221)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:110)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)
at org.eclipse.jetty.server.Server.handle(Server.java:497)
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:310)
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257)
at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:540)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635)
at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555)
答案 0 :(得分:1)
如果您在同一个网址上共享多个icCube的等值(不同的端口是不够的),您将与JSESSION Cookie发生冲突。这两个URL很可能会发生冲突:
myIcCube.myCompany.com:8282/icCube/icCube.html
myIcCube.myCompany.com:8283/icCube/icCube.html
对于此设置,您需要取消注释icCube.xml文件的webApp部分,以使其在您的服务器中唯一。例如,对于8282服务器:
<webApp>
<!--
An example showing how to change the name of the JSESSIONID cookie; handy for example
when having icCube part of a complex Web App (e.g., behind a proxy).
-->
<context-param>
<param-name>org.eclipse.jetty.servlet.SessionCookie</param-name>
<param-value>IC3_JSESSIONID_8282</param-value>
</context-param>
<context-param>
<param-name>org.eclipse.jetty.servlet.SessionIdPathParameterName</param-name>
<param-value>ic3_jsessionid_8282</param-value>
</context-param>
</webApp>
重新启动服务器后应该没问题(我们的测试服务器上也存在此问题)。
这也是改变icCube默认JSESSION的好方法,以防你在基于Java Servlet的Web服务器之后。