Java 底拖部署失败wildfly 8.2最终UT010009

Java 底拖部署失败wildfly 8.2最终UT010009,java,servlets,deployment,wildfly,undertow,Java,Servlets,Deployment,Wildfly,Undertow,我正在从Jboss 7.1.1 final迁移到Wildfly 8.2 final,在尝试启动servlet时出现以下错误 Failed to start service jboss.undertow.deployment.default- server.default-host./myservlet.UndertowDeploymentInfoService: org.jboss.msc.service.StartException

我正在从Jboss 7.1.1 final迁移到Wildfly 8.2 final,在尝试启动servlet时出现以下错误

        Failed to start service jboss.undertow.deployment.default-  

        server.default-host./myservlet.UndertowDeploymentInfoService:  
          org.jboss.msc.service.StartException in service 
         jboss.undertow.deployment.default-server.default-                                                       
          host./myservlet.UndertowDeploymentInfoService: Failed to start service

      Caused by: java.lang.IllegalArgumentException: UT010009: Servlet 
     randomServlet of type class servlets.randomServlet does not implement 
      javax.servlet.Servlet
web.xml:

 <?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee  
 http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<display-name>server</display-name>
<servlet>
 <display-name>randomServlet</display-name>
<servlet-name>randomServlet</servlet-name>
<servlet-class>servlets.randomServlet</servlet-class>
<load-on-startup>1</load-on-startup>  
 </servlet> 
 <servlet-mapping>
  <servlet-name>randomServlet</servlet-name>
<url-pattern>/randomServlet</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>randomServlet</servlet-name>
<url-pattern>randomServlet</url-pattern>
</servlet-mapping>
<listener>
<listener-class>serverFunctions.SessionListener</listener-class>
</listener>
</web-app>

服务器
随机servlet
随机servlet
servlets.randomServlet
1.
随机servlet
/随机servlet
随机servlet
随机servlet
serverFunctions.SessionListener
可能是因为我使用了Java8?
任何帮助都将不胜感激。

确保您的软件包(WAR或EAR)使用正确的JEE API版本(例如maven
javaee API
软件包),并且不包含JEE类实现。您正在部署的文件中可能有
javax.servlet.servlet
类,WildFly认为它与内置的类不同。即使它们完全相同也没关系,不同的类加载器也会抛出错误,如“class B extends C”不是C的实例,我也遇到了同样的问题。 当我在servlet上使用注释而不是在web.xml中提供servlet映射时,我的问题就解决了

Wildfly8和升级版本使用所有Api的更新版本,因此在使用映射时会出现错误,如下所示

1) 将servlet版本升级到最新版本

2) 从web.xml中删除所有servlet映射

 <?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee  
 http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<display-name>server</display-name>

<listener>
<listener-class>serverFunctions.SessionListener</listener-class>
</listener>
</web-app>
升级您正在使用的所有JAR或maven依赖项


这对我有用,希望对你有用。

请展示你的servlet代码和web.xml。。。您使用的是注释还是映射?我现在使用注释。请显示您的servlet我的servlet有将近1k行代码。你到底想看什么。请注意,它在Jboss 7.1.1 final下工作。尝试过但没有使用。无论如何,感谢您的帮助:)。我在构建wildfly 8.2服务器运行库和jre系统库时使用了它(除了maven和junit)。我没有别的东西了。
@WebServlet("/randomServlet")
public class randomServletextends HttpServlet {
}