gpt4 book ai didi

java - 使用附件调用 Web 服务

转载 作者:行者123 更新时间:2023-11-30 09:54:48 25 4
gpt4 key购买 nike

我在尝试调用需要附件的 Web 服务时遇到了一个相当令人沮丧的问题。

这是错误:

Unexpected Attachment type =class java.lang.Object

从这里开始:

class="com.sun.xml.ws.client.sei.ResponseBuilder$AttachmentBuilder" file="ResponseBuilder.java" line="250" method="createAttachmentBuilder"

网络代理给我的方法是这样的:

  public Reply putDocument(
@WebParam(targetNamespace="uri:put.document", partName="request", name="request")
StoreType request,
@WebParam(targetNamespace="", partName="put", name="put")
Object put);

我想不通的是要为“put”传递什么,它只被定义为一个对象。

我试过:

byte[]
String
DataHandler(ByteArrayDataSource)
uri.put_document.ObjectFactory.createPut(byte[])
AttachmentPart

我也曾尝试寻找代码,但到目前为止还没有成功。

编辑:WSDL 如下。

<?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>

最佳答案

我希望 mime:content 元素中的类型属性包含 MIME 类型,例如。 “application/octet-stream”、“application/pdf”或“text/plain”而不是“binary”。

使用 javax.activation.DataHandler 应该可行,我认为您应该能够修复附件的 MIME 类型,然后使用 DataHandler 实例或适合 MIME 类型的类型(例如 java.awt.Image对于“图像/jpeg”)。

您说您已经尝试过 DataHandler,但是您没有为这种情况提供异常。如果仍然失败,当您尝试时会发生什么?

关于java - 使用附件调用 Web 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3114763/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com