2013-11-24 119 views
1

當我嘗試從命令行碼頭啓動它的失敗:錯誤無法訪問jarfile start.jar。我已經添加到$ path環境變量jetty bun沒有發生任何事情的路徑。 之前,我想我跑碼頭上的應用程序,但在的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 

更新。 這是我的碼頭,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

從你的錯誤消息...

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 

我們可以快速查看您正在運行的碼頭分佈9.0.7.v20131107,而且可能沒有在類路徑中jetty-monitor罐子。

(注:這些指令用於碼頭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 

的兩件事情來尋找:

  1. 「工作選項」行應該有「監督」上市
  2. 在classpath 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

+0

我決定排除從碼頭碼頭監視器intellij中的配置。現在,當我啓動我的應用程序時,它會在類ContextProvider的jetty-contexts.xml中拋出ClassNotFoundException異常。當我嘗試在具有相同服務器的另一臺計算機上啓動我的應用程序時,它成功完成並在碼頭環境中完成。XML我發現WebAppProvider而不是ContextProvider。 –

+0

當我嘗試在命令行中驗證碼頭版本時,我看到「D:\ servers \ jetty907 \ jetty-distribution-9.0.7.v20131107未被識別爲內部或外部命令,可操作程序或批處理文件」 –

+0

'java -jar start.jar --version'命令必須從'cmd'(命令行)運行,並且你必須首先轉換到你的分發目錄才能工作。 –

0

的類路徑條目,我不知道我們是否有錯誤的原因完全一樣,但是我會留下這個以防止任何人遇到同樣的問題。對我來說,解決方案是指定端口號。

java -Djetty.port=8081 -jar start.jar etc/jetty.xml

更好的解決方案是在這裏,它可能是一個進程已佔用的端口。 Jetty Startup Fails - Address in Use

像在其他答案中建議的一樣添加監視器導致出現classNotFoundException。

這是一個很大的無賴,因爲我曾經跑了關於碼頭的第一個命令給了我這樣的錯誤,我不得不花了良好的半小時圖了這一點:)