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:
S'il vous plaît aider!
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.
Essayez d'ajouter ?wsdl
à la chaîne.
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
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.
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 ...
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.
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
Réponse tardive mais:
Je vois que vous faites un GET - devrait être un POST?
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é.
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
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
Cela peut être résolu en désactivant la validation
<proxy>
<!-- . . . -->
<parameter name="disableOperationValidation">true</parameter>
</proxy>
Il semble ne pas trouver le fichier WSDL ..
J'ai résolu d'ajouter le paramètre wsdlLocation à l'annotation javax.jws.WebService.