2016-08-24 1 views
2

동일한 브라우저의 여러 탭에서 로그인을 시도하면 icCube IDE에서 예외가 발생합니다. 이유가 무엇인지 알 수 있습니까?icCube의 두 인스턴스 : 여러 탭에서 IDE에 로그인

쿠키를 지우는 것이 도움이되지만 매우 불편한 해결 방법입니다.

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

두 개의 다른 icCube 인스턴스를 사용하고 있습니까? – ic3

+0

예, 두 개의 icCube 인스턴스가 있지만 두 개의 다른 서버에 두 개의 라이센스가 있음 – koszti

답변

1

당신이 (다른 포트는 동일한 URL에 icCube의 여러 isntances을 공유하는 경우 충분하지 않음) JSESSION 쿠키와 충돌을 일으킬 것입니다. 이 두 URL은 대부분 충돌합니다 :이 설정에 대한

myIcCube.myCompany.com:8282/icCube/icCube.html 
    myIcCube.myCompany.com:8283/icCube/icCube.html 

당신은 주석을 해제해야 할 서버에서 그들 고유 만들기 위해 icCube.xml 파일의 웹 애플리케이션 부분. 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> 

서버를 다시 시작한 후에는 (우리는 또한 우리의 테스트 서버에서이 문제를했다) 잘해야한다.

Java Servlet 기반 웹 서버를 사용하는 경우에 대비하여 icCube의 기본 JSESSION을 변경하는 좋은 방법이기도합니다.

+0

변경을 수행하고 서버를 다시 시작했으며 JSESSIONID {_xyz}는 이제 고유하지만 작동하지 않습니다. 여러 개의 탭을 사용하는 것은 쿠키를 지울 수있는 유일한 방법입니다. – koszti

+0

iccube에서 지원 담당자에게 문의해야합니다. 환경이 어떻게 든 특별한 것처럼 보입니다. – ic3

+0

네, 중간에 우리의 네트워크 및 프록시 설정에 문제가 있습니다. icCube에 직접 액세스하려고하면 정상적으로 작동합니다. 감사. – koszti