失败的暗流部署野蝇8.2最终UT010009



我正在从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>

也许它出现是因为我使用java 8 ?

确保您的包(WAR或EAR)使用正确的JEE API版本(例如maven javaee-api包)并且不包含JEE类实现。可能有javax.servlet.Servlet类的文件,你正在部署和WildFly决定它是一个不同的类,而不是一个内置到它。即使它们完全相同也没关系,不同的类装入器会抛出错误,如'class B extends C' is not an instance of 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>

3)按如下方式注释servlet

例子
@WebServlet("/randomServlet")
public class randomServletextends HttpServlet {
}

升级你正在使用的所有jar或maven依赖项

相关内容

  • 没有找到相关文章

最新更新