java.lang.NoSuchMethodError:javax.servlet.ServletContext.getEffectiveSessionTrackingModes()Ljava/util/Set;
我想要一个servlet来处理来自独立java程序的输入。如何在jboss中部署这个servlet。我将servlet.class文件放在WEB-INF/classes中,并在WEB.xml中将servlet url映射为“.do”。从Java客户端程序中,我使用URL对象打开了与servlet的连接。使用localhost:8080/.do。但我得到以下错误: ERROR [org.apache.catalina.connector.CoyoteAdapter] An exception or error occurred in the container during the request processing: java.lang.NoSuchMethodError: javax.servlet.ServletContext.getEffectiveSessionTrackingModes()Ljava/util/Set; at org.apache.catalina.connector.CoyoteAdapter.postParseRequest(CoyoteAdapter.java:567) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:359) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:877) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:654) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:951) 错误[org.apache.catalina.connector.CoyoteAdapter]请求处理期间容器中发生异常或错误: java.lang.NoSuchMethodError:javax.servlet.ServletContext.getEffectiveSessionTrackingModes()Ljava/util/Set; 在 org.apache.catalina.connector.CoyoteAdapter.postParseRequest(CoyoteAdapter.java:567) 位于org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:359) 位于org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:877) 位于org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:654) 位于org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:951) web.xml文件内容:java.lang.NoSuchMethodError:javax.servlet.ServletContext.getEffectiveSessionTrackingModes()Ljava/util/Set;,java,servlets,jboss,Java,Servlets,Jboss,我想要一个servlet来处理来自独立java程序的输入。如何在jboss中部署这个servlet。我将servlet.class文件放在WEB-INF/classes中,并在WEB.xml中将servlet url映射为“.do”。从Java客户端程序中,我使用URL对象打开了与servlet的连接。使用localhost:8080/.do。但我得到以下错误: ERROR [org.apache.catalina.connector.CoyoteAdapter] An exception or
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN" "java.sun.com/j2ee/dtds/web-app_2_2.dtd">;
<web-app>
<servlet>
<servlet-name>ReverseServlet</servlet-name>
<servlet-class>ReverseServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ReverseServlet</servlet-name>
<url-pattern>/*.do</url-pattern>
</servlet-mapping>
</web-app>
;
反向小瓶
反向小瓶
反向小瓶
/*.做
java.lang.NoSuchMethodError:javax.servlet.ServletContext.getEffectiveSessionTrackingModes()Ljava/util/Set
此方法在Servlet3.0中。此错误可能至少有以下原因:
web.xml
未声明至少符合Servlet 3.0/WEB-INF/lib
中有旧版本的特定于servlet容器的库web.xml
根声明符合Servlet 3.0:
/WEB-INF/lib
中没有这些库。他们不属于那里。这是初学者在“解决”IDE中遇到的编译错误时经常犯的错误。另见您已经声明了您的
web.xml
conformservlet 2.2。这绝对是错误的。相应地修复它。如果可能,还可以修改servlet代码。您在服务器中提到的方法似乎不存在,或者web.xml ReverseServlet ReverseServlet ReverseServlet/*中存在某些键入错误。执行Servlet代码链接您好,请从“注释”部分删除web.xml内容。我已经在你的“问题”中添加了这些内容。在添加内容时,我注意到元素后面有分号(;)。删除分号并重新部署应用程序。也许它会对你起作用。你能详细解释一下吗。der不是doctype之后的分号。我觉得这只是答案的一半。显然,运行Servlet2.2应用程序而不遇到此异常是可能的;在Servlet 3.0发布之前,并不是所有的站点都被破坏。@ruakh:我不知道这是不可能的。如果您自己实际上无法在Servlet 3.0容器上运行Servlet 2.2 webapp,则您的webapp与答案中的第3点冲突。OP没有指定他尝试使用Servlet 3.0。你的回答甚至说“你已经声明了你的web.xml
conformServlet2.2。这绝对是错误的”,但我看不出有任何根据。问题显然是两件事之间的版本不匹配;您的答案是将2.2内容更改为3.0,但OP可能实际上需要将3.0内容更改为2.2。@ruakh:OP的web.xml
行中的
就是这样做的。不,您误解了我。“您已经声明了您的web.xml
ConformServlet2.2”部分显然是正确的;这是“这绝对是错误的”部分,我看不出有任何根据。