如题。
要调用一个基于SOAP的Webservice,对方服务器端的开发环境不详。而且需要身份验证。我通过IP找到WSDL文件。 只用最原始的办法,根据WSDL的描述自己构造SOAP消息,发出去。回复报错401,unauthorized。后来又用SoapUI测试,soap消息不会有问题了,还是报错401。
第一:报错401能不能确定就是用户名和密码的问题?会不会因为我调用的不对,或者开发环境不对,比如服务器端是.NET而我用的是JavaBean。第二:要登陆的话我这里也没有弹出输入身份验证的对话框,wsdl里面也找不到login的方法可以调用。用户名和密码我都知道,但不知道怎么递交给服务器?
很着急,老师一直在等结果,我又是新手搞不定,请各位大侠出手相救/// 在线等
谢谢谢谢谢谢
要调用一个基于SOAP的Webservice,对方服务器端的开发环境不详。而且需要身份验证。我通过IP找到WSDL文件。 只用最原始的办法,根据WSDL的描述自己构造SOAP消息,发出去。回复报错401,unauthorized。后来又用SoapUI测试,soap消息不会有问题了,还是报错401。
第一:报错401能不能确定就是用户名和密码的问题?会不会因为我调用的不对,或者开发环境不对,比如服务器端是.NET而我用的是JavaBean。第二:要登陆的话我这里也没有弹出输入身份验证的对话框,wsdl里面也找不到login的方法可以调用。用户名和密码我都知道,但不知道怎么递交给服务器?
很着急,老师一直在等结果,我又是新手搞不定,请各位大侠出手相救/// 在线等
谢谢谢谢谢谢
解决方案 »
- java实现发送带有链接的邮件链接失效
- JS,这样写总出错,帮忙改一下!
- spring quartz cron表达式如何跨月
- 为什么我的servlet 文件夹过滤器web.xml中的配置参数传不进去呢
- 字符串过长无法显示问题,请进
- 新手求页面上application的用法例子。
- 过滤器用户登录
- 后台保存在request的一组数据,想着JSP页面中用struts2的迭代器循环输出,但是页面一点结果都没有
- 遇到 javax.servlet.ServletException: Cart, 束手无策,急,求援
- 请jsp高手看一下response.setHeader的问题(问了二天了,没有人会的),急啊
- CAS登录后url缺失
- 冰天雪地-裸体跪求。CXF的webservice服务器端被android访问时报错
第二:wsdl里没有认证声明,认证不是webservice soap协议标准的范畴。要在IE里调用方法时才会自动弹出认证选项框,IE里方法调用方式与服务器有关。
我该怎么办?
后面service1表示service名,method1表示调用的方法,a1,2,true表示参数在IE中认证一次是不需要重复认证的,与WEB请求的Session是一个道理。在Java客户端时,可能每次都要认证。因为会话不一定保留。在使用AXIS的客户端时,简单认证方式就是创建Call的时候 Service service = new Service();
Call call = service.createCall();call.setUsername($username);
call.setPassword($password);Object result = call.invoke(new Object[]{"参数1","参数2"});
代码很短:
import java.net.Authenticator;
import java.net.PasswordAuthentication;class MyAuthenticator extends Authenticator {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication ( "username ", "password ");
}
}
在程序中调用:
Authenticator.setDefault (new MyAuthenticator ()); 希望对以后碰到这个问题的人有用谢谢 trocp