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

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

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

1,service的接口类
1
2
3
4
5
package cn.cjw.services.exchange;
 
public interface ExchangeService {
	public double RMB2Dollar(double RMB);
}

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

3,在你的src文件夹下新建一个META-INF\xfire文件夹,同时新建一个services.xml文件。
services.xml
1
2
3
4
5
6
7
8
9
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://xfire.codehaus.org/config/1.0">
	<service>
		<name>ExchangeService</name>
		<namespace>http://www.chinajavaworld.com/ExchangeService</namespace>
		<serviceClass>cn.cjw.services.exchange.ExchangeService</serviceClass>
		<implementationClass>cn.cjw.services.exchange.impl.ExchangeServiceImpl</implementationClass>
	</service>
</beans>

4,配置你的项目中的web.xml。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" 
	xmlns="http://java.sun.com/xml/ns/j2ee" 
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
	xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
	http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
    
  <servlet>
  	<servlet-name>XFireServlet</servlet-name>  	
  	<servlet-class>org.codehaus.xfire.transport.http.XFireConfigurableServlet</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>/services/*</url-pattern>
  </servlet-mapping>
  
</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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?xml version="1.0" encoding="UTF-8"?>
<beans
	xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
 
	<import resource="classpath:org/codehaus/xfire/spring/xfire.xml"/>
	
	<bean id="ExchangeService" class="org.codehaus.xfire.spring.remoting.XFireExporter">
		<property name="serviceFactory" ref="xfire.serviceFactory"></property>
		<property name="xfire" ref="xfire"></property>
		
		<property name="serviceBean" ref="ExchangeServiceImpl"></property>
		<property name="serviceClass" value="cn.cjw.services.exchange.ExchangeService"></property>
		<property name="name" value="ExchangeService"></property>
	</bean>
	
	<bean id="ExchangeServiceImpl" class="cn.cjw.services.exchange.impl.ExchangeServiceImpl"></bean>
	
</beans>

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


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

服务端service部署好了,下来会说说他的客户端的调用。也有好几种方式。

平均得分
(0 次评分)





文章来自: 本站原创
标签: SOA XFire 
评论: 9 | 查看次数: 3369
  • 共有 9 条评论
yanlink [2010-07-31 14:18:15]
yanlink [2010-06-18 15:04:57]
luohu [2010-06-11 09:53:17]
when you choose buy wow gold, you must be come here with cheap wow gold,so you buy wow gold and World of Warcraft gold AT mmoxe is your best choose.
xiaoxue00 [2010-06-04 12:31:12]
Bienvenue à GameSavor d'acheter wow
par wow dans GameSavor, vous obtiendrez une grande surprise!
chez GameSavor, 20% de bonus wow gold sont waitting pour vous!
zhangzhenisme [2010-04-27 15:09:37]
谢谢
songjlvshi [2010-03-29 10:17:06]
beeflee [2009-08-25 14:44:47]
beeflee [2009-08-24 17:49:39]
beeflee [2009-08-17 17:07:13]
  • 共有 9 条评论
发表评论
昵 称:  登录
内 容:
选 项:
字数限制 1000 字 | UBB代码 开启 | [img]标签 开启