Tomcat 7.0.39 の websocket 関数を使用しているため、クラスパスに catalina.jar を含める必要があります。しかし、プロジェクトをデプロイするときに、jar ファイルを WEB-INF/lib にデプロイすると、次の例外が発生します。
java.lang.NoSuchMethodException: org.apache.catalina.deploy.WebXml addServlet
catalina.jar がデプロイされていない場合、ClassNotFoundException が発生します。
java.lang.ClassNotFoundException: org.apache.catalina.websocket.MessageInbound
誰か助けてください。
スタックトレース:
java.lang.NoSuchMethodException: org.apache.catalina.deploy.WebXml addServlet
org.apache.tomcat.util.IntrospectionUtils.callMethod1 (IntrospectionUtils.java:802) で
org.apache.tomcat.util.digester.SetNextRule.end(SetNextRule.java:201) で
org.apache.tomcat.util.digester.Digester.endElement (Digester.java:1057) で
com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(AbstractSAXParser.java:604) で
com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanEndElement(XMLDocumentFragmentScannerImpl.java:1759) で
com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2915) で
com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next (XMLDocumentScannerImpl.java:625) で
com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:488) で
com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:819) で
com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:748) で
com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:123) で
com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1208) で
com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:525) で
org.apache.tomcat.util.digester.Digester.parse (Digester.java:1543) で
org.apache.catalina.startup.ContextConfig.parseWebXml (ContextConfig.java:1694) で
org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1197) で
org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:882) で
org.apache.catalina.startup.ContextConfig.lifecycleEvent (ContextConfig.java:317) で
org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent (LifecycleSupport.java:119) で
org.apache.catalina.util.LifecycleBase.fireLifecycleEvent (LifecycleBase.java:89) で
org.apache.catalina.core.StandardContext.startInternal (StandardContext.java:5081) で
org.apache.catalina.util.LifecycleBase.start (LifecycleBase.java:145) で
org.apache.catalina.core.ContainerBase.startInternal (ContainerBase.java:1033) で
org.apache.catalina.core.StandardHost.startInternal (StandardHost.java:774) で
org.apache.catalina.util.LifecycleBase.start (LifecycleBase.java:145) で
org.apache.catalina.core.ContainerBase.startInternal (ContainerBase.java:1033) で
org.apache.catalina.core.StandardEngine.startInternal (StandardEngine.java:291) で
org.apache.catalina.util.LifecycleBase.start (LifecycleBase.java:145) で
org.apache.catalina.core.StandardService.startInternal (StandardService.java:443) で
org.apache.catalina.util.LifecycleBase.start (LifecycleBase.java:145) で
org.apache.catalina.core.StandardServer.startInternal (StandardServer.java:727) で
org.apache.catalina.util.LifecycleBase.start (LifecycleBase.java:145) で
org.apache.catalina.startup.Catalina.start (Catalina.java:620) で
sun.reflect.NativeMethodAccessorImpl.invoke0(ネイティブメソッド)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) で
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) で
java.lang.reflect.Method.invoke(Method.java:616) で
org.apache.catalina.startup.Bootstrap.start (Bootstrap.java:303) で
org.apache.catalina.startup.Bootstrap.main (Bootstrap.java:431) で