在Java 6上运行时,JSR 356 WebSocket(Java WebSocket 1.0)支持不可用



我正试图在Tomcat7上的EclipseKepler(4.3)上运行我的第一个struts"Hello World"程序。JRE是jrockit-jre1.6.0_45-R28.2.7。我得了404错误。这是控制台上的错误

 2014/11/12 18:46:38 org.apache.catalina.core.StandardService startInternal
    情報: サービス Catalina を起動します
    2014/11/12 18:46:38 org.apache.catalina.core.StandardEngine startInternal
    情報: Starting Servlet Engine: Apache Tomcat/7.0.53
    2014/11/12 18:46:38 org.apache.tomcat.websocket.server.WsSci onStartup
    情報: JSR 356 WebSocket (Java WebSocket 1.0) support is not available when running on Java 6. To suppress this message, run Tomcat on Java 7, remove the WebSocket JARs from $CATALINA_HOME/lib or add the WebSocketJARs to the tomcat.util.scan.DefaultJarScanner.jarsToSkip property in $CATALINA_BASE/conf/catalina.properties. Note that the deprecated Tomcat 7 WebSocket API will be available. 
    2014/11/12 18:46:39 com.opensymphony.xwork2.config.providers.XmlConfigurationProvider info
    情報: Parsing configuration file [struts-default.xml]
    2014/11/12 18:46:39 org.apache.catalina.core.StandardContext filterStart
    致命的: フィルタ struts2 の起動中の例外です
    java.lang.NoClassDefFoundError: org/apache/commons/lang3/StringUtils
        at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.register(XmlConfigurationProvider.java:211)
        at org.apache.struts2.config.StrutsXmlConfigurationProvider.register(StrutsXmlConfigurationProvider.java:102)
        at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:234)
        at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:67)
        at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:445)
        at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:489)
        at org.apache.struts2.dispatcher.FilterDispatcher.init(FilterDispatcher.java:193)
        at org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:279)
        at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:260)
        at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:105)
        at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4809)
        at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5485)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
        at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
        at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
        at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
        at java.util.concurrent.FutureTask.run(FutureTask.java:138)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
        at java.lang.Thread.run(Thread.java:662)
    2014/11/12 18:46:39 org.apache.catalina.core.StandardContext startInternal
    致命的: Error filterStart
    2014/11/12 18:46:39 org.apache.catalina.core.StandardContext startInternal
    致命的: 以前のエラーのためにコンテキストの起動が失敗しました [/StrutsHelloWord]
    2014/11/12 18:46:39 org.apache.coyote.AbstractProtocol start
    情報: Starting ProtocolHandler ["http-bio-8080"]
    2014/11/12 18:46:39 org.apache.coyote.AbstractProtocol start
    情報: Starting ProtocolHandler ["ajp-bio-8009"]
    2014/11/12 18:46:39 org.apache.catalina.startup.Catalina start
    情報: Server startup in 1738 ms

如果你能告诉我这个错误的原因,我将不胜感激。

尽管堆栈中有很多平假名,但幸运的是,错误和异常仍然可以识别。此:

java.lang.NoClassDefFoundError:org/apache/commons/lang3/StringUtils

由于类路径中缺少commons-lang3-3.x.jar而引发。

下载它,将其包含在您的软件包中,尽情享受。

这是

情報:在Java 6上运行时,JSR 356 WebSocket(Java WebSocket 1.0)支持不可用。若要取消显示此消息,请在Java 7上运行Tomcat,从$CATALINA_HOME/lib中删除WebSocket JAR,或将WebSocket JAR添加到$CATALINA_BASE/conf/CATALINA.properties中的Tomcat.util.scan.DefaultJarScanner.jarsToSkip属性。请注意,不推荐使用的Tomcat 7 WebSocket API将可用。

不言自明:使用Java7是因为JSR356似乎就是针对这一点。

最新更新