2017-09-04 5 views
0

Je suis en train de créer une application bancaire prototype pour l'une de mes missions. J'ai créé avec succès l'API de persistance, les EJB et toutes les tables requises. Cependant, lorsque je crée le WebClient pour mon application et d'intégrer que l'application d'entreprise et d'essayer de l'exécuter, je reçois l'erreur suivante:Erreur de servlet Java EE - modèle d'URL en double

java.lang.IllegalArgumentException: Servlet [ RegistrationPortImpl ] and Servlet [ RegistrationRequesterPortImpl ] have the same url pattern

Le WebClient n'a que le fichier par défaut index.xhtml sur elle et je n'ai pas encore intégré aux haricots gérés avec lui.

Je voulais juste vérifier si mon application serait exécutée après l'intégration avec l'application d'entreprise avant de faire des progrès.

+0

Avez-vous ajouté des modèles d'URL à ces servlets? – muasif80

+0

Je n'ai pas créé de serveur, il suffit d'utiliser JSF. Après plus de recherches sont venues sur un blog qui a effectivement résolu ce problème en ajoutant la ligne suivante dans le fichier web.xml. metadata-complete = "true" Cependant, je ne sais pas pourquoi cela résout le problème. –

Répondre

0

Vous pouvez ajouter l'entrée metadata-complete=true dans la balise web-app comme ceci:

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns="http://java.sun.com/xml/ns/javaee" 
    xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" 
    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_3_0.xsd" 
    version="3.0" 
    metadata-complete="true"> 

Cette post suggère quelque chose de similaire. Cette entrée a désactivé le balayage des annotations et des fragments Web de Servlet 3.0 dans /WEB-INF/lib. Voir here, here et here.

Peut-être que vous pourriez vérifier les modèles d'URL dans votre web.xml et quelles bibliothèques votre application utilise.

0

Dans le @WebServlet mettre un chemin d'URL unique par exemple @WebServlet("/port") @WebServlet("/requestport")

annoter chacun de vos servlet comme celui-ci et je crois que ce problème ne se produira pas.

+0

Je n'ai pas créé de servlets, c'est simplement en utilisant JSF. Après plus de recherches sont venues sur un blog qui a effectivement résolu ce problème en ajoutant la ligne suivante dans le fichier web.xml. metadata-complete = "true" Cependant, je ne sais pas pourquoi cela résout le problème. –

+0

Ok, à droite. Deux runtimes peuvent être configurés pour le projet et des bibliothèques en double sont ajoutées. – muasif80

+0

Cela pourrait avoir la bonne compréhension https://stackoverflow.com/a/9820775/578855 – muasif80