JAVA WSIMPORT生成WEBSERVICE客户端401认证过程图解
概述

wsimport是jdk自带的命令,可以根据wsdl文档生成客户端中间代码,基于生成的代码编写客户端,可以省很多麻烦。
先看两张截图:
使用浏览器打开webservice出现的界面:
使用wsimport生成webservice客户端出现401错误:
需用到的命令参数如下:
1. -d <directory> 在指定的目录生成class文件
2. -p <pkg> 指定生成文件的包结构
3. -Xauthfile <filepath> 在格式文件进行授权信息
4. -keep <url> 在生成class文件,或者jar包时,同时保留java源文件
第一步 创建wsimport生成ws命令行
wsimport -d D:\JAVA\wrokspace\您的项目\src -p com.xx.web -Xauthfile D:\JAVA\wrokspace\您的项目\authfile.txt -keep http://xxxx:9000/Service.asmx?wsdl
1、通过-d命令指定您的java项目src路径
2、通过-p命令指定需生成包结构(指定之后会自动生成)
3、通过-Xauthfile命令指定访问带有401认证的webservice授权文件(文件路径或文件名可以随意更改 特别简单,请放心)。
4、通过-keep命令指定webservice路径
第二步 创建授权文件(authfile.txt)
http://test:123456@192.168.110.21:9000/Service.asmx?wsdl
第三步 在MyEclipse工具中找到对应的项目右键刷新
备注:生成完成之后项目可能会出现错误,将错误稍作修改至没有异常即可。
第四步 尝试调用webservice接口函数并运行项目
出现了 Server returned HTTP response code: 401异常,虽然ws成功导入到项目中了但是项目访问接口的时候没有进行身份认证导致出现该异常。我已经在论坛里面找到这个方法的解决方案,
原链接(参考#10):http://bbs.csdn.net/topics/370023850
import java.net.Authenticator;
import java.net.PasswordAuthentication;
public class MyAuthenticator extends Authenticator {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication("用户名", "密码".toCharArray());
}
}
调用的时候只需要在调用接口之前调用执行该方法即可:
Authenticator.setDefault(new MyAuthenticator());
终于搞定了
直接用HttpURLConnection是不行的,这个默认只是80端口。
最后是用 Java.Net的Authenticator类 把Username和Password直接投过去(他之后对位流的处理遵守http的basic身份验证机制)
代码很短:
import java.net.Authenticator;
import java.net.PasswordAuthentication;
class MyAuthenticator extends Authenticator {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication ( "username ", "password ");
}
}
在程序中调用:
Authenticator.setDefault (new MyAuthenticator ());
希望对以后碰到这个问题的人有用
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
代码知识SEO上一篇 : Memcached构建缓存服务器的方法
下一篇 : Python random模块的使用示例
-
SEO外包最佳选择国内专业的白帽SEO机构,熟知搜索算法,各行业企业站优化策略!
SEO公司
-
可定制SEO优化套餐基于整站优化与品牌搜索展现,定制个性化营销推广方案!
SEO套餐
-
SEO入门教程多年积累SEO实战案例,从新手到专家,从入门到精通,海量的SEO学习资料!
SEO教程
-
SEO项目资源高质量SEO项目资源,稀缺性外链,优质文案代写,老域名提权,云主机相关配置折扣!
SEO资源
-
SEO快速建站快速搭建符合搜索引擎友好的企业网站,协助备案,域名选择,服务器配置等相关服务!
SEO建站
-
快速搜索引擎优化建议没有任何SEO机构,可以承诺搜索引擎排名的具体位置,如果有,那么请您多注意!专业的SEO机构,一般情况下只能确保目标关键词进入到首页或者前几页,如果您有相关问题,欢迎咨询!