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) で