这几天遇到一个需求,要调用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进行授权服务 客户端根据是否生产stub客户端代码采用两种形式实现。
Axis WebService 技术指南,开发文档,很全面、详细。 Axis的简单入门实例 Axis的jws发布WebService Axis的wsdd模式发布WebService Axis中传递复杂对象和内部类 ...Axis的Header信息操作 .Net调用Axis出现的问题
Java Webservice Axis2 Client(含soapheader验证)
NULL 博文链接:https://zhangzhenting.iteye.com/blog/625429
CLient是AXIS Bank的一个分支机构,希望更改 (票务软件)的UI以反映AXIS Bank的主题。 内容 部署和使用 复制粘贴并覆盖所有文件。 在OTRS管理员SysConfig面板中更改使用的皮肤。 现在,每个用户都可以通过单击...
LSM6DSL Accelero + Gyro MEMS (6 Axis) LT1963EST-3.3 LT1963EST-3.3 LDO Low Noise 1.5A fast Transient Response M24SR64-Y M24SR64-Y 64K_EEPROM NFC/RFID MP34DT01 MEMS audio microphone MX25R6435F MX25R6435...
LSM6DSL Accelero + Gyro MEMS (6 Axis) LT1963EST-3.3 LT1963EST-3.3 LDO Low Noise 1.5A fast Transient Response M24SR64-Y M24SR64-Y 64K_EEPROM NFC/RFID MP34DT01 MEMS audio microphone MX25R6435F MX25R6435...
axis2生成java客户端代码用到解决异常Exception in thread "main" org.apache.axis2.AxisFault: Must Understand check failed for header http://www.w3.org/2005/08/addressing : Action
c# JSON返回格式的WEB SERVICE//www.jb51.net/article/16768.htm我这里是利用axis创建类包的,首先下载axis的压缩包,然后解压,把axis放到webapp下面。如果可以运行,就OK了。 c#创建的webservice自带的wsdl的,...
导入数据,然后利用jieba对数组进行分词,将分词结果与生成的相同维度的标签表数组进行合并,合并的方式有很多种:这里我用的是np.append(a,b,axis=0) 的方式。数据准备好了之后就是对数据进行切分,随机生成...
df = pd.read_csv(path, header=0) Iris1=df.values[0:50,0:4] Iris2=df.values[50:100,0:4] Iris3=df.values[100:150,0:4] m1=np.mean(Iris1,axis=0) m2=np.mean(Iris2,axis=0) m3=np.mean(Iris3,axis=
数据整理例如:整理、去空、去重、合并、选取、数据准备: 重要准备:index,header,columns header-1 header-2 header-3 header-4 …… index-0 index-1 index-2 index-3 index-4 index-5 index-6 index-7 …… ...
[-a AXIS_NAMES [AXIS_NAMES ...]] [-n NAMES [NAMES ...]] [-H HEADER] [-S] [-V] [-w WRAP] [-m MINIMA [MINIMA ...]] [-M MAXIMA [MAXIMA ...]] [-W LINEWIDTH [LINEWIDTH ...]] [-k MARKER
data = pd.read_table('breast-cancer-wisconsin.data.txt',header=None,encoding='gb2312',sep=',') data = data.drop(0, axis=1) data = data[data[6] != '?'] 以上这篇pandas实现将dataframe满足某一条件的值选出...
Header Files The #define Guard Header File Dependencies Inline Functions The -inl.h Files Function Parameter Ordering Names and Order of Includes Scoping Namespaces Nested Classes Nonmember, Static ...
Raspi GPIO header connector Hotbed connection emergency switch Case-door safety switch Front door safety switch YZ Endstops 24 v Power supply interior light output Second Extruder temp Head connector ...
You’ll build projects such as your own motion-sensing game controller with a three-axis accelerometer, create a universal remote with an Arduino and a few cheap parts, build your own burglar alarm ...
读取时间序列 datelist = pd.read_csv('data.csv', header=None)[1] # 对时间序列进⾏格式化操作 x = [] for i in datelist: i = datetime.strptime(i, '%d-%m-%Y') x.append(datetime.strftime(i, '%Y-%m-%d')) # ...
place this in your header <link rel "stylesheet" href "default css" type "text css"> the links <a href "#" class "Styleswitcher" rel &...
ct. 18, 1995 v. 1.00 =========================================================================== + First release of CurveExpert 1.0. Oct. 26, 1995, v....==============================================...