使用 wsimport 生成java代码

命令参数说明:
-d:生成客户端执行类的class文件的存放目录
-s:生成客户端执行类的源文件的存放目录
-p:定义生成类的包名
-verbose:输出有关编译器正在执行的操作的消息
–Xauthfile:指定身份认证文件
其他命令参数请参照:http://docs.oracle.com/javase/6/docs/technotes/tools/share/wsimport.html

Xauthfile说明:

1
http[s]://user:password@host:port//<url-path>

命令示例:

1
wsimport -keep -d /Users/developer/Desktop -s /Users/developer/Desktop -p com.map -verbose -Xauthfile  /Users/developer/Desktop/test.txt  http://ip:port/sap/bc/srt/wsdl/flv_10002A101AD1/bndg_url/sap/bc/srt/rfc/sap/zcs_ws001/200/zcs_ws001/zcs_ws001?sap-client=200

添加身份认证信息

修改Service静态方法,添加身份认证信息。代码参考如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
try {
url = new URL("http://ip:port/sap/bc/srt/wsdl/flv_10002A101AD1/bndg_url/sap/bc/srt/rfc/sap/zcs_ws001/200/zcs_ws001/zcs_ws001?sap-client=200");

//添加身份认证
Authenticator.setDefault(new Authenticator() {

protected PasswordAuthentication getPasswordAuthentication() {

return new PasswordAuthentication("user","password".toCharArray());

}

});
} catch (MalformedURLException ex) {
e = new WebServiceException(ex);
}

调用Web Service

核心代码如下:

1
2
3
4
5
6

//实例化Service
ZCSWS001_Service mywebService = new ZCSWS001_Service();

//调用WebService提供接口并打印返回结果。
System.out.println(mywebService.getZCSWS001().zceshi001(1,2));

(完)

文章参考:
浮云骑士_
wsimport - Java™ API for XML Web Services (JAX-WS) 2.0