转自: http://hardcode.iteye.com/blog/385982
调用webservice,可以首先根据wsdl文件生成客户端,或者直接根据地址调用,下面讨论直接调用地址的两种不同方式:axis和Soap,soap方式主要是用在websphere下
axis方式调用:
-
import
java.util.Date;
-
-
import
java.text.DateFormat;
-
-
import
org.apache.axis.client.Call;
-
-
import
org.apache.axis.client.Service;
-
-
import
javax.xml.namespace.QName;
-
-
import
java.lang.Integer;
-
-
import
javax.xml.rpc.ParameterMode;
-
-
-
public
class
caClient {
-
-
-
-
public
static
void
main(String[] args) {
-
-
-
try
{
-
-
String endpoint = "http://localhost:8080/ca3/services/caSynrochnized?wsdl"
;
-
-
Service service = new
Service();
-
-
Call call = (Call) service.createCall();
-
-
call.setTargetEndpointAddress(endpoint);
-
-
call.setOperationName("addUser"
);
-
-
call.addParameter("userName"
, org.apache.axis.encoding.XMLType.XSD_DATE,
-
-
javax.xml.rpc.ParameterMode.IN);
-
-
call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING);
-
-
call.setUseSOAPAction(true
);
-
-
call.setSOAPActionURI("http://www.my.com/Rpc"
);
-
-
-
-
-
-
String temp = "测试人员"
;
-
-
String result = (String)call.invoke(new
Object[]{temp});
-
-
System.out.println("result is "
+result);
-
-
}
-
-
catch
(Exception e) {
-
-
System.err.println(e.toString());
-
-
}
-
-
}
-
-
}
soap方式调用
调用java生成的webservice
-
import
org.apache.soap.util.xml.*;
-
-
import
org.apache.soap.*;
-
-
import
org.apache.soap.rpc.*;
-
-
-
import
java.io.*;
-
-
import
java.net.*;
-
-
import
java.util.Vector;
-
-
-
public
class
caService{
-
-
public
static
String getService(String user) {
-
-
URL url = null
;
-
-
try
{
-
-
url=new
URL(
"http://192.168.0.100:8080/ca3/services/caSynrochnized"
);
-
-
} catch
(MalformedURLException mue) {
-
-
return
mue.getMessage();
-
-
}
-
-
-
-
Call soapCall = new
Call();
-
-
-
-
soapCall.setEncodingStyleURI(Constants.NS_URI_SOAP_ENC);
-
-
-
-
soapCall.setTargetObjectURI("urn:xmethods-caSynrochnized"
);
-
-
-
-
soapCall.setMethodName("getUser"
);
-
-
-
-
Vector soapParams = new
Vector();
-
-
-
-
-
Parameter isbnParam = new
Parameter(
"userName"
, String.
class
, user,
null
);
-
-
soapParams.addElement(isbnParam);
-
-
soapCall.setParams(soapParams);
-
-
try
{
-
-
-
-
Response soapResponse = soapCall.invoke(url,""
);
-
-
-
-
if
(soapResponse.generatedFault()) {
-
-
Fault fault = soapResponse.getFault();
-
-
String f = fault.getFaultString();
-
-
return
f;
-
-
} else
{
-
-
-
-
Parameter soapResult = soapResponse.getReturnValue ();
-
-
-
-
return
soapResult.getValue().toString();
-
-
}
-
-
} catch
(SOAPException se) {
-
-
return
se.getMessage();
-
-
}
-
-
}
-
-
}
返回一维数组时
-
Parameter soapResult = soapResponse.getReturnValue();
-
-
String[] temp = (String[])soapResult.getValue();
调用ASP.Net生成的webservice
-
private
String HelloWorld(String uri, String u) {
-
-
try
{
-
-
SOAPMappingRegistry smr = new
SOAPMappingRegistry();
-
-
StringDeserializer sd = new
StringDeserializer();
-
-
ArraySerializer arraySer = new
ArraySerializer();
-
-
BeanSerializer beanSer = new
BeanSerializer();
-
-
smr.mapTypes(Constants.NS_URI_SOAP_ENC, new
QName(
-
-
"http://tempuri.org/"
,
"HelloWorldResult"
), String.
class
,
-
-
null
, sd);
-
-
smr.mapTypes(Constants.NS_URI_SOAP_ENC, new
QName(
-
-
"http://tempuri.org/"
,
"temp"
), String.
class
,
-
-
beanSer, beanSer);
-
-
-
URL url = new
URL(uri);
-
-
Call call = new
Call();
-
-
call.setSOAPMappingRegistry(smr);
-
-
call.setTargetObjectURI("urn:xmethods-Service1"
);
-
-
call.setMethodName("HelloWorld"
);
-
-
call.setEncodingStyleURI(Constants.NS_URI_SOAP_ENC);
-
-
-
Vector soapParams = new
Vector();
-
-
soapParams.addElement(new
Parameter(
"temp"
, String.
class
, u,
null
));
-
-
call.setParams(soapParams);
-
-
-
Response soapResponse = call.invoke(url,"http://tempuri.org/HelloWorld"
);
-
-
-
if
(soapResponse.generatedFault()) {
-
-
Fault fault = soapResponse.getFault();
-
-
System.out.println(fault);
-
-
} else
{
-
-
Parameter soapResult = soapResponse.getReturnValue();
-
-
Object obj = soapResult.getValue();
-
-
System.out.println("==="
+ obj);
-
-
}
-
-
} catch
(Exception e) {
-
-
e.printStackTrace();
-
-
}
-
-
return
null
;
-
}
-
-
-
-
-
-
-
-
-
public
static
void
addTest() {
-
try
{
-
Integer i = 1
;
-
Integer j = 2
;
-
-
-
String service_url = "http://localhost:4079/ws/Service.asmx"
;
-
-
Service service = new
Service();
-
Call call = (Call) service.createCall();
-
call.setTargetEndpointAddress(new
java.net.URL(service_url));
-
-
-
call.setOperationName(new
QName(
"http://www.tangs.com/T"
,
"Add"
));
-
-
-
call.addParameter("a"
, org.apache.axis.encoding.XMLType.XSD_INT, javax.xml.rpc.ParameterMode.IN);
-
call.addParameter("b"
, org.apache.axis.encoding.XMLType.XSD_INT, javax.xml.rpc.ParameterMode.IN);
-
-
-
call.setReturnType(org.apache.axis.encoding.XMLType.XSD_INT);
-
-
call.setUseSOAPAction(true
);
-
call.setSOAPActionURI("http://www.tangs.com/Add"
);
-
-
-
Integer res = (Integer) call.invoke(new
Object[] { i, j });
-
-
System.out.println("Result: "
+ res.toString());
-
-
} catch
(Exception e) {
-
System.err.println(e);
-
}
-
}
-
-
-
-
-
-
-
-
-
-
public
static
void
helloTest() {
-
try
{
-
-
String endpoint = "http://localhost:4079/ws/Service.asmx"
;
-
Service service = new
Service();
-
Call call = (Call) service.createCall();
-
call.setTargetEndpointAddress(new
java.net.URL(endpoint));
-
call.setOperationName(new
QName(
"http://www.tangs.com/T"
,
"HelloWorld"
));
-
-
call.setUseSOAPAction(true
);
-
call.setSOAPActionURI("http://www.tangs.com/Hello"
);
-
-
String res = (String) call.invoke(new
Object[] {
null
});
-
-
System.out.println("Result: "
+ res);
-
} catch
(Exception e) {
-
System.err.println(e.toString());
-
}
-
}
分享到:
相关推荐
webservice,soap调用, webservice,soap,积分接口调用,qq webservice调用
webService—Axis实例webService—Axis实例webService—Axis实例webService—Axis实例webService—Axis实例webService—Axis实例webService—Axis实例
本案例实现使用Axis2生成.arr包发布WebService服务,并使用Axis2生成客户端代码方式调用WebService
webservice 调用实例 解析xml文档。soap协议
Myeclipse axis插件安装和webservice使用
java项目简单模拟soap型的webservice远程调用服务,内附使用说明文档方便学习和查阅,让你轻松学会soap-webservice的使用方法!
JAVA 调用SAP SOAP webservice需要注意的一些坑,请务必按步骤一步步来。
金蝶调用第三方webservice接口以soap方式实现,包括创建服务service、DIspatch、SOAPMessage、QName、封装数据、Dispatch传递消息、消息转换为doc对象、调用结果判断等
借鉴网上的资源,弄了一个SpringBoot开发WebService之Axis示例。
java axis客户端调用webservice,可应用于ofbiz框架。 解决网络上共享代码两次调用后会出现timeout的BUG
Java+Webservice调用方式详解Java+Webservice调用方式详解
Axis WebService。Axis WebService。Axis WebService。Axis WebService。
C#开发核心代码,用拼接XML方式,调用封装了实体类的SOAP接口
本方法是用axis1.4技术,实现java客户端调用webservice。已经可实现过可行的,如果不行可加我QQ号302633进行详细解析。
axis和Soap方式调用Webservice服务完整代码。java的。
axis发布webservice教程axis发布webservice教程axis发布webservice教程axis发布webservice教程
JAVA调用webservice(axis方式).doc
java 调用https发布的webservice接口实例及axis包及详细说明
Webservice调用工具 Soap调用工具
用两个工程模拟实现远程调用对方用webservice提供的接口,并有传送复杂对象数据的例子。