Bonjour à tous,
J'ai pour mission de développer une application web en utilisant JSF2, EJB3 sur un serveur d’application JBOSS7.
L'application est très simple, cependant je dois consommer un web service développé par d'autres personnes (soap/wsdl).
A l’aide de SOAPUI, le dit web service fonctionne parfaitement.
Le problème : lors de l’intégration dans un code Java, le message d’erreur s’affiche :« The server sent HTTP status code 404: null «
Puis-je avoir vos conseils ?
Merci
WSDL:
Test avec SoapUi:
Remarque: lors de la phase de test avec soapUi, il faut intégrer manuellement l’URL endpoint ainsi la valeur de soapaction.
Classe : ResponseHeader.java
Interface SiteService.java:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package com.myproject.site; public class ResponseHeader { private int code; public ResponseHeader() { super(); // TODO Auto-generated constructor stub } public ResponseHeader(int code) { super(); this.code = code; } public int getCode() { return code; } public void setCode(int code) { this.code = code; } }
La classe main Test.java:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package com.myproject.site; import javax.jws.WebMethod; import javax.jws.WebParam; import javax.jws.WebService; @WebService(targetNamespace = "http://www.monsite.com/webservices/app-homeSecurityValidation-ws", name = "app-homeSecurityValidation-ws") public interface SiteService { @WebMethod public ResponseHeader HomeSecurityValidationRequest( @WebParam(name = "verif", targetNamespace = "") java.lang.String verif, @WebParam(name = "login", targetNamespace = "") java.lang.String account, @WebParam(name = "password", targetNamespace = "") java.lang.String password ) ; }
Console Eclipse :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54 package com.myproject.site; import java.io.IOException; import java.net.MalformedURLException; import java.net.URL; import javax.xml.namespace.QName; import javax.xml.soap.MessageFactory; import javax.xml.soap.MimeHeaders; import javax.xml.soap.SOAPException; import javax.xml.soap.SOAPMessage; import javax.xml.ws.BindingProvider; import javax.xml.ws.Service; public class Test { public static void main(String[] args) throws SOAPException, IOException { try { String soapEndpointUrl = "http://10.168.12.12:8080/homeSecurityValidation/app-homeSecurityValidation-ws"; String soapAction = "homeSecurityValidation"; URL url = new URL("http://10.168.12.12:8080/homeSecurityValidation/app-homeSecurityValidation-ws.wsdl"); QName qName = new QName("http://www.monsite.com/webservices/app-homeSecurityValidation-ws", "app-homeSecurityValidation-ws"); /*********/ MessageFactory messageFactory = MessageFactory.newInstance(); SOAPMessage soapMessage = messageFactory.createMessage(); MimeHeaders headers = soapMessage.getMimeHeaders(); headers.addHeader("SOAPAction", soapAction); soapMessage.saveChanges(); Service service = Service.create(url, qName); SiteService hello = (SiteService) service.getPort(SiteService.class); BindingProvider bp = (BindingProvider) hello; bp.getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, soapEndpointUrl); ResponseHeader r = hello.HomeSecurityValidationRequest("OK", "mylogin", "mypassword"); System.out.println("response: " + r.getCode()); } catch (MalformedURLException e) { e.printStackTrace(); } } }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 Exception in thread "main" com.sun.xml.internal.ws.client.ClientTransportException: The server sent HTTP status code 404: null atcom.sun.xml.internal.ws.transport.http.client.HttpTransportPipe.checkStatusCode(HttpTransportPipe.java:296) at com.sun.xml.internal.ws.transport.http.client.HttpTransportPipe.createResponsePacket(HttpTransportPipe.java:245) at com.sun.xml.internal.ws.transport.http.client.HttpTransportPipe.process(HttpTransportPipe.java:203) at com.sun.xml.internal.ws.transport.http.client.HttpTransportPipe.processRequest(HttpTransportPipe.java:122) at com.sun.xml.internal.ws.transport.DeferredTransportPipe.processRequest(DeferredTransportPipe.java:123) at com.sun.xml.internal.ws.api.pipe.Fiber.__doRun(Fiber.java:626) at com.sun.xml.internal.ws.api.pipe.Fiber._doRun(Fiber.java:585) at com.sun.xml.internal.ws.api.pipe.Fiber.doRun(Fiber.java:570) at com.sun.xml.internal.ws.api.pipe.Fiber.runSync(Fiber.java:467) at com.sun.xml.internal.ws.client.Stub.process(Stub.java:308) at com.sun.xml.internal.ws.client.sei.SEIStub.doProcess(SEIStub.java:163) at com.sun.xml.internal.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:98) at com.sun.xml.internal.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:78) at com.sun.xml.internal.ws.client.sei.SEIStub.invoke(SEIStub.java:135) at com.sun.proxy.$Proxy10.homeSecurityValidationRequest(Unknown Source) at com.myproject.site.Test.main(Test.java:112) Picked up JAVA_TOOL_OPTIONS: -Djava.vendor="Sun Microsystems Inc."
Partager