WebService客户端编写及调用
2010-10-21 14:06
393 查看
WebService客户端主要用来调用WebService服务端提供的接口
WebService客户端编写如下:
一.用MyEclipse提供的WebService客户端生成工具生成(根据WebService服务的WSDL文件生成)
首先新建Web工程,再在工程中新建Web Service Client
注:此处需要添加WebServiceClient插件才能添加完成(需要WSDL文件)
二.用XFire生成工具生成
1.生成结构如下
smsServieClient.java客户端测试连接WebService是否成功
2.将src下的包全部拷贝到需要调用WebService服务端的工程(TestWeb)或者打包(*.jar)(如WebServiceClient.jar)
3.TestWeb调用客户端
TestWeb调用客户端,而客户端调用服务端,TestWeb需要增加2个类(客户端代理类,代理工厂)和WebService客户端生成的类WebServiceClient.jar
SMSProxyService.java(客户端代理池,通过调用该代理,调用客户端中的方法)
SMSProxyServicePoolFactory.java
applicationContext.xml文件配置
config.properties
调用方法RegisterUserAction.java(TestWeb逻辑处理)
WebService客户端编写如下:
一.用MyEclipse提供的WebService客户端生成工具生成(根据WebService服务的WSDL文件生成)
首先新建Web工程,再在工程中新建Web Service Client
注:此处需要添加WebServiceClient插件才能添加完成(需要WSDL文件)
二.用XFire生成工具生成
1.生成结构如下
smsServieClient.java客户端测试连接WebService是否成功
public static void main(String[] args) { smsServiePortType sms = new smsServieClient().getsmsServieHttpPort(); // sms=new // smsServieClient().getsmsServieHttpPort("http://192.168.0.30:8088/SMSProxy/services/smsServie?wsdl"); sms.sendMsg("sf", null, "13500000000"); }
2.将src下的包全部拷贝到需要调用WebService服务端的工程(TestWeb)或者打包(*.jar)(如WebServiceClient.jar)
3.TestWeb调用客户端
TestWeb调用客户端,而客户端调用服务端,TestWeb需要增加2个类(客户端代理类,代理工厂)和WebService客户端生成的类WebServiceClient.jar
SMSProxyService.java(客户端代理池,通过调用该代理,调用客户端中的方法)
package com.ipi.wap.portal.proxy; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.commons.pool.impl.GenericObjectPool; import com.sms.service.smsServieClient; import com.sms.service.smsServiePortType; public class SMSProxyService { private Log logger = LogFactory.getLog(SMSProxyService.class); private String serviceURL; private GenericObjectPool pool;// HttpClient对象池 /** * 将对象归还给对象池 * */ public void returnObjToPool(smsServieClient client) { try { if (client != null) pool.returnObject(client); } catch (Exception e) { logger.info("将短信接口模块客户端还回池时发生错误!"); e.printStackTrace(); } } public String sendMsg(String smsContent, String tmp, String destArrList) { logger.info("开始调用发送短信接口操作: "); String result = null; smsServieClient client = null; try { client = (smsServieClient) pool.borrowObject(); smsServiePortType service = client.getsmsServieHttpPort(serviceURL); result = service.sendMsg(smsContent, tmp, destArrList); service = null; } catch (Exception e) { logger.info("发送短信时发生异常,原因:" + e.getMessage()); e.printStackTrace(); } finally { returnObjToPool(client); } return result; } /** * @param pool the pool to set */ public void setPool(GenericObjectPool pool) { this.pool = pool; } /** * @param serviceURL the serviceURL to set */ public void setServiceURL(String serviceURL) { this.serviceURL = serviceURL; } }
SMSProxyServicePoolFactory.java
package com.ipi.wap.portal.proxy; import org.apache.commons.pool.PoolableObjectFactory; import com.sms.service.smsServieClient; /** * 短信发送接口模块客户端连接池工厂 * * @author lhj * */ public class SMSProxyServicePoolFactory implements PoolableObjectFactory { /* * (non-Javadoc) * * @see * org.apache.commons.pool.PoolableObjectFactory#activateObject(java.lang * .Object) */ public void activateObject(Object arg0) throws Exception { } /* * (non-Javadoc) * * @see * org.apache.commons.pool.PoolableObjectFactory#destroyObject(java.lang * .Object) */ public void destroyObject(Object arg0) throws Exception { } /* * (non-Javadoc) * * @see org.apache.commons.pool.PoolableObjectFactory#makeObject() */ public Object makeObject() throws Exception { smsServieClient client = new smsServieClient(); return client; } /* * (non-Javadoc) * * @see * org.apache.commons.pool.PoolableObjectFactory#passivateObject(java.lang * .Object) */ public void passivateObject(Object arg0) throws Exception { } /* * (non-Javadoc) * * @see * org.apache.commons.pool.PoolableObjectFactory#validateObject(java.lang * .Object) */ public boolean validateObject(Object arg0) { return false; } }
applicationContext.xml文件配置
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> <beans> <bean id="propertyConfigure" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="location"> <value>/WEB-INF/config.properties</value> </property> </bean> <!-- 接口模块代理类客户端 --> <bean id="smsProxyService" class="com.ipi.wap.portal.proxy.SMSProxyService"> <property name="serviceURL" value="${SMSProxyServiceURL}" /> <property name="pool" ref="smsProxyClientPool" /> </bean> <!-- 接口模块代理客户端连接池工厂 --> <bean id="smsProxyServicePoolFactory" class="com.ipi.wap.portal.proxy.SMSProxyServicePoolFactory" singleton="true" /> <bean id="smsProxyClientPool" class="org.apache.commons.pool.impl.GenericObjectPool" singleton="true"> <constructor-arg index="0" ref="smsProxyServicePoolFactory" /> <constructor-arg index="1" value="10" /> <constructor-arg index="2" value="1" /> <constructor-arg index="3" value="-1" /> <constructor-arg index="4" value="10" /> <constructor-arg index="5" value="false" /> <constructor-arg index="6" value="false" /> <constructor-arg index="7" value="-1" /> <constructor-arg index="8" value="600000" /> <constructor-arg index="9" value="-1" /> <constructor-arg index="10" value="true" /> </bean> </beans>
config.properties
WebService服务端地址 SMSProxyServiceURL=http://192.168.0.30:8088/SMSProxy/services/smsServie
调用方法RegisterUserAction.java(TestWeb逻辑处理)
public class RegisterUserAction implements Action { private static Log logger = LogFactory.getLog(ContentAction.class); public void execute(ActionForward forward, HttpServletRequest request, HttpServletResponse response) throws Exception { SMSProxyService smsProxyService=(SMSProxyService)context.getBean("smsProxyService"); String str = smsProxyService.sendMsg(smsCOntext,tmp,phone); }
相关文章推荐
- delphi7编写客户端调用java服务器端webservice示例
- Spring整合CXF,发布RSETful 风格WebService--编写客户端代码,调用RESTful WebService
- 调用WebService服务客户端代码编写
- window 下gsoap调用webservice——客户端编写
- eclipse使用axis生成webservice客户端并且编写客户端调用代码
- webservice代码编写主要包括服务器端发布和客户端调用。
- 调用WebService服务客户端代码编写
- java调用webservice(用wsdl2java简化客户端的编写)
- 使用axis编写客户端代码调用webservice的一些问题
- 解决webservice 异步调用在有的pc客户端是好的,但是在有的pc客户端上用就不行的难题 (内详,附解决方案)
- Webservice的四种客户端调用方式
- 四步完成WebService服务端与客户端的调用
- 简单的WebService编写与调用
- 客户端调用Xfire WebService(含JavaScript)
- SOAP客户端调用Webservice_hanCSDN_20130225
- CXF生成调用webservice的客户端
- java客户端调用webService
- WebService的四种客户端调用方式(基本)
- android如何调用dotnet编写的webservice