2015-07-15 3 views
0

Je migre de Jboss 7.1.1 final à Wildfly 8.2 final et j'obtiens l'erreur suivante lorsque j'essaie de démarrer ma servlet.Echec du déploiement sous Linux Wildfly 8.2 final UT010009

 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> 

Peut-être qu'il apparaît parce que j'utilise Java 8? Toute aide serait appréciée.

+0

veuillez afficher votre code de servlet et web.xml ... vous utilisez l'annotation ou l'aide de la cartographie? – kirti

+0

J'utilise des annotations maintenant. –

+0

montrez votre servlet – kirti

Répondre

0

Assurez-vous que votre package (WAR ou EAR) utilise la version JEE API correcte (par exemple, le package maven javaee-api) et ne contient pas d'implémentations de classe JEE. Il y a probablement javax.servlet.Servlet classe dans le fichier que vous déployez et WildFly décide qu'il s'agit d'une classe différente de celle qui est intégrée dans le fichier. Peu importe si elles sont exactement les mêmes, le chargeur de classe différente va lancer des erreurs comme 'class B extends C' is not an instance of C

+0

J'utilise dans ma bibliothèque de runtime de construction de serveur de wildfly 8.2 et la bibliothèque de système de jre (excepté le maven et le junit). Je n'ai rien d'autre là-bas. –

0

J'ai eu le même problème. Mon problème a été résolu lorsque j'ai utilisé des annotations sur mes servlets au lieu de donner un mappage de servlet dans web.xml.

Wildfly8 et versions mises à jour utilisations versions mises à jour de tous les APIs il donne l'erreur tout en utilisant les correspondances changer comme la suit

1) Mise à niveau de servlet dernière une

2) Supprimer toutes les applications de servlet du 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> 

<listener> 
<listener-class>serverFunctions.SessionListener</listener-class> 
</listener> 
</web-app> 

3) annoter vos servlets comme suit

Exemple

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

Mettez à niveau tous les fichiers jar ou dépendances maven que vous utilisez.

Cela a fonctionné pour moi j'espère que cela fonctionne pour vous.

+0

Essayé mais inutile. Merci pour l'aide de toute façon :). –