2009-05-29 8 views
1

j'ai donc une wsdl qui définit une partie de message comme le suivantAxe webservice avec type = « xsd: base64Binary »

<wsdl:message name="processEnvelopeResponse"> 
    <wsdl:part name="processEnvelopeReturn" type="xsd:base64Binary"/> 
</wsdl:message> 

Mappe à un XSD, wich importe alors d'autres XSD et ainsi de suite.

J'ai les questions suivantes:

  1. Comment puis-je générer les objets partiels Message du xsd

Ignorer celui-ci, je l'ai trouvé la réponse, vous pouvez le faire Tant que vous importer le xsd dans le fichier wsdl. expliquerons plus tard

  1. Comment puis-je générer les objets côté client d'une manière qui me permet de remplir directement les objets de message et le passer sur le fil
  2. Comment puis-je appeler le webservice, transformant les objets générés pour base64Binary (celui-ci assume ce qui précède n'est pas possible)

Répondre

1

répondre donc à ma propre question, j'ai pu générer les artefacts pour appeler le webservice de la liste de xsd, mais je n'ai pas pu les utiliser lors de l'appel du webservice.

Donc j'ai fini par devoir générer le XML à la main, j'ai eu de la chance que ce soit un petit appel.

String input="XML"; 
byte[] s = port.processEnvelope(input.getBytes()); 

Et puisque la réponse est venu à xsd: base64Binary aussi je dû cartographier la chaîne entrant en objets XML afin de traiter la réponse.

String xmloutput = new String(s,"UTF-8"); 

J'ai ensuite mis xmloutput à travers jdom j'ai mes données.

dans l'ensemble, une manière stupide de mettre en œuvre un service web.