当我尝试从命令行jetty启动时失败:错误无法访问jarfile start.jar。我已经添加了$ path环境变量,这个码头的路径没有发生任何事情。 之前我想在jetty上运行我的应用程序,但在intellij的输出控制台中碰撞了这个:
"C:\Program Files\Java\jdk1.7.0_25\bin\java" -agentlib:jdwp=transport=dt_socket,address=127.0.0.1:16231,suspend=y,server=n -DSTOP.PORT=0 -Dcom.sun.management.jmxremote= -Dcom.sun.management.jmxremote.port=1099 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -DOPTIONS=jmx -Dfile.encoding=windows-1251 -classpath "start.jar;C:\Program Files (x86)\JetBrains\IntelliJ IDEA 12.0\lib\idea_rt.jar" org.eclipse.jetty.start.Main etc/jetty-jmx.xml C:\Users\Grigoriy\AppData\Local\Temp\context4870587588634592162config\jetty-contexts.xml
[2013-11-25 03:17:23,756] Artifact sandbox:war exploded: Server is not connected. Press 'Deploy' to start deployment.
Connected to the target VM, address: '127.0.0.1:16231', transport: 'socket'
2013-11-25 03:17:25.237:WARN:oejx.XmlConfiguration:main: Config error at <Call name="addBean"><Arg>| <New class="org.eclipse.jetty.monitor.ThreadMonitor"><Set name="scanInterval">2000</Set><Set name="busyThreshold">90</Set><Set name="stackDepth">3</Set><Set name="trailLength">2</Set></New>| </Arg></Call> java.lang.ClassNotFoundException: org.eclipse.jetty.monitor.ThreadMonitor in file:/D:/servers/jetty907/jetty-distribution-9.0.7.v20131107/etc/jetty-monitor.xml
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.eclipse.jetty.start.Main.invokeMain(Main.java:509)
at org.eclipse.jetty.start.Main.start(Main.java:651)
at org.eclipse.jetty.start.Main.main(Main.java:99)
Caused by: java.lang.ClassNotFoundException: org.eclipse.jetty.monitor.ThreadMonitor
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at org.eclipse.jetty.util.Loader.loadClass(Loader.java:100)
at org.eclipse.jetty.xml.XmlConfiguration$JettyXmlConfiguration.nodeClass(XmlConfiguration.java:364)
at org.eclipse.jetty.xml.XmlConfiguration$JettyXmlConfiguration.newObj(XmlConfiguration.java:754)
at org.eclipse.jetty.xml.XmlConfiguration$JettyXmlConfiguration.itemValue(XmlConfiguration.java:1125)
at org.eclipse.jetty.xml.XmlConfiguration$JettyXmlConfiguration.value(XmlConfiguration.java:1030)
at org.eclipse.jetty.xml.XmlConfiguration$JettyXmlConfiguration.call(XmlConfiguration.java:721)
at org.eclipse.jetty.xml.XmlConfiguration$JettyXmlConfiguration.configure(XmlConfiguration.java:417)
at org.eclipse.jetty.xml.XmlConfiguration$JettyXmlConfiguration.configure(XmlConfiguration.java:354)
at org.eclipse.jetty.xml.XmlConfiguration.configure(XmlConfiguration.java:262)
at org.eclipse.jetty.xml.XmlConfiguration$1.run(XmlConfiguration.java:1238)
at java.security.AccessController.doPrivileged(Native Method)
at org.eclipse.jetty.xml.XmlConfiguration.main(XmlConfiguration.java:1174)
... 7 more
Usage: java -jar start.jar [options] [properties] [configs]
java -jar start.jar --help # for more information
Disconnected from the target VM, address: '127.0.0.1:16231', transport: 'socket'
Disconnected from server
Process finished with exit code -2
更新。 这是我的jetty-deploy.xml`
<Call id="webappprovider" name="addAppProvider">
<Arg>
<New class="org.eclipse.jetty.deploy.providers.WebAppProvider">
<Set name="monitoredDirName"><Property name="jetty.home" default="." />/webapps</Set>
<Set name="defaultsDescriptor"><Property name="jetty.home" default="." />/etc/webdefault.xml</Set>
<Set name="scanInterval">1</Set>
<Set name="extractWars">true</Set>
<Set name="configurationManager">
<New class="org.eclipse.jetty.deploy.PropertiesConfigurationManager">
</New>
</Set>
</New>
</Arg>
</Call>`
所以,我不明白在什么时候以及为什么ContextProvider会取代WebAppProvider。
答案 0 :(得分:0)
从您的错误消息中......
2013-11-25 03:17:25.237:WARN:oejx.XmlConfiguration:main: Config error at
<Call name="addBean">
<Arg>
<New class="org.eclipse.jetty.monitor.ThreadMonitor">
<Set name="scanInterval">2000</Set>
<Set name="busyThreshold">90</Set>
<Set name="stackDepth">3</Set>
<Set name="trailLength">2</Set>
</New>
</Arg>
</Call>
java.lang.ClassNotFoundException: org.eclipse.jetty.monitor.ThreadMonitor
in file:/D:/servers/jetty907/jetty-distribution-9.0.7.v20131107/etc/jetty-monitor.xml
我们很快就会发现您正在运行Jetty Distribution 9.0.7.v20131107,并且您的类路径中可能没有jetty-monitor
jar。
(注意:Jetty 9.1及更新版本的这些说明不同)
要测试服务器类路径,请运行此命令行。
D:\servers\jetty907\jetty-distribution-9.0.7.v20131107> java -jar start.jar --version
Active Options: [Server, annotations, client, ext, jaas, jmx, jndi, jndi.demo, jsp, plus, resources, rewrite, websocket]
Version Information on 37 entries in the classpath.
Note: order presented here is how they would appear on the classpath.
changes to the OPTIONS=[option,option,...] command line option will be reflected here.
0: 9.0.7.v20131107 | ${jetty.home}/lib/jetty-xml-9.0.7.v20131107.jar
1: 3.0.0.v201112011016 | ${jetty.home}/lib/servlet-api-3.0.jar
2: 9.0.7.v20131107 | ${jetty.home}/lib/jetty-http-9.0.7.v20131107.jar
3: 9.0.7.v20131107 | ${jetty.home}/lib/jetty-continuation-9.0.7.v20131107.jar
4: 9.0.7.v20131107 | ${jetty.home}/lib/jetty-server-9.0.7.v20131107.jar
5: 9.0.7.v20131107 | ${jetty.home}/lib/jetty-security-9.0.7.v20131107.jar
6: 9.0.7.v20131107 | ${jetty.home}/lib/jetty-servlet-9.0.7.v20131107.jar
7: 9.0.7.v20131107 | ${jetty.home}/lib/jetty-webapp-9.0.7.v20131107.jar
8: 9.0.7.v20131107 | ${jetty.home}/lib/jetty-deploy-9.0.7.v20131107.jar
9: 9.0.7.v20131107 | ${jetty.home}/lib/jetty-annotations-9.0.7.v20131107.jar
10: 1.1.0.v201108011116 | ${jetty.home}/lib/annotations/javax.annotation-1.1.0.v201108011116.jar
11: 3.1.0.v200803061910 | ${jetty.home}/lib/annotations/org.objectweb.asm-3.1.0.v200803061910.jar
12: 9.0.7.v20131107 | ${jetty.home}/lib/jetty-client-9.0.7.v20131107.jar
13: 9.0.7.v20131107 | ${jetty.home}/lib/jetty-jaas-9.0.7.v20131107.jar
14: 9.0.7.v20131107 | ${jetty.home}/lib/jetty-jmx-9.0.7.v20131107.jar
15: 9.0.7.v20131107 | ${jetty.home}/lib/jetty-jndi-9.0.7.v20131107.jar
16: 9.0.7.v20131107 | ${jetty.home}/lib/jetty-plus-9.0.7.v20131107.jar
17: 1.1.0.v201105071233 | ${jetty.home}/lib/jndi/javax.activation-1.1.0.v201105071233.jar
18: 1.4.1.v201005082020 | ${jetty.home}/lib/jndi/javax.mail.glassfish-1.4.1.v201005082020.jar
19: 1.1.1 | ${jetty.home}/lib/jndi/javax.transaction-1.1.1.v201105210645.jar
20: 9.0.7.v20131107 | ${jetty.home}/lib/jndi.demo/test-mock-resources-9.0.7.v20131107.jar
21: 2.2.0.v201303151357 | ${jetty.home}/lib/jsp/com.sun.el-2.2.0.v201303151357.jar
22: 2.2.0.v201303151357 | ${jetty.home}/lib/jsp/javax.el-2.2.0.v201303151357.jar
23: 1.2.0.v201105211821 | ${jetty.home}/lib/jsp/javax.servlet.jsp.jstl-1.2.0.v201105211821.jar
24: 2.2.0.v201112011158 | ${jetty.home}/lib/jsp/javax.servlet.jsp-2.2.0.v201112011158.jar
25: 2.2.2.v201112011158 | ${jetty.home}/lib/jsp/org.apache.jasper.glassfish-2.2.2.v201112011158.jar
26: 1.2.0.v201112081803 | ${jetty.home}/lib/jsp/org.apache.taglibs.standard.glassfish-1.2.0.v201112081803.jar
27: 3.8.2.v20130121-145325 | ${jetty.home}/lib/jsp/org.eclipse.jdt.core-3.8.2.v20130121.jar
28: (dir) | ${jetty.home}/resources
29: 9.0.7.v20131107 | ${jetty.home}/lib/jetty-rewrite-9.0.7.v20131107.jar
30: 9.0.7.v20131107 | ${jetty.home}/lib/websocket/websocket-api-9.0.7.v20131107.jar
31: 9.0.7.v20131107 | ${jetty.home}/lib/websocket/websocket-client-9.0.7.v20131107.jar
32: 9.0.7.v20131107 | ${jetty.home}/lib/websocket/websocket-common-9.0.7.v20131107.jar
33: 9.0.7.v20131107 | ${jetty.home}/lib/websocket/websocket-server-9.0.7.v20131107.jar
34: 9.0.7.v20131107 | ${jetty.home}/lib/websocket/websocket-servlet-9.0.7.v20131107.jar
35: 9.0.7.v20131107 | ${jetty.home}/lib/jetty-util-9.0.7.v20131107.jar
36: 9.0.7.v20131107 | ${jetty.home}/lib/jetty-io-9.0.7.v20131107.jar
要寻找的两件事:
在上面的示例中,您可以看到这些都不存在。
所以我们将它们添加到初创公司。 (确保start.ini
)
OPTIONS=monitor
etc/jetty-monitor.xml
然后重新运行类路径java -jar start.jar --version
的测试,看看你现在有${jetty.home}/lib/monitor/jetty-monitor-9.0.7.v20131107.jar
答案 1 :(得分:0)
我不知道我们是否有完全相同的错误原因,但如果有人遇到同样的问题,我会留下这个。对我来说,解决方案是指定端口号。
java -Djetty.port=8081 -jar start.jar etc/jetty.xml
这里有一个更好的解决方案,可能是进程已占用端口。 Jetty Startup Fails - Address in Use。
像在另一个答案中建议的那样添加监视器导致了classNotFoundException。
这是一个非常糟糕的事情,因为我曾经关于Jetty的第一个命令给了我这样的错误,我不得不花费半个小时来解决这个问题:)