XFire创建WebService实例应用

XFire使得在JavaEE应用中发布Web服务变得轻而易举。和其他Web服务引擎相比,
  XFire的配置非常简单,可以非常容易地和Spring集成。
  下载地址:http://xfire.codehaus.org/Download。

 一. 使用XFire发布WebService

   1. 创建service接口

Java代码  
  1. package com.test.service;
  2. import com.test.service.bean.User;
  3. public interface IHelloService {
  4. public String sayHello(String name);
  5. public User  getUser(User user);
  6. }
  7. }

 2.创建Service接口的实现类

Java代码  
  1. package com.test.service;
  2. import com.test.service.bean.User;
  3. public class HelloService implements IHelloService{
  4. public String sayHello(String name){
  5. return "Hello, "+name;
  6. }
  7. public User getUser(User user) {
  8. User userNew = new User();
  9. userNew.setId("new:"+user.getId());
  10. userNew.setName("new:"+user.getName());
  11. return userNew;
  12. }
  13. }
Java代码  
  1. package com.test.service.bean;
  2. public class User {
  3. private String id;
  4. private String name;
  5. public String getId() {
  6. return id;
  7. }
  8. public void setId(String id) {
  9. this.id = id;
  10. }
  11. public String getName() {
  12. return name;
  13. }
  14. public void setName(String name) {
  15. this.name = name;
  16. }
  17. }

 

3.在web.xml文件中进行XFire拦截配置,可参照官网提供的sample。

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

 4.在class目录下建立META-INF目录,如(META-INF>xifre->services.xml),
    在services.xml文件中进行webservice服务的发布,可参照官网提供的sample。 

Xml代码  
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://xfire.codehaus.org/config/1.0">
  3. <service>
  4. <name>HelloService</name>
  5. <serviceClass>com.test.service.IHelloService</serviceClass>
  6. <implementationClass>com.test.service.HelloService</implementationClass>
  7. </service>
  8. </beans>

5.将xfire的Jar包和相关依赖包拷到系统应用中,在Tomcat下部署应用。
   启动tomcat后访问服务(需在应用后加上/services,webservice才会进行拦截):
   例:http://localhost:8080/ws2/services。(IE下有时无法显示列表,可用其它浏览器显示或指定接口名称)
   界面如下:

点击后查看详细的wsdl文档,不同的浏览器下访问会有区别,展示效果不一致。

   二.建立XFire客户端进行调用

1.本地客户端调用,与webservice服务在同一应用。

Java代码  
  1. package com.test.client;
  2. import java.net.MalformedURLException;
  3. import org.codehaus.xfire.XFireFactory;
  4. import org.codehaus.xfire.client.XFireProxyFactory;
  5. import org.codehaus.xfire.service.Service;
  6. import org.codehaus.xfire.service.binding.ObjectServiceFactory;
  7. import com.test.service.IHelloService;
  8. import com.test.service.bean.User;
  9. public class ClientTest {
  10. public static void main(String args[]) throws MalformedURLException {
  11. Service service = new ObjectServiceFactory().create(IHelloService.class);
  12. XFireProxyFactory factory = new XFireProxyFactory(XFireFactory
  13. .newInstance().getXFire());
  14. String url = "http://localhost:8080/ws2/services/HelloService";
  15. IHelloService helloService = (IHelloService) factory.create(service,url);
  16. System.out.println(helloService.sayHello("张三"));
  17. User user = new User();
  18. user.setName("张三");
  19. System.out.println(helloService.getUser(user).getName());
  20. }
  21. }

执行结果如下:

Java代码  
  1. Hello, 张三
  2. new:张三

 2. 利用XFire创建build.xml文件生成客户端代码调用webservice服务

  

2.1在src目录下创建build.properties文件,配置如下:

Java代码  
  1. src.dir=${basedir}
  2. lib.dir=D:/myspace/ws2/WebRoot/WEB-INF/lib
  3. wsdl.dir=http\://localhost\:8080/ws2/services/HelloService?wsdl

2.2在src目录下创建build.xml文件,配置如下:

Xml代码  
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project name="WebService" basedir="." default="gen-webservice">
  3. <property file="build.properties"></property>
  4. <path id="project-classpath">
  5. <fileset dir="${lib.dir}">
  6. <include name="**/*.jar" />
  7. </fileset>
  8. </path>
  9. <target name="gen-webservice">
  10. <taskdef name="wsgen" classname="org.codehaus.xfire.gen.WsGenTask"
  11. classpathref="project-classpath" />
  12. <wsgen outputDirectory="${src.dir}"  wsdl="${wsdl.dir}"
  13. package="stub.test.client" overwrite="true"/>
  14. </target>
  15. </project>

用ant构建生成代码,生成后的目录如下:

 2.3编写客户端代码进行调用

Java代码  
  1. package com.test.client;
  2. import stub.test.client.HelloServiceClient;
  3. import stub.test.client.HelloServicePortType;
  4. import com.test.service.bean.ObjectFactory;
  5. import com.test.service.bean.User;
  6. public class HelloServiceTest {
  7. public static void main(String args[]){
  8. HelloServiceClient service = new HelloServiceClient();
  9. HelloServicePortType portType = service.getHelloServiceHttpPort();
  10. System.out.println(portType.sayHello("张三"));
  11. ObjectFactory factory = new ObjectFactory();
  12. User user = factory.createUser();
  13. user.setName(factory.createUserName("张三"));
  14. System.out.println(portType.getUser(user).getName().getValue());
  15. }
  16. }

执行结果如下:

Java代码  
  1. Hello, 张三
  2. new:张三

原文:http://linshow26.iteye.com/blog/2004080

转载于:https://www.cnblogs.com/sdream/p/5887913.html

XFire WebService demo相关推荐

  1. XFire WebService开发快速起步

    XFire WebService开发快速起步 环境: XFire-1.2.6 JDK1.5 MyEclipse 6.5 Tomcat-5.5.27 Windows XP Professional简体中 ...

  2. java xfire 客户端代码_java调用xfire webService服务客户端代码

    java技术调用xfire webService服务客户端代码 import类: import java.net.MalformedURLException; import java.net.URL; ...

  3. java xfire webservice 异步_[Java教程]Java中使用webservice,简化开发(xfire的webservice)...

    [Java教程]Java中使用webservice,简化开发(xfire的webservice) 0 2016-01-07 15:00:11 首先,使用到的jar先导入项目中, xbean-sprin ...

  4. 使用xfire webservice接口开发,obj与xml相互转换好用工具类,不需要写大量的转换代码,亲测可用

    webservice接口开发,旧工程中存在使用xfire开发的接口,对象转换为xml和xml转换为对象的时候需要些大量的代码,工作量很大.现在提供一个比较好的对象转换为xml的工具. <!-- ...

  5. Spring boot+CXF开发WebService Demo

    本文转载自: https://www.cnblogs.com/fuxin41/p/6289162.html 作者:fuxin41 转载请注明该声明. 最近工作中需要用到webservice,而且结合s ...

  6. java xfire webservice client_Xfire调用 webservice封装

    import java.net.MalformedURLException; import java.net.URL; import org.codehaus.xfire.client.Client; ...

  7. Xfire+WebService “Discarding unexpected response: HTTP/1.1 100 Continue”错误解决

    错误如下: org.apache.commons.httpclient.HttpMethodBase writeRequest 信息: 100 (continue) read timeout. Res ...

  8. xfire webservice 实例

    服务器端: 一.首先建立WEB.XML文件的配置映射,当访问services时,调用XFireConfigurableServlet来处理: <?xml version="1.0&qu ...

  9. WebService初入

    WebService 1. WebService基本认识 WebService最早是微软提出了一种以XML为载体网络信息传输的规范,现在几乎所有的语言与平台都支持,带有状态机制,不依赖于容器,可以发送 ...

最新文章

  1. Java Socket编程 - 基于TCP方式的二进制文件传输【转】http://blog.csdn.net/jia20003/article/details/8248221...
  2. Zookeeper分布式一致性原理(十):Zookeeper在大型分布式系统的应用
  3. 重大变动:OpenCV拟更改授权协议!
  4. 进攻即是最好的防御!19个练习黑客技术的在线网站
  5. leetcode(90)子集 2
  6. shineblink 雨滴感应传感器
  7. 苹果计算机 win10,苹果电脑怎么安装Win10系统?
  8. 加减法叫做什么运算_加减法是什么意思
  9. PHP快速输出26大小写字母
  10. linux虚拟机 dnw,在Linux下安装DNW
  11. 昨天睡眠质量记录70分
  12. 【东京】赏秋叶静美,听时光…
  13. Spring的学习之路(必看)
  14. 量子通信,究竟是怎样保障信息安全的?
  15. 【比赛回顾】广工2020程序设计初赛C-秋夜hard
  16. sdoi2009 [动态规划 状态压缩DP] 学校食堂
  17. 360云盘关闭一周后:国家版权局称值得肯定,是榜样
  18. 输入两个正整数a,b,求a对b的余数。
  19. Pic16f1828 1829串口收发
  20. 分享一个Hutool团队维护的Java通用工具类库

热门文章

  1. Android Studio添加jar包
  2. 浏览器的内核及版本的判断
  3. 安全观之我见(三):省银之道在预防
  4. 域客户端的计算机更名
  5. Spring管理事务的若干配置形式
  6. 理工科学生如何建立对于财务三大表的基本分析呢?
  7. distance from ifm to Sidney Sussex College: acceptable
  8. xjtlu mac mail 绑定
  9. 转:UNITY,如何为你的游戏选择正确的网络类型
  10. 归纳DOM事件中各种阻止方法