如何使用期望“application / octet-stream”作为内容类型和base64Binary作为Type的web服务?

时间:2013-07-24 11:49:27

标签: web-services java-ee webservice-client datahandler

我有一个Web服务,需要这种格式的文档:

<xs:complexType name="document">
  <xs:sequence>    
    <xs:element minOccurs="0" name="inhalt" ns1:expectedContentTypes="application/octet-stream" type="xs:base64Binary"/>
  </xs:sequence>
</xs:complexType>

Eclipse请求DataHandler,所以我尝试传递PDF文件:

DataSource dataSource = new ByteArrayDataSource(myDoc.getDocument(), "application/pdf");
DataHandler dataHandler = new DataHandler(dataSource, "application/octet-stream");

但是,webservice会抛出持久性异常,表示它无法使用我提供的文件。我还应该如何构建dataHandler?

(P.S。上面的序列包含2个以上的String元素,我在这里省略了因为它们没有问题

P.P.S。 getDocument()返回byte [])

1 个答案:

答案 0 :(得分:0)

它通过省略dataHandler的类型来工作:

DataSource dataSource = new ByteArrayDataSource(myDoc.getDocument(), "application/pdf");
DataHandler dataHandler = new DataHandler(dataSource);