java调用webservice接口
2013-08-15 14:28
357 查看
首先是所需要的jar包:
dom4j.jar;
axis.jar;
axis-ant.jar;
commons-discovery-0.2.jar;
commons-logging-1.0.4.jar;
dom4j-1.5.2.jar;
jaxrpc.jar;
saaj.jar;
wsdl4j.jar;
记录两种常用方式:
方法一:AXIS调用远程的web service
url后加上wsdl
以下为例子
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";
//直接引用远程的wsdl文件
//以下都是套路
Service service = new Service();
Call call = (Call) service.createCall();
call.setTargetEndpointAddress(endpoint);
call.setOperationName("addUser");//WSDL里面描述的接口名称
call.addParameter("userName", org.apache.axis.encoding.XMLType.XSD_DATE,
javax.xml.rpc.ParameterMode.IN);//接口的参数
call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING);//设置返回类型
String temp = "测试人员";
String result = (String)call.invoke(new Object[]{temp});
//给方法传递参数,并且调用方法
System.out.println("result is "+result);
}
catch (Exception e) {
System.err.println(e.toString());
}
}
}
方法二:
使用wsdl2java把WSDL文件转成本地类,然后像本地类一样使用,即可。仍然以前面的global weather report为例。
首先 java org.apache.axis.wsdl.WSDL2Java http://www.webservicex.net/globalweather.asmx.WSDL
原本的网址是http://www.webservicex.net/globalweather.asmx?WSDL,中间个各问号,但是Linux下面它不能解析,所以去掉问号,改为点号。
GlobalWeather.java GlobalWeatherLocator.java GlobalWeatherSoap.java GlobalWeatherSoapStub.java
其中GlobalWeatherSoap.java是我们最为关心的接口文件,如果你对RMI等SOAP实现的具体细节不感兴趣,那么你只需要看接口文件即可,在使用的时候,引入这个接口即可,就好像使用本地类一样。
public class OneCardWebServiceManagerImpl implements OneCardWebManager {
GlobalWeatherLocator locator = new GlobalWeatherLocator();
private String USERNAME = "username";
private String PASSWORD = "password";
@SuppressWarnings("unchecked")
public Map getOneCardSoution(String sno) {
Map map = new HashMap();
GlobalWeatherSoap service;
try {
service = locator.getTrjnSearchService();
((GlobalWeatherSoapStub) service).setUsername(USERNAME);
((GlobalWeatherSoapStub) service).setPassword(PASSWORD);
service.方法名(参数);
}catch (ServiceException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (RemoteException e) {
e.printStackTrace();
} catch (NullPointerException e) {
4000
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
ps:参考http://yang-min.iteye.com/blog/600172
dom4j.jar;
axis.jar;
axis-ant.jar;
commons-discovery-0.2.jar;
commons-logging-1.0.4.jar;
dom4j-1.5.2.jar;
jaxrpc.jar;
saaj.jar;
wsdl4j.jar;
记录两种常用方式:
方法一:AXIS调用远程的web service
url后加上wsdl
以下为例子
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";
//直接引用远程的wsdl文件
//以下都是套路
Service service = new Service();
Call call = (Call) service.createCall();
call.setTargetEndpointAddress(endpoint);
call.setOperationName("addUser");//WSDL里面描述的接口名称
call.addParameter("userName", org.apache.axis.encoding.XMLType.XSD_DATE,
javax.xml.rpc.ParameterMode.IN);//接口的参数
call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING);//设置返回类型
String temp = "测试人员";
String result = (String)call.invoke(new Object[]{temp});
//给方法传递参数,并且调用方法
System.out.println("result is "+result);
}
catch (Exception e) {
System.err.println(e.toString());
}
}
}
方法二:
使用wsdl2java把WSDL文件转成本地类,然后像本地类一样使用,即可。仍然以前面的global weather report为例。
首先 java org.apache.axis.wsdl.WSDL2Java http://www.webservicex.net/globalweather.asmx.WSDL
原本的网址是http://www.webservicex.net/globalweather.asmx?WSDL,中间个各问号,但是Linux下面它不能解析,所以去掉问号,改为点号。
GlobalWeather.java GlobalWeatherLocator.java GlobalWeatherSoap.java GlobalWeatherSoapStub.java
其中GlobalWeatherSoap.java是我们最为关心的接口文件,如果你对RMI等SOAP实现的具体细节不感兴趣,那么你只需要看接口文件即可,在使用的时候,引入这个接口即可,就好像使用本地类一样。
public class OneCardWebServiceManagerImpl implements OneCardWebManager {
GlobalWeatherLocator locator = new GlobalWeatherLocator();
private String USERNAME = "username";
private String PASSWORD = "password";
@SuppressWarnings("unchecked")
public Map getOneCardSoution(String sno) {
Map map = new HashMap();
GlobalWeatherSoap service;
try {
service = locator.getTrjnSearchService();
((GlobalWeatherSoapStub) service).setUsername(USERNAME);
((GlobalWeatherSoapStub) service).setPassword(PASSWORD);
service.方法名(参数);
}catch (ServiceException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (RemoteException e) {
e.printStackTrace();
} catch (NullPointerException e) {
4000
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
ps:参考http://yang-min.iteye.com/blog/600172
相关文章推荐
- java调用webservice接口方法
- Java调用C#带soapheader的webservice接口
- java调用CXF WebService接口的两种方式
- Java调用WebService接口实现发送手机短信验证码功能
- Java调用webservice接口方法
- Java调用WebService接口实现发送手机短信验证码功能,java 手机验证码,WebService接口调用
- Java调用C#WebService接口方式
- java接口调用——webservice就是一个RPC而已
- Java调用WebService接口实现发送手机短信验证码功能,java 手机验证码,WebService接口调用
- java调用webservice接口方法
- Java调用WebService接口实现发送手机短信验证码功能
- java调用WebService接口方法
- java调用webservice接口 几种方法
- Java调用webservice接口方法
- Java调用webService接口方法总结
- java调用webservice接口 几种方法
- Java调用WEBSERVICE接口实现天气预报和获得国内手机号码归属地省份、地区和手机卡类型信息
- java调用外部webservice接口的方法
- 关于Webservice接口的Java客户端调用
- java调用WebService接口