XFire构建服务端Service的两种方式(转)
XFire构建服务端service的两种方式,一是用xfire构建,二是和spring集成构建。
一,xifre构建,确保把xfire的jar包导入到工程中或classpath。
1,service的接口类
- package cn.cjw.services.exchange;
- public interface ExchangeService {
- public double RMB2Dollar(double RMB);
- }
2,service的实现类
- 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
- <?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。
- <?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文件
- <?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文件
- <?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。
XFire构建服务端Service的两种方式(转)的更多相关文章
- XFire构建服务端Service的两种方式
1.原声构建: 2.集成spring构建 http://blog.csdn.net/carefree31441/article/details/4000436XFire构建服务端Service的两种方 ...
- android 启动 service 的两种方式,及什么时候用哪个 android 什么时候用bindService
韩梦飞沙 韩亚飞 313134555@qq.com yue31313 han_meng_fei_sha android 什么时候用bindService ============ 启动方式有 ...
- WCF服务使用(IIS+Http)和(Winform宿主+Tcp)两种方式进行发布
1.写在前面 刚接触WCF不久,有很多地方知其然不知其所以然.当我在[创建服务->发布服务->使用服务]这一过程出现过许多问题.如客户端找不到服务引用:客户端只在本机环境中才能访问服务,移 ...
- Linux 服务管理两种方式service和systemctl
Linux 服务管理两种方式service和systemctl 1.service命令 service命令其实是去/etc/init.d目录下,去执行相关程序 # service命令启动redis脚本 ...
- 子进程回收资源两种方式,僵尸进程与孤儿进程,守护进程,进程间数据隔离,进程互斥锁,队列,IPC机制,线程,守护线程,线程池,回调函数add_done_callback,TCP服务端实现并发
子进程回收资源两种方式 - 1) join让主进程等待子进程结束,并回收子进程资源,主进程再结束并回收资源. - 2) 主进程 “正常结束” ,子进程与主进程一并被回收资源. from multipr ...
- 服务容错保护断路器Hystrix之一:入门示例介绍(springcloud引入Hystrix的两种方式)
限流知识<高可用服务设计之二:Rate limiting 限流与降级> 在微服务架构中,我们将系统拆分成了一个个的服务单元,各单元间通过服务注册与订阅的方式互相依赖.由于每个单元都在不同的 ...
- Service的两种用法及其生命周期
先来一点基础知识: Service 是android的四大组件之一,与Activity同属于一个级别,它是运行在后台进行服务的组件(例如在后台播放的音乐,播放音乐的同时并不影响其他操作).Servic ...
- Docker镜像构建的两种方式(六)--技术流ken
镜像构建介绍 在什么情况下我们需要自己构建镜像那? (1)当我们找不到现有的镜像,比如自己开发的应用程序 (2)需要在镜像中加入特定的功能 docker构建镜像有两种方式:docker commit命 ...
- Servlet访问路径的两种方式、Servlet生命周期特点、计算服务启动后的访问次数、Get请求、Post请求
Servlet访问路径的两种方式: 1:注解 即在Servlet里写一个@WebServlet @WebServlet("/myServlet") 2:配置web.xml < ...
随机推荐
- StringGrid右击选中表格(发消息给句柄模拟点击,右键点击也是MouseDown)
顺便还把单元格给变了: procedure TFGLGL.StringGrid1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShi ...
- [性能分析]linux文件描述符(转)
1.什么是文件和文件描述符 Linux中文件可以分为4种:普通文件.目录文件.链接文件和设备文件.1.普通文件是用户日常使用最多的文件,包括文本文件.shell脚本.二进制的可执行和各种类型的数据.l ...
- Java开发手册
<Java开发手册> 基本信息 作者: 桂颖 谷涛 出版社:电子工业出版社 ISBN:9787121209161 上架时间:2013-8-12 出版日期:2013 年7月 开本 ...
- 适配器模式 java
结构模式:将类和对象结合在一起构成更大的结构,就像是搭积木. 1.适配器模式 源接口---适配器--目标接口 2.使用场景: 现在你有一个很古老的类,里面的一些方法很有用,你如何使用这些方法? 当然你 ...
- [Java] Java IO 概况
Java IO 是 Java 的一套 API, 用于读入和写出数据(输入和输出).Java IO API 位于 java.io package.实际上 java.io package 没有解决所有的输 ...
- 《University Calculus》-chape8-无穷序列和无穷级数-基本极限恒等式
基于基本的极限分析方法(诸多的无穷小以及洛必达法则),我们能够得到推导出一些表面上看不是那么显然的式子,这些极限恒等式往往会在其他的推导过程中用到,其中一个例子就是概率论中的极限定理那部分知识.
- hdu 4472 Count(递推即dp)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4472 代码: #include <cstdio> #include <cstring ...
- Xcode7.1与iOS9之坑
一.更改http为https 两种方案: 公司后台服务器更改; 作为开发者,可在Xcode暂时退回到http协议. 开发者更改方法如下: 在Info.plist中添加App Transport Se ...
- android的生命周期
1.运行状态:当一个活动处于栈的顶部时,这时活动就处于活动状态,系统是不愿意回收处于活动状态的,会影响用户体验. 2.暂停状态:当一个活动不再处于栈的顶部时,但仍然可见时,这时就是暂停状态了.处于暂停 ...
- DevExpress控件 GridControl 单元格编辑 回车
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...