2017-05-30 1 views
0

Nous avons mis en place appel WebService à l'aide JAX-WS RI 2.1.6 in JDK 6 maintenant problème vient quand nous activons https appel webservice cesse d'atteindre le serveur et les rapports java erreur suivante,Https appel de service Web d'échec

javax.xml.ws.WebServiceException: java.io .IOException: l'opération Async IO a échoué (3), raison: RC: 55 La ressource réseau spécifiée ou le périphérique n'est plus disponible.

Maintenant, je l'ai testé cela dans SoapUI et réponse du service est il reçu.

Considéré dans diverses solutions où il nous dit de fournir des paramètres de délai d'attente, mais rien ne semble fonctionner.

@WebEndpoint(name = "RulesSoap") 
    public RulesSoap getRulesSoap() { 
     ((BindingProvider)super.getPort(new QName("urn:decision:Rules", "RulesSoap"), RulesSoap.class)).getRequestContext().put("com.sun.xml.internal.ws.connect.timeout", 1000); 
     ((BindingProvider)super.getPort(new QName("urn:decision:Rules", "RulesSoap"), RulesSoap.class)).getRequestContext().put("com.sun.xml.internal.ws.request.timeout", 1000); 
     return super.getPort(new QName("urn:decision:Rules", "RulesSoap"), RulesSoap.class); 
    } 

Et pour l'information mise en œuvre JAX-WS est la suite quelques lignes simples, bien sûr, nous soumettre toutes les données nécessaires dans les talons respectifs et tout, mais je ne suis pas soumettrai ici parce que nos http appels obtiennent par le biais,

Rules rules = new Rules(new URL(url), new QName("urn:decision:Rules", "Rules")); 
RulesSoap rulesSoap = rules.getRulesSoap(); 
CorticonResponse response = rulesSoap.processRequest(request); 

Remarque: Notre serveur d'application et WebSphere Application Server Version 7.0.0.19

Merci à Adva nce.

Répondre

1

Après beaucoup d'efforts que nous avons réglées cela. Je fournirai pas si quoi que ce soit lié à ce qui se passe comment trouver la cause racine,

Étape 1: d'abord tout ce que nous a permis le suivi de savon dans WebSphere Application Server par réglage suivant,

Admin Console> Serveurs> Types de serveur> Serveurs d'applications WebSphere> {votre serveur}> Dépannage> Modifier Connexion niveaux de détail> Runtime

Dans l'exécution s'il vous plaît mettre cela, *=info: com.ibm.ws.websvcs.*=all: org.apache.axis2.jaxws.*=all

Cette étape va créer le fichier trace.log dans votre dossier de journaux. Maintenant, toute demande de service Web qui sort de votre serveur ajoutera les journaux à ce fichier et les accessoires nécessaires comme point final, la demande, la réponse, etc.

Étape 2: La lecture de ce fichier trace.log nous avons trouvé point final suivant,

PropertyValid 1 org.apache.axis2.jaxws.client.PropertyValidator validate validate property=(javax.xml.ws.service.endpoint.address) with value=(http://uxm.solutions.lnet.com:9445/axis/dswsdl/Rules/1/0)  
HTTPConnectio 3 resetConnection : http://uxm.solutions.lnet.com:9445/axis/dswsdl/Rules/1/0 Persistent : true 

Maintenant, si vous notez ici que notre savon a l'adresse de point de terminaison javax.xml.ws.service.endpoint.address où le protocole utilise toujours http ce qui provoque l'échec de la négociation ssl.

Étape 3: Solution pour cela est de passer outre endpoint dans vos talons de savon qui peuvent être mises en œuvre en ajoutant la ligne suivante,

RulesSoap rulesSoap = rules.getRulesSoap(); 
((BindingProvider)rulesSoap).getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, "https://uxm.solutions.lnet.com:9445/axis/dswsdl/Rules/1/0"); 

Conclusion: Voici donc ce que je pense même nous passons https url alors que nous créons des objets mais ne prend toujours pas cette adresse https sur l'exécution, pour moi cela ressemble à un problème de création de stubs avec JAX-WS.

Merci.

0

Quels protocoles/chiffrements utilisez-vous? Vous avez mentionné qu'il existe une connexion au service Web sur WAS7 avec JDK6 et que Java 6 ne prend pas en charge TLS1.2 (et TLS1.1 uniquement à partir d'un certain groupe de correctifs).

Voir ceci: How to use TLS 1.2 in Java 6