2014-11-24 64 views
0

這是一個非常基本的例子。 我想用下面的jetty加載web應用程序。Jetty有一個超時異常加載戰爭

public static void main(String[] args) throws Exception { 
    Server server = new Server(8085);  
    WebAppContext webapp = new WebAppContext("D:/workspace/camel/TestWithGradle/src/main/java/sample.war" , "sample"); 
    webapp.setExtractWAR(true); 
    webapp.setParentLoaderPriority(true); 


    server.setHandler(webapp); 
    server.start(); 
    server.join(); 
} 

而且戰爭https://github.com/heroku/heroku-deploy/blob/master/spec/resources/sample-war.war 它是一個使用JSP文件和Java Servlet的非常簡單的戰爭。

但是,我運行此應用程序,控制檯給了例外..

2014-11-24 23:52:49.528:INFO::main: Logging initialized @333ms 
2014-11-24 23:52:49.689:INFO:oejs.Server:main: jetty-9.1.5.v20140505 
2014-11-24 23:53:11.779:WARN:oejw.WebAppContext:main: Failed startup of context [email protected]{sample,file:/C:/Users/SDS/AppData/Local/Temp/jetty-0.0.0.0-8085-sample.war-sample-any-853618354381316480.dir/webapp/,null}{D:/workspace/camel/TestWithGradle/src/main/java/sample.war} 
java.net.ConnectException: Connection timed out: connect 
    at java.net.DualStackPlainSocketImpl.connect0(Native Method) 
    at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:79) 
    at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339) 
    at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200) 
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182) 
    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172) 
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) 
    at java.net.Socket.connect(Socket.java:579) 
    at java.net.Socket.connect(Socket.java:528) 
    at sun.net.NetworkClient.doConnect(NetworkClient.java:180) 
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:432) 
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:527) 
    at sun.net.www.http.HttpClient.<init>(HttpClient.java:211) 
    at sun.net.www.http.HttpClient.New(HttpClient.java:308) 
    at sun.net.www.http.HttpClient.New(HttpClient.java:326) 
    at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:996) 
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:932) 
    at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:850) 
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1300) 
    at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.setupCurrentEntity(XMLEntityManager.java:637) 
    at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.startEntity(XMLEntityManager.java:1290) 
    at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.startDTDEntity(XMLEntityManager.java:1257) 
    at com.sun.org.apache.xerces.internal.impl.XMLDTDScannerImpl.setInputSource(XMLDTDScannerImpl.java:263) 
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$DTDDriver.dispatch(XMLDocumentScannerImpl.java:1164) 
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$DTDDriver.next(XMLDocumentScannerImpl.java:1050) 
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(XMLDocumentScannerImpl.java:964) 
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:606) 
    at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:117) 
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:510) 
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:848) 
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:777) 
    at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141) 
    at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1213) 
    at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:649) 
    at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl.parse(SAXParserImpl.java:333) 
    at org.eclipse.jetty.xml.XmlParser.parse(XmlParser.java:246) 
    at org.eclipse.jetty.webapp.Descriptor.parse(Descriptor.java:67) 
    at org.eclipse.jetty.webapp.WebDescriptor.parse(WebDescriptor.java:204) 
    at org.eclipse.jetty.webapp.MetaData.setWebXml(MetaData.java:192) 
    at org.eclipse.jetty.webapp.WebXmlConfiguration.preConfigure(WebXmlConfiguration.java:60) 
    at org.eclipse.jetty.webapp.WebAppContext.preConfigure(WebAppContext.java:460) 
    at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:496) 
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68) 
    at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:125) 
    at org.eclipse.jetty.server.Server.start(Server.java:358) 
    at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:107) 
    at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:60) 
    at org.eclipse.jetty.server.Server.doStart(Server.java:325) 
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68) 
    at TestServer.main(TestServer.java:21) 
2014-11-24 23:53:11.874:INFO:oejs.ServerConnector:main: Started [email protected]{HTTP/1.1}{0.0.0.0:8085} 
2014-11-24 23:53:11.875:INFO:oejs.Server:main: Started @22829ms 

請幫我精心的解釋。感謝閱讀和你的時間。

回答

0

您的XML有一個錯誤的DTD或名稱空間聲明。

啓動嘗試從遠程URL獲取某些資源,這些資源將用於驗證XML。

這不會發生在正常的碼頭分佈或普通的碼頭瓶子工件上。

開始確保您使用的是官方碼頭罐子,不重新打包,不uberjar他們,不要一罐子他們,讓他們獨立(現在)。

然後確保您的各種XML文件中沒有錯別字。特別是在你的戰爭文件中,以及WEB-INF/lib/*.jar文件的所有內容。有可能是一個小的錯字或引用不正確,以至於Jetty無法使用碼頭罐子附帶的驗證資源來縮短該遠程資源請求。

+0

我已經加載的tomcat把戰成webapp目錄在Tomcat中這場戰爭。 – verystrongjoe 2014-11-25 01:45:14

+0

無關緊要。 Tomcat可能不會驗證他們的XML。或者您使用的Tomcat安裝有Jetty沒有的缺失資源。 – 2014-11-25 12:37:56