欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

使用spring远程调用服务端接口实现WebService功能,springwebservice,适合有spring框架的

来源: javaer 分享于  点击 2006 次 点评:41

使用spring远程调用服务端接口实现WebService功能,springwebservice,适合有spring框架的


适合有spring框架的javaEE平台,出自spring的HttpInvokerServiceExporter导出器,依赖Spring.jar

service-servlet.xml

<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"    default-lazy-init="true">    <!-- 实现接口 -->    <bean id="webServiceCommon" class="cn.net.ssd.serviceuser.common.WebServiceImpl">        <property name="daoJdbc">            <ref bean="daoJdbcImpl"/><!--jdbcDao实现 自己项目bean-->        </property>        <property name="daoManage">            <ref bean="daoManageImpl"/><!--hibernateDao实现 自己项目bean-->        </property>    </bean>    <!-- 通过服务导出器,就把pojo编程了controller,让它在服务器上公开,处理请求 -->    <bean name="/httpGetServiceUserInfo.service" class="org.springframework.remoting.httpinvoker.HttpInvokerServiceExporter">       <property name="service" ref="webServiceCommon"/>       <property name="serviceInterface">          <value>cn.net.ssd.serviceuser.common.WebServiceUser</value><!--接口-->       </property>    </bean></beans>

WebServiceUser.java

package cn.net.ssd.serviceuser.common;import java.util.List;import java.util.Map;public interface WebServiceUser {    /**     * 获取服务用户信息     * @param type     * @return     * @throws Exception     */    public String getUserInfo(String type) throws Exception;    public List<Map<String,Object>> getUserInfoList(String type);}

WebServiceImpl.java

package cn.net.ssd.serviceuser.common;import java.util.List;import java.util.Map;import cn.net.ssd.common.databasemanage.DaoJdbc;import cn.net.ssd.common.databasemanage.DaoManage;public class WebServiceImpl implements WebServiceUser {    private DaoManage                  daoManage;    private DaoJdbc                    daoJdbc;     public void setDaoManage(DaoManage daoManage) {        this.daoManage = daoManage;    }    public void setDaoJdbc(DaoJdbc daoJdbc) {        this.daoJdbc = daoJdbc;    }    public String getUserInfo(String type) throws Exception {      String msg="实现业务";        return msg;    }    public List<Map<String, Object>> getUserInfoList(String type) {        List<Map<String,Object>> list=null;        if("".equals(type)||"null".equals(type)){            return list;        }        String sql="";        try {            list=daoJdbc.findListBySql(sql);        }catch (Exception e) {            e.printStackTrace();        }        return list;    }}

[服务端 web.xml

<!--服务端 web.xml--><servlet>             <servlet-name>service</servlet-name>             <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>      </servlet>          <servlet-mapping>           <servlet-name>service</servlet-name>         <url-pattern>*.service</url-pattern>      </servlet-mapping> <客户端需拷贝服务端的接口><!-- 客户端代理对象 -->    <bean id="webServiceUser" class="org.springframework.remoting.httpinvoker.HttpInvokerProxyFactoryBean">      <property name="serviceUrl">         <value>http://localhost/project/httpGetServiceUserInfo.service</value>      </property>      <!-- 为客户端指定接口(代理对象动态实现该接口) -->      <property name="serviceInterface">         <value>cn.net.WebServiceUser</value>      </property>    </bean><bean id="myAction" class="cn.net.MyAction"        scope="prototype" lazy-init="default">              <property name="webServiceUser">            <ref bean="webServiceUser"/>        </property>    </bean>

Action中注入private WebServiceUser webServiceUser;这样客户端就可以远程调用服务端的接口并得到返回值。

相关栏目:

用户点评