类型=“xsd:base64Binary”的Axis webservice

时间:2009-05-29 08:12:21

标签: java web-services axis

所以我有一个wsdl定义了一个消息部分,如下所示

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

这映射到xsd,然后导入其他xsds,依此类推。

我有以下问题:

  1. 如何从xsd
  2. 生成消息部件对象
      

    忽略这个,我找到了   回答,你可以做到这一点,只要你   将xsd导入wsdl文件。   稍后会更好地解释

    1. 如何以允许我直接填充消息对象并通过线路传递它的方式生成客户端对象
    2. 如何调用web服务,将生成的对象转换为base64Binary(这假设上述情况不可行)

1 个答案:

答案 0 :(得分:1)

回答我自己的问题,我能够生成工件来从xsd列表中调用webservice,但是在调用webservice时我无法使用它们。

所以我最终不得不手工生成XML,幸运的是我这是一个小小的电话。

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

由于响应来自xsd:base64Binary,我不得不将传入的字符串映射到xml对象以处理响应。

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

然后我通过jdom输入xmloutput我得到了我的数据。

总而言之,这是实现网络服务的一种愚蠢方式。