前言

有时候调用web service 会出现

Message does not conform to configured policy [ AuthenticationTokenPolicy(S) ]:  No Security Header found

这种错误。

以在 soapui 调用的结果来看, 会出现例如以下的返回

aaarticlea/png;base64,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" alt="" />

出现这种错误的原因 是webservice 的服务端须要提供 soap 认证的表头。

举例来说。 可能须要加上例如以下的认证头:

        <soapenv:Header>
<wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" soapenv:mustUnderstand="1">
<wsse:UsernameToken>
<wsse:Username>UserName</wsse:Username>
<wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">Password</wsse:Password>
</wsse:UsernameToken>
</wsse:Security>
</soapenv:Header>

(这个细部的格式和服务端的要求有关, 详细的username和pass也是服务端提供的)

在sopaui 调用的时候, 加上相似, 就能呼叫成功了。

aaarticlea/png;base64,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" alt="" />

在soapui 调用, 能够用以上方式来做。

在把wsdl 转为java 后。 又该怎样加上认证的头信息呢?

cxf 加上认证头

(以上的认证头。 比較接近cxf 的调用方式。

)

假设使用的是cxf生产的客户端的代码。

(怎样生成,參考 CXF 生成Web Service Client(将WSDl 转化成 Java代码)

在 _Client 调用的时候加上 例如以下代码:(在方法调用的代码之前)

	    Map<String, Object> props = new HashMap<String, Object>();
props.put(WSHandlerConstants.ACTION, WSHandlerConstants.USERNAME_TOKEN);
props.put(WSHandlerConstants.PASSWORD_TYPE,WSConstants.PW_TEXT);
props.put(WSHandlerConstants.USER, "UserName");
props.put(WSHandlerConstants.PW_CALLBACK_CLASS, PasswordHandler.class.getName());
WSS4JOutInterceptor wssOut = new WSS4JOutInterceptor(props);
Client client = ClientProxy.getClient(port);
client.getOutInterceptors().add(wssOut);

在client 的java 文件里, 新增下面内部类

	public static class PasswordHandler implements CallbackHandler
{
public void handle(javax.security.auth.callback.Callback[] callbacks) {
for (int i = 0; i < callbacks.length; i++) {
WSPasswordCallback pc = (WSPasswordCallback)callbacks[i];
pc.setPassword("password");
}
} }

Axis2 加上认证头

针对以上的认证头在axis2 产生的java 文件里怎样加入呢(Axis2自己主动产生的java 文件并不会自己主动产生main的測试文件, 须要自己写。  XXXXProxy.java 这是供调用的类文件。 只是这些和加入认证头关系不大)

axis2会产生一个  XXXXPortBindingStub.java 的文件。

这里面的内容就是实际的方法体。

找到我们须要调用的那个方法体:

在方法调用之前。加入下面代码:

//Begin add for Header
String AUTH_PREFIX = "wsse";
String AUTH_NS = "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd";
try{
SOAPElement wsSecHeaderElm = soapFactory.createElement("Security", AUTH_PREFIX, AUTH_NS);
SOAPElement userNameTokenElm = soapFactory.createElement("UsernameToken",AUTH_PREFIX, AUTH_NS);
SOAPElement userNameElm = soapFactory.createElement("Username",AUTH_PREFIX, AUTH_NS);
SOAPElement passwdElm = soapFactory.createElement("Password",AUTH_PREFIX, AUTH_NS);
passwdElm.setAttribute("Type", "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText"); userNameElm.addTextNode("vend_bmc01");
passwdElm.addTextNode("mediatek"); userNameTokenElm.addChildElement(userNameElm);
userNameTokenElm.addChildElement(passwdElm);
wsSecHeaderElm.addChildElement(userNameTokenElm);
SOAPHeaderElement soapHeaderElement = new SOAPHeaderElement(wsSecHeaderElm);
soapHeaderElement.setMustUnderstand(true);
_call.addHeader(soapHeaderElement);
}catch(Exception e)
{
e.printStackTrace();
}
//End add for Header ===》call method
java.lang.Object _resp = _call.invoke(XXXX);

原理非常easy。 加上相似xml 的头, _call_addHeader

加上之后。再触发方法 _call.invoke

Java 调用Web service 加入认证头(soapenv:Header)的更多相关文章

  1. (转)JAVA 调用Web Service的三种方法

    1.使用HttpClient用到的jar文件:commons-httpclient-3.1.jar方法:预先定义好Soap请求数据,可以借助于XMLSpy Professional软件来做这一步生成. ...

  2. (转)Java实现Web Service过程中处理SOAP Header的问题

    网上有篇文章,大致这么说的(如下文),最后我采用的wsimport  -XadditionalHeaders的方式. StrikeIron offers two authentication meth ...

  3. java axis web service

    编写 java调用web service的客户端比较简单,其中webservice为上一篇gsoap创建的server. package clientTest; import java.rmi.Rem ...

  4. ORACLE存储过程调用Web Service

    1. 概述 最近在ESB项目中,客户在各个系统之间的服务调用大多都是在oracle存储过程中进行的,本文就oracle存储过程调用web service来进行说明.其他主流数据库,比如mysql和sq ...

  5. php5调用web service

    工作中需要用php调用web service接口,对php不熟,上网搜搜,发现关于用php调用web service的文章也不多,不少还是php4里用nusoap这个模块调用的方法,其实php5里已经 ...

  6. php5调用web service (笔者测试成功)

    转自:http://www.cnblogs.com/smallmuda/archive/2010/10/12/1848700.html 感谢作者分享 工作中需要用php调用web service接口, ...

  7. 通过ksoap2-android来调用Web Service操作的实例

    import java.io.IOException; import org.ksoap2.SoapEnvelope;import org.ksoap2.serialization.SoapObjec ...

  8. 使用Android应用调用Web Service

    Java本身提供了丰富的Web  Service支持,比如Sun公司指定的JAX-WS  2规范,还有Apache开源组织所提供的Axis1.Axis2.CXF等,这些技术不仅可以用于非常方便地对外提 ...

  9. C#使用SOAP调用Web Service

    程序代码 using System;using System.IO;using System.Net;using System.Text; namespace ConsoleApplication1{ ...

随机推荐

  1. SQL SERVER 2008 多边形问题的解决

    报错内容: 在执行用户定义例程或聚合 "geometry" 期间出现 .NET Framework 错误: System.ArgumentException: 24144: 由于该 ...

  2. codevs 1204 寻找子串位置 KMP

    1204:寻找子串位置 Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 18K  Solved: 8K Description 给出字符串a和字符串b,保 ...

  3. JQ中get()与eq()的区别

    .eq() : 减少匹配元素的集合,根据index索引值,精确指定索引对象. .get() : 通过检索匹配jQuery对象得到对应的DOM元素. 同样是返回元素,那么eq与get有什么区别呢? eq ...

  4. 【原】不定义Order属性,通过切面类的定义顺序来决定通知执行的先后顺序

    [结论] 在多个切面类的“切入点相同”并且每个切面都“没有定义order属性”的情况下,则切面类(中的通知)的执行顺序与该切面类在<aop:config>元素中“声明的顺序”相关,即先声明 ...

  5. js跨域请求提示函数未定义的问题

    我的代码是这么写的 window.onload=function(){ function sendRequest(){ var script=document.getElementById(" ...

  6. Backup your Android without root or custom recovery -- adb backup

    ecently discovered a neat new way to back up apps on my Android without having to use Titanium Backu ...

  7. 2008 SCI 影响因子(Impact Factor)

    2008 SCI 影响因子(Impact Factor) Excel download 期刊名缩写 影响因子 ISSN号 CA-CANCER J CLIN 74.575 0007-9235 NEW E ...

  8. 四种DCOM错误的区别,0x80080005 0x800706be 0x80010105 0x

    四种DCOM错误的区别Differences between the following DCOM error 0x800800050x800706be0x800101050x800706ba     ...

  9. CentOS 6.5系统下安装和配置NFS服务

    一.环境介绍: 服务器:centos 192.168.1.225 客户端:centos 192.168.1.226 二.安装: NFS的安装配置: centos 5 : 1 yum -y instal ...

  10. ios 中局部变量可以通过传递来进行管理和释放,借此可提高代码的內聚度

    ios 中 局部变量可以通过传递来进行管理和释放,通过多使用局部变量,可以提高代码的內聚度.如下: -(void)someMethod { UILabel *label = [[UILabel al ...