XFire构建服务端Service的两种方式(转)

XFire构建服务端service的两种方式,一是用xfire构建,二是和spring集成构建。 

一,xifre构建,确保把xfire的jar包导入到工程中或classpath。 

1,service的接口类 

  1. package cn.cjw.services.exchange;  
  2.    
  3. public interface ExchangeService {  
  4.     public double RMB2Dollar(double RMB);  
  5. }  

2,service的实现类 

  1. package cn.cjw.services.exchange.impl;  
  2.    
  3. import cn.cjw.services.exchange.ExchangeService;  
  4.    
  5. public class ExchangeServiceImpl implements ExchangeService {  
  6.       
  7.     private double EXCHANGERATE = 6.9;  
  8.    
  9.     /** 
  10.      * @return the eXCHANGERATE 
  11.      */  
  12.     public double getEXCHANGERATE() {  
  13.         return EXCHANGERATE;  
  14.     }  
  15.    
  16.     /** 
  17.      * @param exchangerate the eXCHANGERATE to set 
  18.      */  
  19.     public void setEXCHANGERATE(double exchangerate) {  
  20.         EXCHANGERATE = exchangerate;  
  21.     }  
  22.    
  23.     public double RMB2Dollar(double RMB) {  
  24.         // TODO Auto-generated method stub  
  25.         return RMB*(1/EXCHANGERATE);  
  26.     }  
  27.    
  28. }  

3,在你的src文件夹下新建一个META-INF/xfire文件夹,同时新建一个services.xml文件。  services.xml

[xhtml] view plaincopy
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <beans xmlns="http://xfire.codehaus.org/config/1.0">  
  3.     <service>  
  4.         <name>ExchangeService</name>  
  5.         <namespace>http://www.chinajavaworld.com/ExchangeService</namespace>  
  6.         <serviceClass>cn.cjw.services.exchange.ExchangeService</serviceClass>  
  7.         <implementationClass>cn.cjw.services.exchange.impl.ExchangeServiceImpl</implementationClass>  
  8.     </service>  
  9. </beans>  

4,配置你的项目中的web.xml。

[xhtml] view plaincopy
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <web-app version="2.4"   
  3.     xmlns="http://java.sun.com/xml/ns/j2ee"   
  4.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   
  5.     xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee   
  6.     http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">  
  7.   <servlet>  
  8.     <servlet-name>XFireServlet</servlet-name>     
  9.     <servlet-class>org.codehaus.xfire.transport.http.XFireConfigurableServlet</servlet-class>  
  10.   </servlet>  
  11.     
  12.   <servlet-mapping>  
  13.     <servlet-name>XFireServlet</servlet-name>  
  14.     <url-pattern>/servlet/XFireServlet/*</url-pattern>  
  15.   </servlet-mapping>  
  16.     
  17.   <servlet-mapping>  
  18.     <servlet-name>XFireServlet</servlet-name>  
  19.     <url-pattern>/services/*</url-pattern>  
  20.   </servlet-mapping>  
  21. </web-app>  

到这里,把以上的工程导入到tomcat的webapps下就可以使用了。这和axis比起来,省略了打包的过程。部署到tomcat后启动,在浏览器输入http://localhost:port/[yourProjectName]/services/ExchangeService?wsdl,注意:这里的yourProjectName就是你建立的工程名字。如果ok,那么说明你的service已经可以部署ok了。 
二,集成spring的部署,spring和xfire的jar包需要导入到工程中。  1,建立service的接口类和实现类,代码和以上相同。  2,spring的applicationContext.xml文件 

  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <beans  
  3.     xmlns="http://www.springframework.org/schema/beans"  
  4.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  5.     xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">  
  6.    
  7.     <import resource="classpath:org/codehaus/xfire/spring/xfire.xml"/>  
  8.       
  9.     <bean id="ExchangeService" class="org.codehaus.xfire.spring.remoting.XFireExporter">  
  10.         <property name="serviceFactory" ref="xfire.serviceFactory"></property>  
  11.         <property name="xfire" ref="xfire"></property>  
  12.           
  13.         <property name="serviceBean" ref="ExchangeServiceImpl"></property>  
  14.         <property name="serviceClass" value="cn.cjw.services.exchange.ExchangeService"></property>  
  15.         <property name="name" value="ExchangeService"></property>  
  16.     </bean>  
  17.       
  18.     <bean id="ExchangeServiceImpl" class="cn.cjw.services.exchange.impl.ExchangeServiceImpl"></bean>  
  19. </beans>  

3,工程中的web.xml文件

[xhtml] view plaincopy
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <web-app version="2.4"   
  3.     xmlns="http://java.sun.com/xml/ns/j2ee"   
  4.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   
  5.     xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee   
  6.     http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">  
  7.     
  8.   <context-param>  
  9.         <param-name>contextConfigLocation</param-name>  
  10.         <param-value>/WEB-INF/applicationContext.xml</param-value>  
  11.     </context-param>  
  12.     <listener>  
  13.         <listener-class>  
  14.             org.springframework.web.context.ContextLoaderListener  
  15.         </listener-class>  
  16.     </listener>  
  17.       
  18.     <servlet>  
  19.         <servlet-name>xfireSpringServlet</servlet-name>  
  20.         <servlet-class>org.codehaus.xfire.spring.XFireSpringServlet</servlet-class>  
  21.     </servlet>  
  22.     <servlet-mapping>  
  23.         <servlet-name>xfireSpringServlet</servlet-name>  
  24.         <url-pattern>/services/*</url-pattern>  
  25.     </servlet-mapping>  
  26.     
  27. </web-app>  

把该工程部署到tomcat下,启动tomcat,在浏览器中输入:http://localhost:port/[yourProjectName]/services/ExchangeService?wsdl,如果ok,说明这个service已经部署ok了。相比前一个,这第二种方式可以说简便,而且能够使用spring的所有特性,如IOC和AOP。

原文地址:https://www.cnblogs.com/beijingstruggle/p/5035155.html