SAXException: mauvaise enveloppe tag
Je suis en train d'essayer de se connecter à un service web https, protégé par un service client. Eclipse a généré un stub en fonction webservice client et a l'air bien pour moi. Le problème c'est quand j'essaie d'appeler une méthode de la classe webservice:
String a = (String)webservice.userProfileServices(xml);
Je suis aussi à l'aide de la suite des en-têtes SOAP:
esgGatewayPort = (new EsgGatewayLocator()).getesgGatewayPort();
//setting the authentication header
PrefixedQName name = new PrefixedQName("http://schemas.xmlsoap.org/ws/2002/07/secext","Security","wsse");
System.out.println("Setting headers for authentication");
org.apache.axis.message.SOAPHeaderElement sh = new org.apache.axis.message.SOAPHeaderElement(name);
SOAPElement sub;
try {
String clntUserName="myUser";
String clntPassword="myPassword";
sub = sh.addChildElement("UsernameToken");
SOAPElement element = sub.addChildElement("Username");
element.addTextNode(clntUserName);
element = sub.addChildElement("Password");
element.addTextNode(clntPassword);
((org.apache.axis.client.Stub) esgGatewayPort).setHeader(sh);
} catch (SOAPException e) {
e.printStackTrace();
}
J'ai le message suivant:
AxisFault
faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException
faultSubcode:
faultString: org.xml.sax.SAXException: Bad envelope tag: HTML
faultActor:
faultNode:
faultDetail:
{http://xml.apache.org/axis/}stackTrace:org.xml.sax.SAXException: Bad envelope tag: HTML
at org.apache.axis.message.EnvelopeBuilder.startElement(EnvelopeBuilder.java:71)
at org.apache.axis.encoding.DeserializationContext.startElement(DeserializationContext.java:1048)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl$NSContentDriver.scanRootElementHook(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
at weblogic.xml.jaxp.WebLogicXMLReader.parse(WebLogicXMLReader.java:133)
at weblogic.xml.jaxp.RegistryXMLReader.parse(RegistryXMLReader.java:153)
at javax.xml.parsers.SAXParser.parse(Unknown Source)
at org.apache.axis.encoding.DeserializationContext.parse(DeserializationContext.java:227)
at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:696)
at org.apache.axis.Message.getSOAPEnvelope(Message.java:435)
at org.apache.axis.transport.http.HTTPSender.readFromSocket(HTTPSender.java:796)
at org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:144)
at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
at org.apache.axis.client.AxisClient.invoke(AxisClient.java:165)
at org.apache.axis.client.Call.invokeEngine(Call.java:2784)
at org.apache.axis.client.Call.invoke(Call.java:2767)
at org.apache.axis.client.Call.invoke(Call.java:2443)
at org.apache.axis.client.Call.invoke(Call.java:2366)
at org.apache.axis.client.Call.invoke(Call.java:1812)
Toute aide sera vraiment apprécié.
Quel est votre Savon en-Tête (sh) regarder comme lorsque vous appelez .setHeader ? Ce n'est pas un en-tête valide.
C'est mon code d'en-tête: esgGatewayPort = (nouvelle sgGatewayLocator()).getesgGatewayPort();
PrefixedQName nom = new PrefixedQName("schemas.xmlsoap.org/ws/2002/07/...); SOAPHeaderElement sh = new SOAPHeaderElement(nom);
SOAPElement sous; try {String clntUserName="u"; String clntPassword="p";
sub = sh.addChildElement("élément usernametoken"); l'élément SOAPElement = sous.addChildElement("Username"); element.addTextNode(clntUserName); element = sous.addChildElement("Mot de passe"); element.addTextNode(clntPassword); ((org.apache.de l'axe.client.Stub) esgGatewayPort).setHeader(sh);
C'est mon code d'en-tête: esgGatewayPort = (nouvelle sgGatewayLocator()).getesgGatewayPort();
PrefixedQName nom = new PrefixedQName("schemas.xmlsoap.org/ws/2002/07/...); SOAPHeaderElement sh = new SOAPHeaderElement(nom);
SOAPElement sous; try {String clntUserName="u"; String clntPassword="p";
sub = sh.addChildElement("élément usernametoken"); l'élément SOAPElement = sous.addChildElement("Username"); element.addTextNode(clntUserName); element = sous.addChildElement("Mot de passe"); element.addTextNode(clntPassword); ((org.apache.de l'axe.client.Stub) esgGatewayPort).setHeader(sh);
OriginalL'auteur | 2009-03-19
Vous devez vous connecter pour publier un commentaire.
Mauvais format de l'extrémité
Ex: http://localhost:8080/YourService/
Ex: http://localhost:8080/YourService?wsdl
Bonne extrémité format pour définir le constructeur
Ex: http://localhost:8080/YourService
Pouvez-vous me dire, pourquoi avons-nous besoin d'appeler le service sans "?wsdl" dans WebSphere et avec "?wsdl" en d'autres serveurs ?
OriginalL'auteur Lucas Pires
J'ai résolu le problème en ÉTÉ (WebSphere Application Server), à la suite de http://www-01.ibm.com/support/docview.wss?uid=swg1PK54518. Appliquer le Correctif approprié Pack pour votre version de A résolu le problème.
OriginalL'auteur Sofia
Le problème est probablement que vous êtes en essayant de se lier à un service https à l'aide de http. J'ai eu ce problème lors de l'éclipse généré les talons pour moi à partir d'un wsdl qui est hébergé sur un serveur https.
Modifier les fichiers générés par eclipse qui pointe vers l'URL du serveur et il doit se connecter correctement.
Espère que ça aide.
OriginalL'auteur Nnamdi Jibunoh
Dans mon cas, il a obtenu résolu après la suppression de "/" à partir de la fin de l'URL dans l'Axe (pas Axis2)
L'URL qui j'ai été en utilisant
http://localhost:7000/myWS/
Après modification de
http://localhost:7000/myWS
a bien fonctionné!Exception:
Main: org.xml.sax.SAXException: Bad envelope tag: table
at org.apache.axis.AxisFault.makeFault(AxisFault.java:101)
at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:701)
at org.apache.axis.Message.getSOAPEnvelope(Message.java:435)
at org.apache.axis.handlers.soap.MustUnderstandChecker.invoke(MustUnderstandChecker.java:62)
at org.apache.axis.client.AxisClient.invoke(AxisClient.java:206)
OriginalL'auteur siddagrl