`
chenggong1220
  • 浏览: 1968 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
文章分类
社区版块
存档分类
最新评论

关于axis怎样加入Header信息

    博客分类:
  • java
 
阅读更多

这几天遇到一个需求,要调用cxf发布的一个webservice,但客户端调用时需要传入soapenv:Header参数,xml格式如下:
<soapenv:Envelope >
   <soapenv:Header>
  <tns:RequestSOAPHeader  xmlns:tns="http://webservice.xxx.com/" >
      <tns:user>abc</tns:user>
   <tns:password>c7bb9ff815174523e3d9234</tns:password>
  </tns:RequestSOAPHeader>
   </soapenv:Header>
    <soapenv:Body>
     消息体...
    </soapenv:Body>
</soapenv:Envelope>
其中的难点是怎么传入soapenv:Header信息。因为客户端系统时间比较久,发现用cxf的方式调用可以成功,但要增加jar包,故放弃,继后考虑到原系统用的axis故在网上查了下实现方式。
1,wsdl2java生成客户端代码。其axis的写法是:


java -classpath %AXIS_CLASSPATH% org.apache.axis.wsdl.WSDL2Java   -o D:\backup -p com.cn.sany.bmp http://bpm.abc.com/45rtyFGHqw/sys/webservice/loginqwWebserviceService?wsdl


其中,AXIS_CLASSPATH需要的包有: 

%AXIS_LIB%\axis.jar;%AXIS_LIB%\axis-ant.jar;%AXIS_LIB%\axis-schema.jar;%AXIS_LIB%\commons-discovery-0.2.jar;%AXIS_LIB%\commons-logging-1.1.1.jar;%AXIS_LIB%\jaxrpc.jar;%AXIS_LIB%\log4j-1.2.13.jar;%AXIS_LIB%\saaj.jar;%AXIS_LIB%\wsdl4j-1.6.2.jar;%AXIS_LIB%\activation.jar;%AXIS_LIB%\mail.jar;%AXIS_LIB%\xmlsec-1.4.7.jar;

 

特别的是,在axis-bin-1_3.zip中不包括activation.jar、mail.jar和xmlsec-1.3.0.jar这3个文件,需要去SUN和Apache主页单独下载,
分别是jaf-1_0_2-upd2.zip、javamail-1_4.zip和xml-security-bin-1_3_0.zip。
注:如果是cfx方式,更简单:

 

"D:\apache-cxf-2.5.2\bin\wsdl2java" -fe jaxws21
-p com.sany.account.webservice -d client
-client http://10.0.15.112:18080/abcInterface/service/AccountantVoucherSynServer?wsdl


2,写单元测试类,方法如下:

		ILoginWebserviceServiceServiceLocator locator = new ILoginWebserviceServiceServiceLocator();
		ILoginWebserviceServiceServiceSoapBindingStub service = null;
		service = (ILoginWebserviceServiceServiceSoapBindingStub) locator.getILoginWebserviceServicePort(
				new java.net.URL("http://bpm.abc.com/45rtyFGHqw/sys/webservice/loginqwWebserviceService?wsdl"));
		SOAPHeaderElement header = new SOAPHeaderElement("http://webservice.xxx.com/","RequestSOAPHeader");
		SOAPElement soap = null;
		soap = header.addChildElement("tns:user");
		soap.addTextNode("abc");
    soap = header.addChildElement("tns:password");
    soap.addTextNode("c7bb9ff815174523e3d980faa2"); 	
		service.setHeader(header);	
		LoginParameterForm form = new LoginParameterForm();
		form.setLoginName("wangdw10");
		LoginWebserviceResult result = null;
		result = service.getLoginSessionId(form);

 
这样就能达到目的了!

 

分享到:
评论

相关推荐

    Axis2 通过soap header进行授权服务

    Axis2 通过soap header进行授权服务 客户端根据是否生产stub客户端代码采用两种形式实现。

    Java Webservice Axis2 Client(含soapheader验证)

    本教程将深入探讨如何在Java中使用Axis2构建一个包含SOAP Header验证的客户端。 首先,理解SOAP Header至关重要。SOAP Header是SOAP消息的一部分,用于传递非处理信息,如认证、交易、安全等。与SOAP Body不同,...

    axis入门中文文档

    【Axis入门中文文档】是针对Web Service开发的一款关键工具,主要使用了Axis框架,该框架是Apache软件基金会下的一个开源项目,专门用于构建和部署基于SOAP(Simple Object Access Protocol)的Web服务。本文将深入...

    基于Axis2的WS构建客户端示例

    如果有错误,根据 Axis2 提供的错误信息进行调试。 7. **源码和工具**:标签提到的"源码"和"工具"意味着你将接触到实际的Java代码以及用于构建和运行客户端的工具。在压缩包"Axis2客户端测试"中,可能包含了一个...

    axis学习资料集合

    - **SOAP消息结构**:包括Header和Body部分,Header用于传递控制信息,Body包含业务数据。 5. **开发Web服务的挑战与解决方案** - **安全性**:可以通过HTTPS、WS-Security等机制增强Web服务的安全性。 - **性能...

    axis1.7.7最少jar

    标题中的"axis1.7.7最少jar"指的是Apache Axis1版本1.7.7的基础JAR文件集合,这是用于构建和部署Web服务的一个开源工具。Axis1是Apache软件基金会开发的第一个Web服务框架,它允许开发者将Java方法暴露为Web服务,并...

    webservice axis1.4服务实例

    SOAP是Web服务的主要通信协议,它定义了一种XML格式,用于在分布式环境中交换结构化和类型化的信息。SOAP消息通常包含三个主要部分:Header、Body和Fault。Header用于传递元数据,Body包含业务逻辑,而Fault用于报告...

    Axis1.4如何实现头部鉴权

    接着,从Header中获取鉴权令牌和其他必要的鉴权信息,并进行进一步的检查。最后,通过`validate`方法实现具体的鉴权逻辑,判断请求是否合法。 ### 总结 通过以上分析,我们可以看出,在Axis1.4中实现头部鉴权主要...

    Axis WebService 技术指南,开发文档

    Axis 允许操作 SOAP 消息头(Header)信息,实现身份认证、消息跟踪等高级功能。 ### 13. .Net 调用 Axis 问题 在 .Net 平台上调用 Axis 服务可能会遇到兼容性问题,需要关注数据类型转换、命名空间映射以及 SOAP ...

    在axis1.4中传递复杂类型数组参数(ArrayMapping)

    在 Axis1.4 中传递复杂类型数组参数,涉及到的是 Web 服务中的数据绑定和消息处理。Axis 是一个开源的 SOAP 库,它允许开发者创建、部署和使用 Web 服务。在处理复杂类型数组时,ArrayMapping 是 Axis 中的一个关键...

    深入理解axis2-web service产生

    ### 深入理解Axis2与Web Service #### Web Service概览 随着互联网技术的不断发展,Web Service作为一种标准的应用间通信方式,逐渐被广大开发者所接受。它是一种以标准方式暴露应用程序功能的服务,使得不同平台...

    axis1-WebService

    Axis允许在SOAP消息中添加Header信息,这对于传递身份验证、会话管理等额外信息非常有用。开发者可以通过定义Header Handler来处理这些信息。 **十二、.Net调用Axis的问题** 当.NET客户端尝试调用Axis发布的Web...

    Axis2版本的头鉴权应用

    头鉴权(Header Authentication)是一种常见的身份验证方法,它通过HTTP请求头来传递认证信息。在Axis2中,我们可以利用WS-Security(Web Services Security)规范来实现这一功能。WS-Security是 Oasis 标准,用于...

    基于Axis2的Web Service 快速开发.ppt

    【基于Axis2的Web Service快速开发】 Web Service是一种在互联网上进行交互的软件技术,它允许不同的系统和服务之间通过标准的协议进行数据交换。Web Service的核心特性包括自包含性、自描述性、开放性、标准性和...

    Axis2.X教程

    通过特定机制,如使用 Cookie 或 SOAP Header,可以在多个 WebService 间共享 Session 信息。 #### 3.4 使用 Spring JavaBean 发布服务 Axis2 可以与 Spring 框架集成,利用 Spring 的 JavaBean 实现 WebService。...

    axis开发webservices

    描述:"这是关于axis开发webservices的完整资料" ### Axis与Web Services:构建SOAP Web服务 Axis是Apache软件基金会提供的一款开源工具,用于在Java环境中实现Web服务,支持SOAP协议,使得应用程序能够通过网络...

    axis1.4网上例子

    标题中的“axis1.4网上例子”表明这是一个关于Axis1.4版本的Web服务示例。Axis是Apache软件基金会开发的一个开源项目,主要用于创建和使用Web服务。它是一个SOAP(简单对象访问协议)栈,允许开发者在Java平台上构建...

    在自己的项目中利用axis2+spring发布webservice与客户端调用包括session

    标题中的“在自己的项目中利用axis2+spring发布webservice与客户端调用包括session”指出的是一个关于在实际项目开发中如何使用Axis2和Spring框架来发布Web服务,并且涉及了Web服务客户端调用以及会话(session)...

    axis开发webservices.doc

    ### Axis开发Web Services知识点 #### 一、Axis2简介及获取方法 Axis2是一个用于Java平台的高性能开源Web服务框架,支持多种协议如SOAP、HTTP等。它提供了强大的功能,如安全性和事务处理,同时也非常注重性能和可...

Global site tag (gtag.js) - Google Analytics