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 < ...
随机推荐
- Keil编译后的各文件介绍
编译生成的文件: .plg:编译器编译结果 .hex和.bin:可执行文件 .map和.lst:链接文件 .obj:目标文件 .crf..lnp..d和.axf:调试文件 .opt:保存工程配置信息 ...
- JavaScript如何获取css属性
原文:JavaScript如何获取css属性 在web开发中,很多时候我们需要用JavaScript对网页的样式进行修改,接下来,我们就来看一下我们该如何访问css属性,针对不同情况及案例来进行分析. ...
- Android 用代码来实现selector
众所周知,android可以通过XML文件来创建selector,以Drawable对象的形式安装到组件上,以提供统一的风格设置.但是在某些时候,我们需要通过代码的形式来实现相同的功能,例如组件数量非 ...
- elasticsearch spring 集成
elasticsearch spring 集成 项目清单 elasticsearch服务下载包括其中插件和分词 http://download.csdn.net/detail/u0142011 ...
- [LeetCode#191]Number of Bits
Problem: Write a function that takes an unsigned integer and returns the number of ’1' bits it has ( ...
- centos6.5 设置静态ip地址
vim /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 #描述网卡对应的设备别名,例如ifcfg-eth0的文件中它为eth0BOOTPRO ...
- WebSorcket学习
传统 Web 模式在处理高并发及实时性需求的时候经常采用以下方案: 1.轮询,原理简单易懂,就是客户端通过一定的时间间隔以频繁请求的方式向服务器发送请求,来保持客户端和服务器端的数据同步.问题很明显, ...
- Linux学习笔记30——套接字
一 什么是套接字 套接字是一种通信机制,凭借这种机制,客户/服务器系统的开发既可以在本地单机上进行,也可以跨网络进行. 二 套接字属性 套接字的特性由3个属性确定,它们是:域,类型和协议 1 套接 ...
- bzoj 1188 [HNOI2007]分裂游戏(SG函数,博弈)
1188: [HNOI2007]分裂游戏 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 733 Solved: 451[Submit][Status ...
- 使用python实现最优化问题
最优化问题 1.无约束的最优化问题 所谓的无约束优化问题指的是一个优化问题的寻优可行集合是目标函数自变量的定义域,即没有外部的限制条件.例如,求解优化问题 [ \begin{array}{rl} \t ...