service:
@WebService(targetNamespace = "http://com.ck")
@SOAPBinding(style = Style.RPC)
public class Upload {
@WebMethod(operationName = "transfer")
public void transfer(@WebParam(name = "fileId")String fileId, @WebParam(name = "handler")DataHandler handler){
try {
BufferedInputStream in = new BufferedInputStream(handler.getInputStream());
ByteArrayOutputStream byteOut = new ByteArrayOutputStream();
byte[] b = new byte[1024];
int r = -1;
while((r = in.read(b)) != -1){
byteOut.write(b, 0, r);
}
in.close();
String s = new String(byteOut.toByteArray(), "utf-8");
System.out.println(s);
} catch (IOException e) {
e.printStackTrace();
}
}
}
服务发布
public static void main(String[] args) {
Endpoint.publish("http://xx/upload", new Upload());
}
生成客户端
wsimport http://xx/upload?wsdl -d c:\test -p client
client:
利用生成的代理类
UploadService service = new UploadService();
Upload upload = service.getUploadPort();
DataSource source = new FileDataSource("c:\\test\\1.txt");
DataHandler handler = new DataHandler(source);
ByteArrayOutputStream out = new ByteArrayOutputStream();
handler.writeTo(out);
upload.transfer("test", out.toByteArray());
参考:
http://weblogs.java.net/blog/vivekp/archive/2006/12/webservices_in.html
http://server.everfine.com.tw/blog/archives/2009/05/file-upload-of.html