Je rencontre un problème plutôt frustrant en essayant d'appeler un service Web qui nécessite une pièce jointe.Appelez le service Web avec pièce jointe
C'est l'erreur:
Unexpected Attachment type =class java.lang.Object
d'ici:
class="com.sun.xml.ws.client.sei.ResponseBuilder$AttachmentBuilder" file="ResponseBuilder.java" line="250" method="createAttachmentBuilder"
La méthode du proxy Web me donne est la suivante:
public Reply putDocument(
@WebParam(targetNamespace="uri:put.document", partName="request", name="request")
StoreType request,
@WebParam(targetNamespace="", partName="put", name="put")
Object put);
Ce que je ne peux pas comprendre est ce que passer à "put", qui est seulement défini comme un objet.
J'ai essayé:
byte[]
String
DataHandler(ByteArrayDataSource)
uri.put_document.ObjectFactory.createPut(byte[])
AttachmentPart
J'ai aussi essayé de chercher le code, mais ne l'ai pas eu la chance jusqu'à présent.
EDIT: WSDL est la suivante.
<?xml version="1.0" encoding="UTF-8" ?>
<definitions targetNamespace="urn:fer"
xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:tns="urn:fer"
xmlns:get="uri:get.document"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/">
<types>
<xsd:schema>
<xsd:import namespace="uri:get.document"
schemaLocation="../xsd/getDocument.xsd"/>
</xsd:schema>
</types>
<message name="putDocument">
<part name="request" element="put:request"/>
<part name="put" element="put:put"/>
</message>
<message name="putDocumentReply">
<part name="reply" element="put:reply"/>
</message>
<portType name="FrontEndRepository">
<operation name="putDocument">
<input message="tns:putDocument"/>
<output message="tns:putDocumentReply"/>
</operation>
</portType>
<binding name="frontEndRepositoryPortSOAP11Binding"
type="tns:FrontEndRepository">
<soap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="putDocument">
<soap:operation style="document"
soapAction="putDocument"/>
<input>
<mime:multipartRelated>
<mime:part>
<soap:body use="literal" parts="request"/>
</mime:part>
<mime:part>
<mime:content part="put" type="binary"/>
</mime:part>
</mime:multipartRelated>
</input>
<output>
<soap:body use="literal"/>
</output>
</operation>
</binding>
<service name="FrontEndRepository">
<port name="FrontEndRepository"
binding="tns:frontEndRepositoryPortSOAP11Binding">
<soap:address location="http://localhost:7101/FER-FrontEndrepository-context-root/frontEndRepositoryPort"/>
</port>
</service>
</definitions>
Nous avons besoin de votre WSDL. Regardez aussi ici https://jax-rpc.dev.java.net/whitepaper/1.1.2/attachments-howto.html –
@Romain: WSDL ajouté. Merci! –
Pouvez-vous lui transmettre une valeur nulle ou une ficelle String? Toute instance Serializable non-Object semble avoir du succès. –