Bonjour,
J'ai généré les classes d'un web service à partir d'un fichier WSDL via WSDL2Java. Tout c'est bien déroulé, le webservice marche... Mais j'ai un petit problème je voudrais modifier (mode server) ou récupérer le contenu (mode client) des "headerSOAP" de certaine webMethode,
Voici l'objectif à atteindre:
Citation :
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Header>
<PlugEventList xmlns="http://tempuri.org/">
<events>
<PlugParam>
<type>string</type>
<access>Read or Write or ReadWrite or CredentialRead or CredentialWrite or CredentialReadWrite</access>
<value />
<time>long</time>
<sender>string</sender>
<recipient>string</recipient>
<operation>long</operation>
<callsBack>
<PlugCallBack xsi:nil="true" />
<PlugCallBack xsi:nil="true" />
</callsBack>
</PlugParam>
<PlugParam>
<type>string</type>
<access>Read or Write or ReadWrite or CredentialRead or CredentialWrite or CredentialReadWrite</access>
<value />
<time>long</time>
<sender>string</sender>
<recipient>string</recipient>
<operation>long</operation>
<callsBack>
<PlugCallBack xsi:nil="true" />
<PlugCallBack xsi:nil="true" />
</callsBack>
</PlugParam>
</events>
</PlugEventList>
</soap:Header>
<soap:Body>
<GetEventsResponse xmlns="http://tempuri.org/">
<GetEventsResult>long</GetEventsResult>
</GetEventsResponse>
</soap:Body>
</soap:Envelope>
|
D'après ce que j'ai trouvé sur le net (c'est à dire pas grand chose) il semblerais que pour le mode server, il faut modifier les ***Stub.java parmi les classes générées, est ce que je modifie la bonne fonction?
Code :
- public long getEvents(long ticks) throws java.rmi.RemoteException{
- if (super.cachedEndpoint == null) {
- throw new org.apache.axis.NoEndPointException();
- }
- org.apache.axis.client.Call _call = createCall();
- _call.setOperation(_operations[10]);
- _call.setUseSOAPAction(true);
- _call.setSOAPActionURI("http://tempuri.org/GetEvents" );
- _call.setEncodingStyle(null);
- _call.setProperty(org.apache.axis.client.Call.SEND_TYPE_ATTR, Boolean.FALSE);
- _call.setProperty(org.apache.axis.AxisEngine.PROP_DOMULTIREFS, Boolean.FALSE);
- _call.setSOAPVersion(org.apache.axis.soap.SOAPConstants.SOAP12_CONSTANTS);
- _call.setOperationName(new javax.xml.namespace.QName("http://tempuri.org/", "GetEvents" ));
-
- try{
- //Customisation
- SOAPHeaderElement hd = new SOAPHeaderElement(new javax.xml.soap.Name("", "events" ) ;
- hd.addChildElement("PlugParam" );
- _call.addHeader(hd);
- } catch (Exception ex) {
- ex.printStackTrace(System.err);
- }
|
2) Est ce que quelqu'un peut me donner quelques conseils pour construire la liste des noeuds de cette tête en java car je ne maitrise pas du tout la construction des fichier xml? Je voudrais pas passer pour un feigant qui ne veut pas chercher sur le net ou se taper les tutôts. Mais dans le cadre des webservices ce genre de truc est assait pénible à debugguer (moniteur SOAP + à chaque fois deployement et copie des sources sur le serveur). Donc si vous pouviez me donner un exemple pour construire les principaux type de noeud ca serais vraiment très très, très gentil
D'avance Merci !