Wie nennen JAX-WS von einer stand-alone java-Datei?
Ich versuche zu nennen, einen jax-ws-web-service aus einer stand-alone java-Klasse(mit den main
- Methode). Ich habe versucht, diese in SOAP-UI und dort gibt es die Antwort.
Mein Java-Code : Innerhalb der main() Methode :
GInformation getGMInfo = new GInformation();
GInformationResult getGMResult = new GInformationResult();
GKService GKProxy = getProxy();
//Set the Request
XMLGregorianCalendar xmlGreg = null;
getGMInfo.setRequestId("");
getGMInfo.setMessageDateTime(xmlGreg);
try {
//Get the response
getGMResult = GKProxy.getGInformation(getGMInfo);
System.out.println("Address: "+getGMResult.getInfo());
} catch (OperationFaultException e) {
e.printStackTrace();
} catch (SystemFaultException e) {
e.printStackTrace();
}
Aber es nicht mit einem Fehler wie diesem :
org.apache.axis2.AxisFault: WSWS7130E: No Secure Sockets Layer (SSL) configuration is available for the https://mklip.verd.Gin/WS/v2.8 endpoint.
Ich habe versucht, dies zu korrigieren, für eine sehr lange Zeit und bin am Rande zu verrückt.
Kann jemand mir sagen, was mache ich hier falsch ? Ist es überhaupt möglich, zum aufrufen von jax-ws von einer stand-alone java-Klasse oder brauchen wir web-server für das ? Aber diese Anwendung nicht über einen web-server.
- mögliche Duplikate von Wie man 'einfache SSL' durch Web-Services?
- Glaube nicht, dass es ein Duplikat ist. Ich weiß, dass es ein problem mit dem Zertifikat. Aber die eigentliche Frage ist, wie man es umgehen? Ist eine Abhilfe möglich ? Wenn ja, wie kann ich es tun ? Oder muss ich das Zertifikat aus der wsdl-service-hoster, damit es funktioniert ?
- Sie müssen zum konfigurieren von SSL nur dann, wenn Sie möchten, um den Anruf-server über HTTPS. Wenn Sie nicht wollen, dass die sichere Verbindung können Sie ändern Sie die Adresse auf HTTP eine.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Musste ich tiefer und tiefer um dieses Problem zu beheben. Das problem, das ich hatte ist mit einem vertrauenswürdigen Zertifikat ausstellen. Also erstmal, ich habe meine Hände auf die erforderlichen Zertifikate für den Aufruf der service(cert1.cer, cert2.cer).
Dann integrierte ich die Zertifikate lokal mit den folgenden Schritten :
Aber das war nicht genug. Ich musste
javax.net.ssl
ein Programm wie dieses :Dem obigen paar Zeilen code sorgen dafür, dass
trustStore
undkeyStore
sind für den SSL-Aufruf während der WS-Aufruf.Diese war nicht einfach zu kommen, und als solche habe ich die Erklärung und die Antwort hier, so dass, im Falle jemand hat das gleiche problem, dann kann er/Sie ihn als Referenz zu mildern Ihrem problem. Prost!
Setzen Sie die folgende Zeile als erste Zeile in Ihrem Programm. Dass das Problem lösen wird.
System.setProperty("com.ibm.SSL.ConfigURL", "file:C:\IBM\WebSphere\AppServer\profiles\AppSrv01\properties\ssl.client.props");
Haben Sie versucht, die Einstellung Endpunkt-Adresse zu Ihrem webservice-Adresse.
In meinem Fall hatte ich die jar generiert aus der WSDL-Datei mit dem client-code.
Einem Beispiel in meinem test-Fall ist
WeberviceClient code
bp.getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, "https://mklip.verd.Gin/WS/v2.8?wsdl");
. Das funktioniert nicht und gibt die gleiche Ausnahme .xsd
Referenzen(wie in meinem Fall, ich war nicht einmal in der Lage zu generieren, die Kunden die Verwendung der wsdl, es gab mir mehrerewsdl parsing errors
, da es nicht die richtige xsd Referenzen) . Also habe ich die alte wsdl und verwendet die Antwort, die ich oben gepostet zu lösen, die SSL-config-Problem.