ssh配xfire

xfireSpring良好的结合,促使我将原有的axis方式改造到xfire方式。下面将整个过程简述一下,首先看一下如何配置xfire。在Web.xml中有两种方式来配置xfire
一种是通过spring提供的org.springframework.web.servlet.DispatcherServlet来实现,配置方法是这样的:
1、web.xml中配置

Java代码 复制代码
  1. <servlet>  
  2.          <servlet-name>xfire</servlet-name>  
  3.          <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>  
  4.      </servlet>  
  5.       
  6.      <servlet-mapping>  
  7.          <servlet-name>xfire</servlet-name>  
  8.          <url-pattern>/*</url-pattern>  
  9.      </servlet-mapping>  
<servlet>      <servlet-name>xfire</servlet-name>      <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>  </servlet>    <servlet-mapping>      <servlet-name>xfire</servlet-name>      <url-pattern>/*</url-pattern>  </servlet-mapping>


2、WEB-INF下添加xfire-servlet.xml文件,配置方法如下:

Java代码 复制代码
  1. <?xml version="1.0" encoding="UTF-8"?>     
  2. <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">  
  3. <beans>  
  4.      <bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">  
  5.          <property name="urlMap">  
  6.              <map>  
  7.                  <entry key="/EchoService"> <!-- 这里是WebService的名称 -->  
  8.                      <ref bean="echo"/>   
  9.                  </entry>  
  10.              </map>  
  11.          </property>  
  12.      </bean>  
  13.       
  14.      <bean id="echo" class="org.codehaus.xfire.spring.remoting.XFireExporter">  
  15.          <property name="serviceFactory">  
  16.              <ref bean="xfire.serviceFactory"/>  
  17.          </property>  
  18.          <property name="xfire">  
  19.              <ref bean="xfire"/>  
  20.          </property>  
  21.          <property name="serviceBean">  
  22.              <ref bean="echoBean"/>  
  23.          </property>  
  24.          <property name="serviceClass">  
  25.              <value>xxx.com.webservice.Echo</value>  
  26.          </property>  
  27.      </bean>  
  28. </beans>  
<?xml version="1.0" encoding="UTF-8"?>    <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> <beans>  <bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">      <property name="urlMap">          <map>              <entry key="/EchoService"> <!-- 这里是WebService的名称 -->                  <ref bean="echo"/>               </entry>          </map>      </property>  </bean>    <bean id="echo" class="org.codehaus.xfire.spring.remoting.XFireExporter">      <property name="serviceFactory">          <ref bean="xfire.serviceFactory"/>      </property>      <property name="xfire">          <ref bean="xfire"/>      </property>      <property name="serviceBean">          <ref bean="echoBean"/>      </property>      <property name="serviceClass">          <value>xxx.com.webservice.Echo</value>      </property>  </bean> </beans>


配置完成后,定义一个接口,然后启动Server,通过client可实现WebService的访问。

同时,xfire提供了另外一种阅读性更好,更符合spring配置习惯的配置方法,配置方法如下:
1、web.xml

Java代码 复制代码
  1. <servlet>  
  2.          <servlet-name>XFireServlet</servlet-name>  
  3.          <servlet-class>  
  4.              org.codehaus.xfire.spring.XFireSpringServlet  
  5.          </servlet-class>  
  6.      </servlet>  
  7.       
  8.      <servlet-mapping>  
  9.          <servlet-name>XFireServlet</servlet-name>  
  10.          <url-pattern>/servlet/XFireServlet/*</url-pattern>  
  11.      </servlet-mapping>  
  12.       
  13.      <servlet-mapping>  
  14.          <servlet-name>XFireServlet</servlet-name>  
  15.          <url-pattern>/service/*</url-pattern>  
  16.      </servlet-mapping>  
<servlet>   <servlet-name>XFireServlet</servlet-name>   <servlet-class>    org.codehaus.xfire.spring.XFireSpringServlet   </servlet-class>  </servlet>    <servlet-mapping>   <servlet-name>XFireServlet</servlet-name>   <url-pattern>/servlet/XFireServlet/*</url-pattern>  </servlet-mapping>    <servlet-mapping>   <servlet-name>XFireServlet</servlet-name>   <url-pattern>/service/*</url-pattern>  </servlet-mapping>


这种方式不需要单独配置一个xfire-servlet.xml文件,只需要在spring的applicationContext文件中进行配置就能实现WebService的配置
2、applicationContext.xml

Java代码 复制代码
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">  
  3. <beans>  
  4.      <!-- 需要import下面这个xml文件 -->  
  5.      <import resource="classpath:org/codehaus/xfire/spring/xfire.xml" />  
  6.       
  7.      <!-- WebService Impl   WebService接口的实现类-->  
  8.      <bean id="accountWebServiceImpl" class="xxx.com.account.webservice.impl.AccountWebServiceImpl" autowire="byName" />  
  9.      <!-- end -->  
  10.       
  11.      <!-- 下面的配置是WebService的标准配置 -->  
  12.      <bean id="AccountWebService" class="org.codehaus.xfire.spring.remoting.XFireExporter"> <!-- WebService的名字 -->  
  13.          <property name="xfire" ref="xfire" />  
  14.          <property name="serviceBean" ref="accountWebServiceImpl" /> <!-- WebService的实现类bean -->  
  15.          <property name="serviceClass" value="xxx.com.account.webservice.AccountWebService" />  
  16.          <property name="inHandlers" ref="authenticationHandler"/> <!--普通的用户名密码的方式进行WebService的验证-->  
  17.      </bean>  
  18.      <bean id="authenticationHandler"  
  19.           class="xxx.com.account.webservice.authentcation.AuthenticationHandler"/>  
  20. </beans>  
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> <beans>  <!-- 需要import下面这个xml文件 -->  <import resource="classpath:org/codehaus/xfire/spring/xfire.xml" />    <!-- WebService Impl  WebService接口的实现类-->  <bean id="accountWebServiceImpl" class="xxx.com.account.webservice.impl.AccountWebServiceImpl" autowire="byName" />  <!-- end -->    <!-- 下面的配置是WebService的标准配置 -->  <bean id="AccountWebService" class="org.codehaus.xfire.spring.remoting.XFireExporter"> <!-- WebService的名字 -->   <property name="xfire" ref="xfire" />   <property name="serviceBean" ref="accountWebServiceImpl" /> <!-- WebService的实现类bean -->   <property name="serviceClass" value="xxx.com.account.webservice.AccountWebService" />   <property name="inHandlers" ref="authenticationHandler"/> <!--普通的用户名密码的方式进行WebService的验证-->  </bean>  <bean id="authenticationHandler"     class="xxx.com.account.webservice.authentcation.AuthenticationHandler"/> </beans>


通过上面的配置,就可以将Spring的bean和xfire的WebService很好的结合起来了,以上的方式在WebService上只是做了简单的密码验证,并不能保证WebService的安全性,下面将详细描述如何通过WSS4J的方式来实现WebService的数字证书的加密验证,这里大量的参考了SpringSide,非常感谢!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值