Client kann Nicht finden, Versandart für {}
Habe ich in diesem Beispiel-code:
private static final String endpoint = "https://www.***.**:443/WSEndUser?wsdl";
public static void main(String[] args) throws SOAPException {
SOAPMessage message = MessageFactory.newInstance().createMessage();
SOAPHeader header = message.getSOAPHeader();
header.detachNode();
/*
SOAPEnvelope envelope = message.getSOAPPart().getEnvelope();
envelope.setAttribute("namespace","namespaceUrl");
*/
SOAPBody body = message.getSOAPBody();
QName bodyName = new QName("getVServers");
SOAPBodyElement bodyElement = body.addBodyElement(bodyName);
SOAPElement symbol = bodyElement.addChildElement("loginName");
symbol.addTextNode("my login name");
symbol = bodyElement.addChildElement("password");
symbol.addTextNode("my password");
SOAPConnection connection = SOAPConnectionFactory.newInstance().createConnection();
SOAPMessage response = connection.call(message, endpoint);
connection.close();
SOAPBody responseBody = response.getSOAPBody();
SOAPBodyElement responseElement = (SOAPBodyElement)responseBody.getChildElements().next();
SOAPElement returnElement = (SOAPElement)responseElement.getChildElements().next();
if(responseBody.getFault()!=null){
System.out.println("1) " + returnElement.getValue()+" "+responseBody.getFault().getFaultString());
} else {
System.out.println("2) " + returnElement.getValue());
}
}
und ich habe diesen Fehler:
1) S:Client kann Nicht finden, Versandart für {}getVServers
aber ich weiß, dass die Methode existiert... was ist falsch?
InformationsquelleAutor David | 2013-02-05
Du musst angemeldet sein, um einen Kommentar abzugeben.
Poste bitte die WSDL-auch wenn Sie immer noch Probleme haben.
1) Der web-service-Aufruf schlägt fehl, weil es nicht finden können, eine Methode namens
getVServers
mit namespace{}
(leeren namespace).Ihre Anfrage in etwa so aussieht:
getVServers ist auf den Standard-namespace. Es sollte so etwas wie dieses, wo der namespace sollte
targetNamespace
aus Ihrer WSDL-definition:Damit Sie einen namespace ändern die Weise, die Sie erstellen bodyName:
Auch
loginName
undpassword
brauchen können vorangestellt werden, wennelementFormDefault="qualified"
gesetzt ist, auf Ihre XML-Schema-oder wennform="qualified"
auf Ihre Elemente.2) ich denke, dass Ihr URL-Endpunkt sollten nicht enthalten ?wsdl.
3) Sie versuchen, eine Verbindung zu einem HTTPS-webservice. Stellen Sie sicher, dass Sie Ihre setup-Zertifikate und DefaultSSLFactory entsprechend.
ok, vielen Dank. Das problem war die fehlende namespace
ja. ich auch! 😉
InformationsquelleAutor Florin