电脑上制作ppt的步骤seo免费培训教程
最近研究了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());
调用还不行,还需要登录,在这一步的时候,查阅了很多资料,无非是使用这种方式
ServiceClient sc = stub._getServiceClient();Options opts = sc.getOptions();opts.setTo(newEndpointReference("http://192.168.100.108/InspectService/InspectService.asmx"));HttpTransportProperties.Authenticator basicAuth = newHttpTransportProperties.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