Bonjour,
Je cherche a interroger un webservice fournit par GEPIR qui donne des renseignements sur un produits à partir de son code barre EAN.


http://gepir.prod.gs1us.org/GEPIR/jsp/server.do

C'est ma première implementation de webservice ...

J'ai réussi à générer un .jar depuis le WSDL mais je ne sais pas trop comment l'exploiter et je ne trouve pas bcp de ressources sur le sujet (étonnament).

Voici mon code actuel :
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
 
public final class gepir_client {
 
  private static final QName SERVICE_NAME = new QName("http://www.gepir.org/", "router");
  private static final QName PORT_NAME = new QName("http://www.gepir.org/", "routerSoap");
 
    private gepir_client() {
    }
 
   public static void main(String args[]) throws java.lang.Exception {
 
 
   SOAPFactory sf = SOAPFactory.newInstance();
   QName name = new QName( "http://www.gepir.org/" , "gepirRequestHeader" );
   SOAPElement header = sf.createElement(name);
   SOAPElement reqGln = header.addChildElement(new QName( "http://www.gepir.org/" , "requesterGln" ));
   reqGln.addTextNode("7613169525562");
   SOAPElement cascade = header.addChildElement(new QName( "http://www.gepir.org/" , "cascade" ));
   cascade.addTextNode("1");
 
     // URL wsdlURL = Router.create(SERVICE_NAME);
 
      ProxyEnabler.enable(); // propre a mon env
      ArrayOfLanguage aol = new ArrayOfLanguage();
      aol.getLanguage().add("FR");
 
        Router router = new Router();
        RouterSoap port = router.getRouterSoap();  
        System.out.println("DEV_TRACE: " + router.getServiceName());
        System.out.println("DEV_TRACE: " + port.toString());
 
        {
       try {
          System.out.println("Invoking getItemByGTIN...");
          GetItemByGTIN getItemByGTIN = new GetItemByGTIN();
          getItemByGTIN.setRequestedGtin("7613169525562");
          getItemByGTIN.setRequestedLanguages(aol);
          getItemByGTIN.setVersion(new BigDecimal(3.10));
          System.out.println("getItemByGTIN =" + getItemByGTIN.getRequestedGtin());
          GepirItem gepirItem = port.getItemByGTIN(getItemByGTIN);
          System.out.println("getItemByGTIN.result=" + gepirItem);
       }
       catch (SOAPFaultException sfex) {
         System.out.println("DEV_TRACE: " + sfex.getStackTrace());
       }
     }
}
Je tatonne mais tout ce que j'obtiens pour l'instant c'est :

DEV_TRACE: {http://www.gepir.org/}router
DEV_TRACE: JAX-WS RI 2.1.7-b01-: Stub for http://gepir.prod.gs1us.org:80/GEPIR/jsp/server.do
Invoking getItemByGTIN...
getItemByGTIN =7613169525562
Exception in thread "main" javax.xml.ws.soap.SOAPFaultException: java.lang.NullPointerException
at com.sun.xml.ws.fault.SOAP11Fault.getProtocolException(SOAP11Fault.java:189)
at com.sun.xml.ws.fault.SOAPFaultBuilder.createException(SOAPFaultBuilder.java:122)
at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:119)
at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:89)
at com.sun.xml.ws.client.sei.SEIStub.invoke(SEIStub.java:118)
at $Proxy34.getItemByGTIN(Unknown Source)
at ...gepir_client.main(gepir_client.java:86)


Merci pour toute l'aide (piste, tuto, code, remarque, pensée positive ) que vous pourrez m'apporter.