2 u012626262 u012626262 于 2013.10.30 16:11 提问

xfire调sap的webservice服务需要提供用户名密码

在最近的项目中使用xfire调sap的webservice服务,但是sap的webservice需要验证系统用户名密码,在网上搜索了下xfire的资料,只有一位朋友提到了用client.addOutHandler(handler)方法,以下是他写的handler类代码
package com.client;

import org.codehaus.xfire.MessageContext;
import org.codehaus.xfire.handler.AbstractHandler;
import org.jdom.Element;

public class ClientAuthenticationHandler extends AbstractHandler {

private String username = null;

private String password = null;

public ClientAuthenticationHandler() { 
}

public ClientAuthenticationHandler(String username,String password)  { 
    this.username = username; 
    this.password = password;
}

public void setUsername(String username) { 
    this.username = username; 
}

public void setPassword(String password) { 
    this.password = password; 
}

public void invoke(MessageContext context) throws Exception {

    //为SOAP Header构造验证信息
    Element el = new Element("header"); 
    context.getOutMessage().setHeader(el); 
    Element auth = new Element("AuthenticationToken"); 
    Element username_el = new Element("Username"); 
    username_el.addContent(username); 
    Element password_el = new Element("Password"); 
    password_el.addContent(password); 
    auth.addContent(username_el); 
    auth.addContent(password_el); 
    el.addContent(auth); 
} 

}

想请问下重写的invoke中添加的header、AuthenticationToken、Username、Password元素是所有SOAP Header验证信息结构都是这样的,还是此例中的服务端要求此格式呢。

我没有使用xfire做过添加用户名密码验证的操作,请大神搭救。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!