使用Axis 1.4设置自定义SOAP标头

我正在尝试使用Axis使用.NET 2.0 Web服务。我使用Eclipse WST插件生成了Web服务客户端,到目前为止看来还可以。

这里是预期的SOAP标头:

<soap:Header>

<Authentication xmlns="http://mc1.com.br/">

<User>string</User>

<Password>string</Password>

</Authentication>

</soap:Header>

我没有找到有关如何从Axis客户端配置此标头的任何文档。当我使用Visual Studio C#Express

2008生成客户端时,它会生成一个Authentication具有两个String属性(UserPassword)的类,并且所有客户端方法都将此类的对象作为第一个参数,但是Axis

WS客户端却没有。

如何在客户呼叫中设置此标头?

回答:

也许你可以使用org.apache.axis.client.Stub.setHeader方法?像这样:

MyServiceLocator wsLocator = new MyServiceLocator();

MyServiceSoap ws = wsLocator.getMyServiceSoap(new URL("http://localhost/MyService.asmx"));

//add SOAP header for authentication

SOAPHeaderElement authentication = new SOAPHeaderElement("http://mc1.com.br/","Authentication");

SOAPHeaderElement user = new SOAPHeaderElement("http://mc1.com.br/","User", "string");

SOAPHeaderElement password = new SOAPHeaderElement("http://mc1.com.br/","Password", "string");

authentication.addChild(user);

authentication.addChild(password);

((Stub)ws).setHeader(authentication);

//now you can use ws to invoke web services...

以上是 使用Axis 1.4设置自定义SOAP标头 的全部内容, 来源链接: utcz.com/qa/401431.html

回到顶部