客户端调用webService
来源:互联网 发布:seo顾问服务 博客 编辑:程序博客网 时间:2024/05/16 04:48
客户端调用webService
1. 客户端编写
客户端有XFire、axis两种方式来访问Web Service 提供的服务。
前提条件:服务启动,且服务能运行(生成WSDL)。
注意:为了测试方便,现将测试类放入到同一个工程中,当然下面两种方式都可将部署到另一个新建工程中。
1.1 第一种:Xfire实现调用
1.1.1方式一:代理工厂
package com.smt.service.test;
import java.net.MalformedURLException;
import org.codehaus.xfire.XFire;
import org.codehaus.xfire.XFireFactory;
import org.codehaus.xfire.client.XFireProxyFactory;
import org.codehaus.xfire.service.Service;
import org.codehaus.xfire.service.binding.ObjectServiceFactory;
import com.smt.service.IBankingService;
/**********************************************************
*
* 功能描述: </br></br>
*
* 作者:chenab </br></br>
*
* 创建时间:2011-7-14 下午05:24:47</br></br>
*
* 版本号:V1.0 </br></br>
**********************************************************/
public class clientXFire {
private static final String urls="http://192.168.7.177:8088/testXFire/services/BankingService";
private void testService(){
try {
Service serviceModel = new ObjectServiceFactory().create(IBankingService.class);
serviceModel = new ObjectServiceFactory().create(IBankingService.class);
XFire xFire = XFireFactory.newInstance().getXFire();
XFireProxyFactory factory = new XFireProxyFactory(xFire);
IBankingService service = (IBankingService)factory.create(serviceModel,urls);
service.transferFunds("你好");
} catch (MalformedURLException e) {
System.out.println("错误!");
e.printStackTrace();
}
}
public static void main(String[] args) throws MalformedURLException {
clientXFire c = new clientXFire();
c.testService();
}
}
1.1.2方式二:代理工厂
package com.smt;
import java.net.MalformedURLException;
import java.net.URL;
import org.codehaus.xfire.client.Client;
import org.w3c.dom.Document;
/**********************************************************
*
* 功能描述: </br></br>
*
* 作者:chenab </br></br>
*
* 创建时间:2011-7-16 下午05:14:25</br></br>
*
* 版本号:V1.0 </br></br>
**********************************************************/
public class XFireClient {
private static final String urls=" http://192.168.0.3:3001/smart_webservice/services/SmtDocService?wsdl ";
public static void main(String[] args) throws MalformedURLException, Exception {
Client client = new Client(new URL(urls));
Object[] xml = client.invoke("findSrcDoc",new Object[]{1L});
Document doc = (Document)xml[0];
System.out.println(doc.getDocumentElement().getTextContent());
}
}
1.2 第二种:axis实现调用
由于服务端是用Xfire写的,现用axis调用,要在服务端做一些些修改。
1.2.1 第一步:加入axis所需包文件
加入Axis所需要的包文件,加入后的整个目录结构如下图所示:
1.2.2 第二步:修改Web.xml 配置文件
在web.xml中加入基本Servlet 的AxisServlet, 如下所示:
1.2.3 第三步:加入server-config.wsdd文件并修改
1.2.4 第四步:编写客户端测试代码
package com.smt.service.test;
import java.net.MalformedURLException;
import java.rmi.RemoteException;
import javax.xml.rpc.ServiceException;
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
/**********************************************************
*
* 功能描述: </br></br>
*
* 作者:chenab </br></br>
*
* 创建时间:2011-7-14 下午05:48:31</br></br>
*
* 版本号:V1.0 </br></br>
**********************************************************/
public class clientAxis {
private static final String urls="http://192.168.7.177:8088/testXFire/services/BankingService";
public static void main(String[] args) {
try {
/*
* Banking是webservice在services.xml注册的名字
*/
Service service = new Service();
Call call = (Call) service.createCall();
call.setTargetEndpointAddress(new java.net.URL(urls));
// 由于需要认证,故需要设置调用的用户名和密码。
// call.getMessageContext().setUsername("sophia");
// call.getMessageContext().setPassword("sophia");
/*
* 调用service的方法名
*/
call.setOperationName("transferFunds");
/*
* invoke方法的参数是Object数组,该数组元素个数与方法参数一致
*/
String translateText = (String) call.invoke(new Object[] { "hello" });
System.out.println(translateText);
} catch (ServiceException e) {
e.printStackTrace();
System.out.println("Service 获取Call对象失败!");
} catch (MalformedURLException e) {
e.printStackTrace();
System.out.println("new java.net.URL(url)错误!");
} catch (RemoteException e) {
e.printStackTrace();
System.out.println("远程错误!");
}
}
}
- 客户端调用webservice
- 客户端调用(webservice)
- axis 调用webservice (客户端)
- 客户端xmlhttp调用webservice
- webservice 异步调用客户端
- Webservice客户端调用Bug
- HttpClient-调用webservice客户端
- RPCServiceClient-调用webservice客户端
- webservice客户端调用方式
- java客户端调用webservice
- WebService调用客户端代码
- java调用WebService(客户端)
- java调用WebService(客户端)
- webservice 客户端调用
- webService 客户端调用 axis2
- 客户端调用webService
- java客户端调用webservice
- WebService客户端调用
- matlab标定和三维重建的几个问题(已解决)
- redis 事件
- dede:channelartlist 判断
- Maven3创建web项目
- Linux Shell常用技巧(目录)
- 客户端调用webService
- Servlet Filter Servlet Listener
- mongodb 数据库 第一章 安装
- OBJ文件格式分析工具: objdump, nm,ar
- Java编程如何避免内存溢出?
- 【BZOJ】【P2821】【作诗(Poetize)】【题解】【分块】
- [Unity3D]Unity+Android交互教程——让手机"动"起来
- 解决VS 2012 升级sp1 导致 “Visual Studio 遇到了异常。
- C++学习笔记(4)