2017-10-12 95 views
0

나는 부두 건설업자을 사용하여 일부 리소스를 푸시합니다. 이러한 리소스는 webapp 내부에서 지정되므로 부두의 기본 pushCacheFilter를 사용할 수 없습니다.java.lang.ClassNotFoundException : 부두로 시작하는 경우 org.eclipse.jetty.server.Request : run-forked에서 ssl로 연결

내 메인 자바 클래스에서 임베디드 임베디드 시스템을 시작할 때 제대로 작동하며 https로 내 페이지에 연결할 수 있으며 푸시도 정상적으로 작동합니다.

내가 부두를 통해 시작할 때 : 실행 갈래, 그 시작이 출력 제공 : 페이지에 액세스 할 때 내가 얻을이 오류를

**Started [email protected]{SSL,[http/1.1, ssl, alpn, h2]}{0.0.0.0:8443}** 

과 :

**java.lang.ClassNotFoundException: org.eclipse.jetty.server.Request 
at org.eclipse.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:586)** 
at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 
at org.basex.http2.HTTP2Settings.push(HTTP2Settings.java:60) 
at org.basex.http.HTTPConnection.initResponse(HTTPConnection.java:127) 
at org.basex.http.restxq.RestXqResponse.serialize(RestXqResponse.java:209) 
at org.basex.http.restxq.RestXqResponse.serialize(RestXqResponse.java:195) 
at org.basex.http.restxq.RestXqResponse.create(RestXqResponse.java:97) 
at org.basex.http.restxq.RestXqModule.process(RestXqModule.java:104) 
at org.basex.http.restxq.RestXqFunction.process(RestXqFunction.java:109) 
at org.basex.http.restxq.RestXqServlet.run(RestXqServlet.java:49) 
at org.basex.http.BaseXServlet.service(BaseXServlet.java:59) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) 
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:833) 
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1650) 
at org.eclipse.jetty.websocket.server.WebSocketUpgradeFilter.doFilter(WebSocketUpgradeFilter.java:206) 
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637) 
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:533) 
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) 
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548) 
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132) 
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:190) 
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595) 
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:188) 
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1253) 
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:168) 
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473) 
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564) 
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:166) 
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1155) 
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) 
at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:219) 
at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:126) 
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132) 
at org.eclipse.jetty.server.Server.handle(Server.java:564) 
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:317) 
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:251) 
at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:279) 
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:110) 
at org.eclipse.jetty.io.ssl.SslConnection.onFillable(SslConnection.java:289) 
at org.eclipse.jetty.io.ssl.SslConnection$3.succeeded(SslConnection.java:149) 
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:110) 
at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:124) 
at org.eclipse.jetty.util.thread.Invocable.invokePreferred(Invocable.java:128) 
at org.eclipse.jetty.util.thread.Invocable$InvocableExecutor.invoke(Invocable.java:222) 
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:294) 
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:199) 
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:673) 
at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:591) 
at java.lang.Thread.run(Thread.java:748) 

는 어쩌면 그것은 STH이야 . 메이븐 클래스 로딩?

편집

또 다른 오류가 발생합니다 : 내 최신의 일부 코드-변경 받는다는 빌드 후 누락 된 것으로 보인다. "maven clean"을 실행하려고했지만 필드가 여전히 누락되어 예외가 발생했습니다.

이 필드는 jetty가 시작될 때도 발견됩니다.

많이 Thx! 부두는 서블릿 컨테이너의 경우

서버 클래스는 웹 애플리케이션에서 숨겨진 :

답변

0

다시 부두-문서를 읽은 후 나는 이유를 발견했다. 그래서 이것은 내 잘못이었습니다. 예외는 던져 져야했습니다! (여기의 문서를 참조하십시오 : http://www.eclipse.org/jetty/documentation/9.4.x/jetty-classloading.html)

다른 누락 필드 예외는이 "금지 된"가져 오기와 관련이 있다고 생각합니다.

그래서 난 내 문제는 다른 생각 :

이 어떻게 (부두 별) serverPush이 실현 될 수있다, 내 웹 애플리케이션이 부두에 배치되어 있는지 확실하지 때?

부두 자체 솔루션 (pushCacheFilter.java)이 내 필요에 맞지 않습니다. 그래서 부두가 응답을 보내는 순간에 작동하는 필터를 작성할 수 있는지 확인해야합니다.