webservice datahandler和byte[]

问题描述

有个webservice付款接口,其中付款金额amount加密后为byte[],但是用wsdl2java根据wsdl文件生成java代码中,金额为datahandler,该如何解决?wsdl文件如下:<?xmlversion="1.0"encoding="UTF-8"?><wsdl:definitionstargetNamespace="http://service.hundsun.com"xmlns:ns1="http://dto.hundsun.com"xmlns:soapenc12="http://www.w3.org/2003/05/soap-encoding"xmlns:tns="http://service.hundsun.com"xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"xmlns:xsd="http://www.w3.org/2001/XMLSchema"xmlns:soap11="http://schemas.xmlsoap.org/soap/envelope/"xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"xmlns:soapenc11="http://schemas.xmlsoap.org/soap/encoding/"xmlns:soap12="http://www.w3.org/2003/05/soap-envelope"><wsdl:types><xsd:schemaxmlns:xsd="http://www.w3.org/2001/XMLSchema"attributeFormDefault="qualified"elementFormDefault="qualified"targetNamespace="http://dto.hundsun.com"><xsd:complexTypename="PayRequest"><xsd:sequence><xsd:elementminOccurs="0"name="batchSeqID"nillable="true"type="xsd:string"/><xsd:elementminOccurs="0"name="pd"nillable="true"type="ns1:ArrayOfPayRequestDetail"/><xsd:elementminOccurs="0"name="requestTime"nillable="true"type="xsd:string"/><xsd:elementminOccurs="0"name="source"nillable="true"type="xsd:string"/><xsd:elementminOccurs="0"name="totalAmount"type="xsd:double"/><xsd:elementminOccurs="0"name="totalCount"type="xsd:int"/><xsd:elementminOccurs="0"name="verifyField"nillable="true"type="xsd:string"/></xsd:sequence></xsd:complexType><xsd:complexTypename="ArrayOfPayRequestDetail"><xsd:sequence><xsd:elementmaxOccurs="unbounded"minOccurs="0"name="PayRequestDetail"nillable="true"type="ns1:PayRequestDetail"/></xsd:sequence></xsd:complexType><xsd:complexTypename="PayRequestDetail"><xsd:sequence><xsd:elementminOccurs="0"name="accOrg"nillable="true"type="xsd:string"/><xsd:elementminOccurs="0"name="amount"nillable="true"type="xsd:base64Binary"/><xsd:elementminOccurs="0"name="applyDeptCode"nillable="true"type="xsd:string"/><xsd:elementminOccurs="0"name="attribute1"nillable="true"type="xsd:string"/><xsd:elementminOccurs="0"name="attribute2"nillable="true"type="xsd:string"/><xsd:elementminOccurs="0"name="attribute3"nillable="true"type="xsd:string"/><xsd:elementminOccurs="0"name="attribute4"nillable="true"type="xsd:string"/><xsd:elementminOccurs="0"name="attribute5"nillable="true"type="xsd:string"/><xsd:elementminOccurs="0"name="attribute6"nillable="true"type="xsd:string"/><xsd:elementminOccurs="0"name="attribute7"nillable="true"type="xsd:string"/><xsd:elementminOccurs="0"name="attribute8"nillable="true"type="xsd:string"/><xsd:elementminOccurs="0"name="bizRefCode"nillable="true"type="xsd:string"/><xsd:elementminOccurs="0"name="budgetItemCode"nillable="true"type="xsd:string"/><xsd:elementminOccurs="0"name="bzType"nillable="true"type="xsd:string"/><xsd:elementminOccurs="0"name="cardFlag"nillable="true"type="xsd:string"/><xsd:elementminOccurs="0"name="categoryCode"nillable="true"type="xsd:string"/><xsd:elementminOccurs="0"name="credentials"nillable="true"type="xsd:string"/><xsd:elementminOccurs="0"name="currency"nillable="true"type="xsd:string"/><xsd:elementminOccurs="0"name="cvvCode"nillable="true"type="xsd:string"/><xsd:elementminOccurs="0"name="dealType"type="xsd:int"/><xsd:elementminOccurs="0"name="des"nillable="true"type="xsd:string"/><xsd:elementminOccurs="0"name="detailSeqID"nillable="true"type="xsd:string"/><xsd:elementminOccurs="0"name="dsCode"nillable="true"type="xsd:string"/><xsd:elementminOccurs="0"name="email"nillable="true"type="xsd:string"/><xsd:elementminOccurs="0"name="idCard"nillable="true"type="xsd:string"/><xsd:elementminOccurs="0"name="insCode"nillable="true"type="xsd:string"/><xsd:elementminOccurs="0"name="memo"nillable="true"type="xsd:string"/><xsd:elementminOccurs="0"name="moneyWay"type="xsd:int"/><xsd:elementminOccurs="0"name="noteMoney"type="xsd:float"/><xsd:elementminOccurs="0"name="payAccount"nillable="true"type="xsd:string"/><xsd:elementminOccurs="0"name="payAccountName"nillable="true"type="xsd:string"/><xsd:elementminOccurs="0"name="payBank"nillable="true"type="xsd:string"/><xsd:elementminOccurs="0"name="payBankArea"nillable="true"type="xsd:string"/><xsd:elementminOccurs="0"name="payBankLocation"nillable="true"type="xsd:string"/><xsd:elementminOccurs="0"name="payCurrency"nillable="true"type="xsd:string"/><xsd:elementminOccurs="0"name="payDate"type="xsd:dateTime"/><xsd:elementminOccurs="0"name="payEntityCode"nillable="true"type="xsd:string"/><xsd:elementminOccurs="0"name="payName"nillable="true"type="xsd:string"/><xsd:elementminOccurs="0"name="payObjectType"type="xsd:int"/><xsd:elementminOccurs="0"name="phoneNum"nillable="true"type="xsd:string"/><xsd:elementminOccurs="0"name="recAccount"nillable="true"type="xsd:string"/><xsd:elementminOccurs="0"name="recAccountName"nillable="true"type="xsd:string"/><xsd:elementminOccurs="0"name="recBank"nillable="true"type="xsd:string"/><xsd:elementminOccurs="0"name="recBankArea"nillable="true"type="xsd:string"/><xsd:elementminOccurs="0"name="recBankLocation"nillable="true"type="xsd:string"/><xsd:elementminOccurs="0"name="recName"nillable="true"type="xsd:string"/><xsd:elementminOccurs="0"name="recObjectType"nillable="true"type="xsd:string"/><xsd:elementminOccurs="0"name="subCategoryCode"nillable="true"type="xsd:string"/><xsd:elementminOccurs="0"name="urgent"type="xsd:int"/><xsd:elementminOccurs="0"name="useDes"nillable="true"type="xsd:string"/><xsd:elementminOccurs="0"name="validDate"nillable="true"type="xsd:string"/><xsd:elementminOccurs="0"name="vendorCode"nillable="true"type="xsd:string"/><xsd:elementminOccurs="0"name="verifyField"nillable="true"type="xsd:string"/></xsd:sequence></xsd:complexType><xsd:complexTypename="PayResponse"><xsd:sequence><xsd:elementminOccurs="0"name="errorMsg"nillable="true"type="xsd:string"/><xsd:elementminOccurs="0"name="responseCode"type="xsd:int"/></xsd:sequence></xsd:complexType></xsd:schema><xsd:schemaxmlns:xsd="http://www.w3.org/2001/XMLSchema"attributeFormDefault="qualified"elementFormDefault="qualified"targetNamespace="http://service.hundsun.com"><xsd:elementname="Pay"><xsd:complexType><xsd:sequence><xsd:elementmaxOccurs="1"minOccurs="1"name="in0"nillable="true"type="ns1:PayRequest"/></xsd:sequence></xsd:complexType></xsd:element><xsd:elementname="PayResponse"><xsd:complexType><xsd:sequence><xsd:elementmaxOccurs="1"minOccurs="1"name="out"nillable="true"type="ns1:PayResponse"/></xsd:sequence></xsd:complexType></xsd:element></xsd:schema></wsdl:types><wsdl:messagename="PayRequest"><wsdl:partname="parameters"element="tns:Pay"/></wsdl:message><wsdl:messagename="PayResponse"><wsdl:partname="parameters"element="tns:PayResponse"/></wsdl:message><wsdl:portTypename="FundPayServicePortType"><wsdl:operationname="Pay"><wsdl:inputname="PayRequest"message="tns:PayRequest"/><wsdl:outputname="PayResponse"message="tns:PayResponse"/></wsdl:operation></wsdl:portType><wsdl:bindingname="FundPayServiceHttpBinding"type="tns:FundPayServicePortType"><wsdlsoap:bindingstyle="document"transport="http://schemas.xmlsoap.org/soap/http"/><wsdl:operationname="Pay"><wsdlsoap:operationsoapAction=""/><wsdl:inputname="PayRequest"><wsdlsoap:bodyuse="literal"/></wsdl:input><wsdl:outputname="PayResponse"><wsdlsoap:bodyuse="literal"/></wsdl:output></wsdl:operation></wsdl:binding><wsdl:servicename="FundPayService"><wsdl:portname="FundPayServiceHttpPort"binding="tns:FundPayServiceHttpBinding"><wsdlsoap:addresslocation="http://10.1.17.123:8001/service/fundpay.ws"/></wsdl:port></wsdl:service></wsdl:definitions>

解决方案

解决方案二:
来人指点下
解决方案三:
貌似没人解惑,结贴算了
解决方案四:
构造这样一个对象,提供的应该有set方法吧。
解决方案五:
DataSourcesource=newByteDataSource(bytes);newDataHandler(source)
解决方案六:
DataSourcesource=newByteDataSource(bytess);newDataHandler(source)
解决方案七:
这是我在项目中使用的方法DataHandlerhandler=stub.queryService().get_return();byte[]buffer=newbyte[handler.getInputStream().available()];handler.getInputStream().read(buffer);Map<String,String>services=(Map<String,String>)Util.byte2Object(buffer);

publicstaticObjectbyte2Object(byte[]buffer)throwsException{ObjectInputStreamois=null;Objectobj=null;try{ByteArrayInputStreambis=newByteArrayInputStream(buffer);ois=newObjectInputStream(bis);obj=ois.readObject();}finally{IOUtils.closeQuietly(ois);}returnobj;}

时间: 2024-09-29 16:21:29

webservice datahandler和byte[]的相关文章

利用SOAP(Webservice)上传文件

web|上传 本文系鼎鼎原创,如转载,请注明出处:http://blog.csdn.net/weisunding [WebMethod(Description="上传并保存图片文件")] public bool SaveFile(byte[] binData,string fileName){ bool success=false; string savePath=System.Configuration.ConfigurationSettings.AppSettings["

【android基础】之Android获取网络上的图片结合ImageView的简单应用

网络的访问在我们日常生活中太重要了,如果没有网络我们的生活将会是什么样子呢?android手机和浏览器也是一样的,也可以通过网络通讯获取数据,如调用webservice,EJB等.下面就通过一个小例子从网络获取一幅图片并显示在手机上,开发中将会使用到一个新的组件ImageView. 1.写一个用来处理字节流的工具类 package org.lxh.util;      import java.io.ByteArrayOutputStream;   import java.io.InputStre

Android编程获取图片数据的方法详解

本文实例讲述了Android编程获取图片数据的方法.分享给大家供大家参考,具体如下: 网络的访问在我们日常生活中太重要了,如果没有网络我们的生活将会是什么样子呢?Android手机和浏览器也是一样的,也可以通过网络通讯获取数据,如调用webservice,EJB等.下面就通过一个小例子从网络获取一幅图片并显示在手机上,开发中将会使用到一个新的组件ImageView. 1. 写一个用来处理字节流的工具类 package org.lxh.util; import java.io.ByteArrayO

webservice返回base64Binary内容axis客户端DataHandler接收如何获取内容?

问题描述 webservice返回base64Binary的字符串axis自动生成的客户端使用DataHandler接收如何获取内容?正常应该是返回给我的base64加密字符串,我现在获取出来的都是乱码源码org.apache.axiom.util.stax.XMLStreamReaderUtils.getDataHandlerFromElement(reader)难道是因为使用了Base64DecodingOutputStreamWriter导致的?publicstaticDataHandle

用xfire开发了一个webservice,客户端在调用的时候要传一个二进制数据byte[][] ,在本地tomcat服务器上测试成功,可以接受,

问题描述 用xfire开发了一个webservice,客户端在调用的时候要传一个二进制数据byte[][],在本地tomcat服务器上测试成功,可以接受,但发布到weblogic9上后,就出现问题,错误日志为:-Faultoccurred!java.lang.UnsupportedOperationExceptionatweblogic.xml.stax.XMLStreamReaderBase.getTextCharacters(XMLStreamReaderBase.java:487)ator

java 通过axis2 调用.net webservice 时传2维byte数组的问题

问题描述 求大侠解答下java通过axis2调用.netwebservice时.netwebservice入参为一个byte类型的2维数组axis2是支持byte数组的但是2维的byte数组怎么设置入参类型呢下面是传一维byte数组的java客服端代码packagecn.rx.oamp.util;importjava.net.MalformedURLException;importjava.rmi.RemoteException;importjava.util.Date;importjavax.

DataHandler 经过webservice传输后getName()为null

问题描述 最近要做webservice的文件传输,返回的数据类型是DataHandler,经测试在服务端DataHandler.getName()可以获取到值,但是客户端接受数据时候,却获取不到!!但是数据流可以正常写到客户端磁盘上...在线求大虾 解决方案 解决方案二:既然可以写在客户端磁盘上,那你看看getDataHandler能否获取到InputStream,再读出来.

WebService大讲堂之Axis2(4):二进制文件传输

在<WebService大讲堂之Axis2(2):复合类型数据的传递>中讲过,如果要传递二进制文件(如图 像.音频文件等),可以使用byte[]作为数据类型进行传递,然后客户端使用RPC方式进行调用.这样做 只是其中的一种方法,除此之外,在客户端还可以使用wsdl2java命令生成相应的stub类来调用 WebService,wsdl2java命令的用法详见<WebService大讲堂之Axis2(1):用POJO实现0配置的 WebService>. WebService类中包含

在线等候!!!webservice 附件的问题

问题描述 最近在弄webservice,很烦,遇到了很多问题.希望大侠们给以帮助.小弟在此谢过.这个问题很棘手!!需求是.运用webservice即时发布(jws)实现下载功能.这里的下载主要是对html页面进行下载.页面当中又很多附件也需要一起下载到客户端.我使用了openArticleUpload(XXXX....参数)返回的是这个下载的页面名字.appendixArticleUpload(XXXX...参数)这里的参数就又一个是openArticleUpload的返回值,利用返回值,来下载