1、使用CXF发布服务端,接口参数Student,byte数组,javax.activation.DataHandler对象,byte和DataHandler用来测试不同方式接收附件。
2、发布服务,发布成功后可以看到,byte数组和DataHandler type都是"xs:base64Binary"
3、使用axis2命令:wsdl2java -uri wsdl地址 -p 类包路径 -o 生成文件的路径
生成客户端调用,可以看到不管是byte[]还是DataHandler类型,set值时都是DataHandler类型
4、使用CXF命令:wsdl2java -p 类包路径 -d 生成文件的路径 -encoding utf-8 -client wsdl地址
生成客户端调用,首先说一下命令加上 -client ,会直接生成一个带有_Client类直接在里面修改测试就行,否则不会自动生成此类,具体调用自己写。根据截图可以看到不管是byte[]还是DataHandler类型,cxf客户端传参都是byte数组。
5、cxf 不使用命令生成客户端, 使用JaxWsDynamicClientFactory 调用,如果不传自定义对象红框内容可以去掉(暂时找到这种方法传自定义对象),使用此种方法不用再使用命令生成客户端。
可以将此方法参数提炼出来,单独做一个工具栏调用,
client.invoke("wsdl中的方法名", object... params);object... params 可变参数
服务端实现类: