java调用第三方webservice(需要登录验证)
2015-07-29 17:04
676 查看
最近研究了java调用第三方webservice的几种方法,方式很多,主要卡在登录验证上。
webservice是有iis中的.net程序提供的。在iis中设置了登录验证,浏览器输入http://192.168.100.108/InspectService/InspectService.asmx
弹出登录窗口
输入iis中设置的用户名密码,即可进入
了解到java调用webservice的几种方式,我选择了axis2,使用wsdl2java生成客户端代码,然后直接调用,很方便
InspectServiceStub.TestConnection t=new InspectServiceStub.TestConnection();
System.out.println(stub.testConnection(t).getTestConnectionResult());
调用还不行,还需要登录,在这一步的时候,查阅了很多资料,无非是使用这种方式
大部分人也是这样写的。但是在自己的测试中总是通不过,放弃
关于调用不成功的,看了一些人的说法:http://codego.net/295434/
使用cxf
通过wsdl2java生成客户端代码,下面是调用
参考:http://blog.sina.com.cn/s/blog_6556038f0101dkem.html
webservice是有iis中的.net程序提供的。在iis中设置了登录验证,浏览器输入http://192.168.100.108/InspectService/InspectService.asmx
弹出登录窗口
输入iis中设置的用户名密码,即可进入
了解到java调用webservice的几种方式,我选择了axis2,使用wsdl2java生成客户端代码,然后直接调用,很方便
InspectServiceStub.TestConnection t=new InspectServiceStub.TestConnection();
System.out.println(stub.testConnection(t).getTestConnectionResult());
调用还不行,还需要登录,在这一步的时候,查阅了很多资料,无非是使用这种方式
ServiceClient sc = stub._getServiceClient(); Options opts = sc.getOptions(); opts.setTo(new EndpointReference("http://192.168.100.108/InspectService/InspectService.asmx")); HttpTransportProperties.Authenticator basicAuth = new HttpTransportProperties.Authenticator(); // AuthPolicy.registerAuthScheme(AuthPolicy.NTLM, BackportedNTLMScheme.class); basicAuth.setUsername("username"); basicAuth.setPassword("password"); List authPrefs = new ArrayList(1); authPrefs.add(AuthPolicy.NTLM); basicAuth.setAuthSchemes(authPrefs); opts.setProperty(HTTPConstants.AUTHENTICATE, basicAuth); //调用方法TestConnection InspectServiceStub.TestConnection t=new InspectServiceStub.TestConnection(); System.out.println(stub.testConnection(t).getTestConnectionResult());
大部分人也是这样写的。但是在自己的测试中总是通不过,放弃
关于调用不成功的,看了一些人的说法:http://codego.net/295434/
使用cxf
通过wsdl2java生成客户端代码,下面是调用
JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean(); factory.setServiceClass(InspectService.class); factory.setAddress("http://192.168.100.108/InspectService/InspectService.asmx"); factory.setUsername("username"); factory.setPassword("password"); InspectService s = (InspectService) factory.create(); System.out.println("connection result:"+s.testConnection());测试通过
参考:http://blog.sina.com.cn/s/blog_6556038f0101dkem.html
相关文章推荐
- 06 JAVA 容器
- 深入浅出学Spring Data JPA
- java 判断对象是否为空
- 【持久化框架】SpringMVC+Spring4+Mybatis3集成,开发简单Web项目
- Myeclipse6.0 在线安装svn插件
- Error与Exception(错误和异常的区别与联系)
- java如何获取本地操作系统进程列表
- java关于线程的问题
- jdk的动态代理源码解析
- SPring MVC i18n 国际化使用流程Demon(Maven项目的搭建和web、spring框架的添加)
- Spring 3 MVC深入研究
- 测试ArrayList和LinkedList的效率
- Java IO学习【15】字节流和字符流转换&小注意点
- Java 对象的串行化(Serialization)
- Java堆和栈的区别
- Java代码执行机制
- [转]JAVA正则表达式 Pattern和Matcher
- JAVA垃圾收集器与内存分配策略详解
- Java8的日期和时间的库20经常使用的演示样本
- 用Java集合中的Collections.sort方法对list排序的两种方法