一般我们webservice的方法参数或返回值为byte类型的时候,在生成的客户端代码里的参数却是DataHandler,为此我纠结了好久。网上查的全是什么图片上传,其实我就想传递一个简单的字符串的字节码,跟什么文件上传屁兜不打岔。最后我弄出来了。上代码,以便以后使用。
package com.imp;
import java.io.ByteArrayInputStream;
import java.io.InputStream;
import java.io.OutputStream;
import javax.activation.DataHandler;
import javax.activation.DataSource;
public class TestMain {
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
HelloDaoImpStub stub =new HelloDaoImpStub();
Say say =new Say();
String s="23323232";
byte[] b= s.getBytes();
say.setB(createDataHandler(b));
SayResponse response = stub.say(say);
DataHandler result = response.get_return();
System.out.println(result.getName());
}
public static DataHandler createDataHandler(final byte[] b) {
return new DataHandler(new DataSource() {
public InputStream getInputStream() {
return new ByteArrayInputStream(b);
}
public OutputStream getOutputStream() {
return null;
}
public String getContentType() {
return "";
}
public String getName() {
return "";
}
});
}
}
本文出自 “重新来学JAVA” 博客,请务必保留此出处http://3131854.blog.51cto.com/3121854/1389300