问题描述
- 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做过添加用户名密码验证的操作,请大神搭救。
时间: 2024-10-30 16:49:46