主题 : Java通过axis调用.NET WebService

UID: 9964
级别: 恶魔城城主
精华: 0
发帖: 118453
灵魂: 0 颗
水晶: 483 颗
贡献石: 17166 颗
警告石: 2 颗
好评石: 190221 颗
信誉石: 2 颗
技术分: 29462 分
活跃分: 318 分
社团: 『寂寞ˇ 党』
银行水晶总资产: 1 颗
在线时间: 20831(小时)
注册时间: 2010-05-02
最后登录: 2017-02-01
楼主  发表于: 2015-06-06 12:21

Java通过axis调用.NET WebService

分享到:
前面已经记录过通过axis调用webservice《http://www.linuxhttp://idc.myhack58.com/.com/Linux/2015-06/118460.htm》,昨天在对接.NET接口时,发现在传递参数时和一般的传参方法是不一样的,在接口方哥们的帮助下解决了。哈哈。

import java.net.URL;
import javax.xml.namespace.QName;
import javax.xml.rpc.ParameterMode;
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import org.apache.axis.encoding.XMLType;
import org.apache.axis.message.SOAPHeaderElement;
public class MapWebServices {
public static void main(String[] args) {
  String soapaction = "http://xxxx.xxxx.xxx/xsd";
  String endpoint = "http://xx.xxx.xx.xxx:8080/XxxXxx/services/xxxs";
  Service service = new Service();
  try {
  Call call = (Call) service.createCall();
  call.setTimeout(new Integer(60000));
  call.set黑吧EndpointAddress(new URL(endpoint));
  call.setOperationName(new QName(soapaction, "getXxxx"));
  SOAPHeaderElement headerElement = new SOAPHeaderElement(soapaction, "AuthHeaderCS");
  headerElement.setNamespaceURI(soapaction);
  headerElement.addChildElement("username").setValue("xxxx");
  headerElement.addChildElement("application").setValue("Xxxx");
  headerElement.addChildElement("department").setValue("TestDept");
  call.addHeader(headerElement);
  call.setReturnType(XMLType.XSD_STRING);
  call.addParameter("o", XMLType.XSD_STRING, ParameterMode.IN);
  String ret = (String) call.invoke(new Object[] { null });
  System.out.println(ret);  
  } catch (Exception e) {
  e.printStackTrace();
  }
}
}

在传值时需要注意的是不是以前的

call.addParameter("o", XMLType.XSD_STRING, ParameterMode.IN);

需要将参数存到SOAPHeaderElement中,然后再call.addHeader,就可以了。

SOAPHeaderElement headerElement = new SOAPHeaderElement(soapaction, "AuthHeaderCS");
  headerElement.setNamespaceURI(soapaction);
  headerElement.addChildElement("username").setValue("xxxx");
  headerElement.addChildElement("application").setValue("Xxxx");
  headerElement.addChildElement("department").setValue("TestDept");
  call.addHeader(headerElement);


来自:   顶端
UID: 534463
级别: 禁止发言
精华: 0
发帖: 1933
灵魂: 0 颗
水晶: 0 颗
贡献石: 0 颗
警告石: 0 颗
好评石: -2 颗
信誉石: 0 颗
技术分: 290 分
活跃分: 0 分
银行水晶总资产: 0 颗
在线时间: 338(小时)
注册时间: 2017-02-19
最后登录: 2018-04-09
1楼  发表于: 2017-06-06 19:04

用户被禁言,该主题自动屏蔽!
来自:   顶端
UID: 534463
级别: 禁止发言
精华: 0
发帖: 1933
灵魂: 0 颗
水晶: 0 颗
贡献石: 0 颗
警告石: 0 颗
好评石: -2 颗
信誉石: 0 颗
技术分: 290 分
活跃分: 0 分
银行水晶总资产: 0 颗
在线时间: 338(小时)
注册时间: 2017-02-19
最后登录: 2018-04-09
2楼  发表于: 2017-08-27 19:18

用户被禁言,该主题自动屏蔽!
来自:   顶端
UID: 535595
级别: 论坛游民
精华: 0
发帖: 30
灵魂: 0 颗
水晶: 0 颗
贡献石: 0 颗
警告石: 0 颗
好评石: 1 颗
信誉石: 0 颗
技术分: 1 分
活跃分: 0 分
银行水晶总资产: 0 颗
在线时间: 48(小时)
注册时间: 2017-08-24
最后登录: 2017-10-16
3楼  发表于: 2017-08-31 09:22

顶一个 !!!!!!!
来自:   顶端
UID: 534463
级别: 禁止发言
精华: 0
发帖: 1933
灵魂: 0 颗
水晶: 0 颗
贡献石: 0 颗
警告石: 0 颗
好评石: -2 颗
信誉石: 0 颗
技术分: 290 分
活跃分: 0 分
银行水晶总资产: 0 颗
在线时间: 338(小时)
注册时间: 2017-02-19
最后登录: 2018-04-09
4楼  发表于: 2017-12-29 17:07

用户被禁言,该主题自动屏蔽!
来自:   顶端
QQ综合区实习版主
UID: 4179
级别: 青干剑→版主
精华: 0
发帖: 84047
灵魂: 6 颗
水晶: 0 颗
贡献石: 2887 颗
警告石: 0 颗
好评石: 40155 颗
信誉石: 25 颗
技术分: 2870 分
活跃分: 354 分
银行水晶总资产: 1048 颗
在线时间: 3507(小时)
注册时间: 2009-10-03
最后登录: 2018-08-19
5楼  发表于: 2018-01-09 16:00

看来我得认真学
来自:   顶端
UID: 536438
级别: 论坛游民
精华: 0
发帖: 3
灵魂: 0 颗
水晶: 0 颗
贡献石: 0 颗
警告石: 0 颗
好评石: 0 颗
信誉石: 0 颗
技术分: 0 分
活跃分: 0 分
银行水晶总资产: 0 颗
在线时间: 1(小时)
注册时间: 2018-03-02
最后登录: 2018-03-04
6楼  发表于: 2018-03-02 13:35

新人请多关照
来自:   顶端