无法从命令行启动码头

时间:2013-11-24 23:54:18

标签: java gwt intellij-idea jetty

当我尝试从命令行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。

2 个答案:

答案 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

要寻找的两件事:

  1. “活动选项”行应列出“监视器”
  2. 类路径中的jar列表应该在某处提及“jetty-monitor”。
  3. 在上面的示例中,您可以看到这些都不存在。

    所以我们将它们添加到初创公司。 (确保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的第一个命令给了我这样的错误,我不得不花费半个小时来解决这个问题:)