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

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

1,service的接口类

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

2,service的实现类

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

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

  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。

  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. <servlet-mapping>
  12. <servlet-name>XFireServlet</servlet-name>
  13. <url-pattern>/servlet/XFireServlet/*</url-pattern>
  14. </servlet-mapping>
  15. <servlet-mapping>
  16. <servlet-name>XFireServlet</servlet-name>
  17. <url-pattern>/services/*</url-pattern>
  18. </servlet-mapping>
  19. </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. <import resource="classpath:org/codehaus/xfire/spring/xfire.xml"/>
  7. <bean id="ExchangeService" class="org.codehaus.xfire.spring.remoting.XFireExporter">
  8. <property name="serviceFactory" ref="xfire.serviceFactory"></property>
  9. <property name="xfire" ref="xfire"></property>
  10. <property name="serviceBean" ref="ExchangeServiceImpl"></property>
  11. <property name="serviceClass" value="cn.cjw.services.exchange.ExchangeService"></property>
  12. <property name="name" value="ExchangeService"></property>
  13. </bean>
  14. <bean id="ExchangeServiceImpl" class="cn.cjw.services.exchange.impl.ExchangeServiceImpl"></bean>
  15. </beans>

3,工程中的web.xml文件

  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. <context-param>
  8. <param-name>contextConfigLocation</param-name>
  9. <param-value>/WEB-INF/applicationContext.xml</param-value>
  10. </context-param>
  11. <listener>
  12. <listener-class>
  13. org.springframework.web.context.ContextLoaderListener
  14. </listener-class>
  15. </listener>
  16. <servlet>
  17. <servlet-name>xfireSpringServlet</servlet-name>
  18. <servlet-class>org.codehaus.xfire.spring.XFireSpringServlet</servlet-class>
  19. </servlet>
  20. <servlet-mapping>
  21. <servlet-name>xfireSpringServlet</servlet-name>
  22. <url-pattern>/services/*</url-pattern>
  23. </servlet-mapping>
  24. </web-app>

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

XFire构建服务端Service的两种方式(转)的更多相关文章

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

    1.原声构建: 2.集成spring构建 http://blog.csdn.net/carefree31441/article/details/4000436XFire构建服务端Service的两种方 ...

  2. android 启动 service 的两种方式,及什么时候用哪个 android 什么时候用bindService

    韩梦飞沙  韩亚飞  313134555@qq.com  yue31313  han_meng_fei_sha android  什么时候用bindService ============ 启动方式有 ...

  3. WCF服务使用(IIS+Http)和(Winform宿主+Tcp)两种方式进行发布

    1.写在前面 刚接触WCF不久,有很多地方知其然不知其所以然.当我在[创建服务->发布服务->使用服务]这一过程出现过许多问题.如客户端找不到服务引用:客户端只在本机环境中才能访问服务,移 ...

  4. Linux 服务管理两种方式service和systemctl

    Linux 服务管理两种方式service和systemctl 1.service命令 service命令其实是去/etc/init.d目录下,去执行相关程序 # service命令启动redis脚本 ...

  5. 子进程回收资源两种方式,僵尸进程与孤儿进程,守护进程,进程间数据隔离,进程互斥锁,队列,IPC机制,线程,守护线程,线程池,回调函数add_done_callback,TCP服务端实现并发

    子进程回收资源两种方式 - 1) join让主进程等待子进程结束,并回收子进程资源,主进程再结束并回收资源. - 2) 主进程 “正常结束” ,子进程与主进程一并被回收资源. from multipr ...

  6. 服务容错保护断路器Hystrix之一:入门示例介绍(springcloud引入Hystrix的两种方式)

    限流知识<高可用服务设计之二:Rate limiting 限流与降级> 在微服务架构中,我们将系统拆分成了一个个的服务单元,各单元间通过服务注册与订阅的方式互相依赖.由于每个单元都在不同的 ...

  7. Service的两种用法及其生命周期

    先来一点基础知识: Service 是android的四大组件之一,与Activity同属于一个级别,它是运行在后台进行服务的组件(例如在后台播放的音乐,播放音乐的同时并不影响其他操作).Servic ...

  8. Docker镜像构建的两种方式(六)--技术流ken

    镜像构建介绍 在什么情况下我们需要自己构建镜像那? (1)当我们找不到现有的镜像,比如自己开发的应用程序 (2)需要在镜像中加入特定的功能 docker构建镜像有两种方式:docker commit命 ...

  9. Servlet访问路径的两种方式、Servlet生命周期特点、计算服务启动后的访问次数、Get请求、Post请求

    Servlet访问路径的两种方式: 1:注解 即在Servlet里写一个@WebServlet @WebServlet("/myServlet") 2:配置web.xml < ...

随机推荐

  1. struts2-core-2.1.6.jar!/struts-default.xml无法加载的问题

    找到合适且匹配的jar包,更改完jar包后要去.metadata---.me_tcat---webapps---项目名----WEB-INF--lib下将多余的jar包去掉,否则还运行时还存在替换掉的 ...

  2. LED七彩变色灯的制作

    LED变色灯是一种新型灯泡.它的外形与一般乳白色白炽灯泡相同,但点亮后会自动按一定的时间间隔变色.循环地发出青.黄.绿.紫.蓝.红.白色光.它适用于家庭生日派对.节日聚会.过节过年,给节日添加欢乐气氛 ...

  3. hibernate的速度问题--hibernate.jdbc.fetch_size和 hibernate.jdbc.batch_size

    hibernate的速度问题 这点我也疑惑过,最初应用hibernate的项目,我也感觉速度很慢,知道后来才知道问题的所在.       其实hibernate的速度性能并不差,比起jdbc来说,又是 ...

  4. Android开源项目发现--- 工具类快速开发篇(持续更新)

    1. Guava Google的基于java1.6的类库集合的扩展项目 包括collections, caching, primitives support, concurrency librarie ...

  5. 如何测试 Android 中的定时事件

    测试定时事件不太容易,比如要测试 AlarmManager 中定时明天4点的一个事件,你总不能等到明天4点再看看吧. Roman Nurik 提供了两个用来测试定时事件的命令:adb shell du ...

  6. 精通iOS开发(第5版)

    <精通iOS开发(第5版)> 基本信息 原书名:Beginning ios 6 development:exploring the ios sdk 作者: (美)David Mark   ...

  7. bzoj1009

    设f[i,j]为准考证号上第i位匹配到不吉祥数字第j位的方案数,显然j∈[0,m-1]下面我们就要想到怎么把f[i-1]转移到f[i]也就是当前匹配到第k位,那么下一位可能会匹配到哪一位显然我们可以穷 ...

  8. 别再说“我已经努力了”,你的“努力”一文不值!

    有次,让一个研究生男收集一份资料,快下班了问结果,竟然毛也没有.见我要怒,他慷慨激昂地说:"我已经很努力找了,但真的查不到." 作为主管,"我已经努力"这话我不 ...

  9. 单独启动tomcat

    原料: jdk-1_5_0_13-windows-i586-p.exe apache-tomcat-5.5.25.zip 安装jdk,路径为:C:\Program Files\Java\jdk1.5. ...

  10. Delphi中使用TXMLDocument控件应注意的问题 转

    Delphi中使用TXMLDocument控件应注意的问题 delphiconstructorxmlclass今天写了一个类,其中用到了TXMLDocument控件.这个控件我是要动态生成的. 但是却 ...