web-dev-qa-db-fra.com

La référence de point final (EPR) pour l’opération non trouvée est 

J'ai eu du mal avec l'erreur suivante les deux derniers jours Pouvez-vous s'il vous plaît aider!

J'ai généré le code de mon serveur et de mon client à l'aide de l'outil wsdl2Java à partir d'un fichier Wsdl 2.0 . Lorsque j'appelle le service Web, l'erreur suivante apparaît:

org.Apache.axis2.AxisFault: The endpoint reference (EPR) for the
Operation not found is
/axis2/services/MyService/authentication/?username=Denise345&password=xxxxx
and the WSA Action = null

Mon service est affiché sur la page Web axis2 avec toutes les méthodes disponibles . Voici la sortie de TcpMon

==============
Listen Port: 8090
Target Host: 127.0.0.1
Target Port: 8080
==== Request ====
GET /axis2/services/MyService/authentication/?username=Denise345&password=xxxxx
HTTP/1.1
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
SOAPAction: ""
User-Agent: Axis2
Host: 127.0.0.1:8090

==== Response ====
HTTP/1.1 500 Internal Server Error
Server: Apache-Coyote/1.1
Content-Type: application/xml;charset=UTF-8
Transfer-Encoding: chunked
Date: Thu, 12 May 2011 15:53:20 GMT
Connection: close

12b
<soapenv:Reason xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope">
  <soapenv:Text xml:lang="en-US">The endpoint reference (EPR) for the
Operation not found is
/axis2/services/MyService/authentication/?username=Denise345&password=xxxxx
and the WSA Action = null</soapenv:Text></soapenv:Reason>
0

==============

J'utilise:

  • axe2-1.5.4
  • Tomcat 7.0.8
  • fichier wsdl 2.0

S'il vous plaît aider!

11
Denise Wu

Dans mon cas, cela est dû à un Content-Type incorrect dans HTTP POST. Le réglage sur text/xml a résolu le problème.

13
arturo

Essayez d'ajouter ?wsdl à la chaîne.

11
Pinch

Comme décrit par Eran Chinthaka à http://wso2.com/library/176/

Si le moteur Axis2 ne parvient pas à trouver un service et une opération pour un message, il échoue immédiatement et envoie une faute à l'expéditeur. Si le service n'est pas found - "Service non trouvé EPR est" Si service trouvé mais pas une opération- "Opération non trouvée: EPR est et action WSA ="

Dans votre cas, le service est trouvé mais l'opération non. Le moteur Axis2 utilise SOAPAction pour déterminer l'opération demandée et, dans votre exemple, SOAPAction est manquant. Par conséquent, j'essayerais de définir l'en-tête SOAPAction

5
jmhostalet

Cela se produit parce que le WSDL source de chaque opération n'a pas défini la valeur SOAPAction.

par exemple. 

<soap12:operation soapAction="" style="document"/>  

C'est important pour le serveur d'axes.

Si vous avez créé le service sur netbeans ou un autre, n'oubliez pas de définir l'action value sur la balise @WebMethod

par exemple. @WebMethod (action = "hello", operationName = "hello")

Cela créera la valeur SOAPAction par lui-même.

5
William Aldana

cette erreur se produit car lors de l'appel du service, le fichier wsdl de votre service n'est pas récupéré.

jst vérifie si le fichier wsdl du service est présent -> exécutez le serveur et, à partir du navigateur, exécutez les applications de l'axe 2 sur l'hôte local, vérifiez les services déployés et cliquez sur votre service; vérifiez le chemin de service dans votre fichier client.

j'espère que cela peut vous aider à résoudre le problème ...

4
Ankit Adlakha

J'ai eu ce même problème en utilisant curl pour envoyer une demande de savon. Résolu en ajoutant "content-type: text/xml" à l'en-tête http.

J'espère que ça aidera quelqu'un.

2
Lordwhizy

L'action est null signifie qu'aucune action dans le message SOAP donné (demande XML). Vous devez définir Action avant l'appel SOAP:

Java.net.URL endpoint = new URL("<URL>"); //sets URL

MimeHeaders headers = message.getMimeHeaders(); // getting MIME Header

headers.addHeader("SOAPAction", "<SOAP Action>"); //add Action To Header

SOAPMessage response = soapConnection.call(<SOAPMessage>, endpoint); //then Call

soapConnection.close(); // then Close the connection
2
Sudheer

Réponse tardive mais:

Je vois que vous faites un GET - devrait être un POST?

1
blabla999

Sur Websphere Application Server, dans la même situation, il a été utile de supprimer les dossiers Temp lorsque le serveur était arrêté.

J'ai rencontré la situation lorsque le package du service a changé.

0
JRA_TLL

essayez de supprimer le '/' supplémentaire après le nom de l'opération (authentification) lors de l'appel via le client

/axis2/services/MyService/authentication?username=Denise345&password=xxxxx
0
FearlessHyena

En supprimant les fichiers de cache wsdl- * dans le dossier/tmp, mon problème a été résolu

voir https://www.drupal.org/node/1132926#comment-6283348

faire attention à la permission de supprimer

Je suis dans ubuntu os

0
khaled_webdev

Cela peut être résolu en désactivant la validation 

<proxy>
    <!-- . . . -->
    <parameter name="disableOperationValidation">true</parameter>
</proxy>
0

Il semble ne pas trouver le fichier WSDL ..
J'ai résolu d'ajouter le paramètre wsdlLocation à l'annotation javax.jws.WebService.

0
Frizz1977