【JAX-WS】wsimport生成WS客户端代码,代码中添加验证

来源:互联网 发布:jquery 反序列化json 编辑:程序博客网 时间:2024/05/19 12:17

1.适用于访问WSDL文件时弹窗需要输入用户名密码的情况

2.CMD命令行生成客户端代码: D:\test> wsimport http://xxx.com/xxx/servlet/CustomerWebServ
ice?wsdl -Xauthfile d:\Xauthfile.txt -keep -p ext.customer.integration
Picked up JAVA_TOOL_OPTIONS: -Djava.vendor="Sun Microsystems Inc."

p.s. 1. 参数-p 建议不要省略,否则可能出现名称重复异常,

2. -Xauthfile用来指定权限文件,Xauthfile.txt文件内容如下 ,url要与实际访问wsdl时完全一致

http[s]://username:password@xxx.com/xxx/servlet/CustomerWebService?wsdl


3. 代码copy到你的工程中,不需要添加其它jar包,新建测试类如下,static块用于验证

public class Main  {
static {
   java.net.Authenticator.setDefault(new java.net.Authenticator() {
       @Override
       protected java.net.PasswordAuthentication getPasswordAuthentication() {
           return new java.net.PasswordAuthentication(
usernameStr, p
asswordStr.toCharArray());

       }
   });
}
public static void main(String[] args) throws MalformedURLException {
CustomerWebService service = new CustomerWebServiceService().getCustomerWebServicePort();
System.out.println(service.syncProduct("123"));
}
}