XFire WebService demo
XFire创建WebService实例应用
XFire使得在JavaEE应用中发布Web服务变得轻而易举。和其他Web服务引擎相比,
XFire的配置非常简单,可以非常容易地和Spring集成。
下载地址:http://xfire.codehaus.org/Download。
一. 使用XFire发布WebService
1. 创建service接口
- package com.test.service;
- import com.test.service.bean.User;
- public interface IHelloService {
- public String sayHello(String name);
- public User getUser(User user);
- }
- }
2.创建Service接口的实现类
- package com.test.service;
- import com.test.service.bean.User;
- public class HelloService implements IHelloService{
- public String sayHello(String name){
- return "Hello, "+name;
- }
- public User getUser(User user) {
- User userNew = new User();
- userNew.setId("new:"+user.getId());
- userNew.setName("new:"+user.getName());
- return userNew;
- }
- }
- package com.test.service.bean;
- public class User {
- private String id;
- private String name;
- public String getId() {
- return id;
- }
- public void setId(String id) {
- this.id = id;
- }
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- }
3.在web.xml文件中进行XFire拦截配置,可参照官网提供的sample。
- <?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>
4.在class目录下建立META-INF目录,如(META-INF>xifre->services.xml),
在services.xml文件中进行webservice服务的发布,可参照官网提供的sample。
- <?xml version="1.0" encoding="UTF-8"?>
- <beans xmlns="http://xfire.codehaus.org/config/1.0">
- <service>
- <name>HelloService</name>
- <serviceClass>com.test.service.IHelloService</serviceClass>
- <implementationClass>com.test.service.HelloService</implementationClass>
- </service>
- </beans>
5.将xfire的Jar包和相关依赖包拷到系统应用中,在Tomcat下部署应用。
启动tomcat后访问服务(需在应用后加上/services,webservice才会进行拦截):
例:http://localhost:8080/ws2/services。(IE下有时无法显示列表,可用其它浏览器显示或指定接口名称)
界面如下:
点击后查看详细的wsdl文档,不同的浏览器下访问会有区别,展示效果不一致。
二.建立XFire客户端进行调用
1.本地客户端调用,与webservice服务在同一应用。
- package com.test.client;
- import java.net.MalformedURLException;
- import org.codehaus.xfire.XFireFactory;
- import org.codehaus.xfire.client.XFireProxyFactory;
- import org.codehaus.xfire.service.Service;
- import org.codehaus.xfire.service.binding.ObjectServiceFactory;
- import com.test.service.IHelloService;
- import com.test.service.bean.User;
- public class ClientTest {
- public static void main(String args[]) throws MalformedURLException {
- Service service = new ObjectServiceFactory().create(IHelloService.class);
- XFireProxyFactory factory = new XFireProxyFactory(XFireFactory
- .newInstance().getXFire());
- String url = "http://localhost:8080/ws2/services/HelloService";
- IHelloService helloService = (IHelloService) factory.create(service,url);
- System.out.println(helloService.sayHello("张三"));
- User user = new User();
- user.setName("张三");
- System.out.println(helloService.getUser(user).getName());
- }
- }
执行结果如下:
- Hello, 张三
- new:张三
2. 利用XFire创建build.xml文件生成客户端代码调用webservice服务
2.1在src目录下创建build.properties文件,配置如下:
- src.dir=${basedir}
- lib.dir=D:/myspace/ws2/WebRoot/WEB-INF/lib
- wsdl.dir=http\://localhost\:8080/ws2/services/HelloService?wsdl
2.2在src目录下创建build.xml文件,配置如下:
- <?xml version="1.0" encoding="UTF-8"?>
- <project name="WebService" basedir="." default="gen-webservice">
- <property file="build.properties"></property>
- <path id="project-classpath">
- <fileset dir="${lib.dir}">
- <include name="**/*.jar" />
- </fileset>
- </path>
- <target name="gen-webservice">
- <taskdef name="wsgen" classname="org.codehaus.xfire.gen.WsGenTask"
- classpathref="project-classpath" />
- <wsgen outputDirectory="${src.dir}" wsdl="${wsdl.dir}"
- package="stub.test.client" overwrite="true"/>
- </target>
- </project>
用ant构建生成代码,生成后的目录如下:
2.3编写客户端代码进行调用
- package com.test.client;
- import stub.test.client.HelloServiceClient;
- import stub.test.client.HelloServicePortType;
- import com.test.service.bean.ObjectFactory;
- import com.test.service.bean.User;
- public class HelloServiceTest {
- public static void main(String args[]){
- HelloServiceClient service = new HelloServiceClient();
- HelloServicePortType portType = service.getHelloServiceHttpPort();
- System.out.println(portType.sayHello("张三"));
- ObjectFactory factory = new ObjectFactory();
- User user = factory.createUser();
- user.setName(factory.createUserName("张三"));
- System.out.println(portType.getUser(user).getName().getValue());
- }
- }
执行结果如下:
- Hello, 张三
- new:张三
原文:http://linshow26.iteye.com/blog/2004080
转载于:https://www.cnblogs.com/sdream/p/5887913.html
XFire WebService demo相关推荐
- XFire WebService开发快速起步
XFire WebService开发快速起步 环境: XFire-1.2.6 JDK1.5 MyEclipse 6.5 Tomcat-5.5.27 Windows XP Professional简体中 ...
- java xfire 客户端代码_java调用xfire webService服务客户端代码
java技术调用xfire webService服务客户端代码 import类: import java.net.MalformedURLException; import java.net.URL; ...
- java xfire webservice 异步_[Java教程]Java中使用webservice,简化开发(xfire的webservice)...
[Java教程]Java中使用webservice,简化开发(xfire的webservice) 0 2016-01-07 15:00:11 首先,使用到的jar先导入项目中, xbean-sprin ...
- 使用xfire webservice接口开发,obj与xml相互转换好用工具类,不需要写大量的转换代码,亲测可用
webservice接口开发,旧工程中存在使用xfire开发的接口,对象转换为xml和xml转换为对象的时候需要些大量的代码,工作量很大.现在提供一个比较好的对象转换为xml的工具. <!-- ...
- Spring boot+CXF开发WebService Demo
本文转载自: https://www.cnblogs.com/fuxin41/p/6289162.html 作者:fuxin41 转载请注明该声明. 最近工作中需要用到webservice,而且结合s ...
- java xfire webservice client_Xfire调用 webservice封装
import java.net.MalformedURLException; import java.net.URL; import org.codehaus.xfire.client.Client; ...
- Xfire+WebService “Discarding unexpected response: HTTP/1.1 100 Continue”错误解决
错误如下: org.apache.commons.httpclient.HttpMethodBase writeRequest 信息: 100 (continue) read timeout. Res ...
- xfire webservice 实例
服务器端: 一.首先建立WEB.XML文件的配置映射,当访问services时,调用XFireConfigurableServlet来处理: <?xml version="1.0&qu ...
- WebService初入
WebService 1. WebService基本认识 WebService最早是微软提出了一种以XML为载体网络信息传输的规范,现在几乎所有的语言与平台都支持,带有状态机制,不依赖于容器,可以发送 ...
最新文章
- Java Socket编程 - 基于TCP方式的二进制文件传输【转】http://blog.csdn.net/jia20003/article/details/8248221...
- Zookeeper分布式一致性原理(十):Zookeeper在大型分布式系统的应用
- 重大变动:OpenCV拟更改授权协议!
- 进攻即是最好的防御!19个练习黑客技术的在线网站
- leetcode(90)子集 2
- shineblink 雨滴感应传感器
- 苹果计算机 win10,苹果电脑怎么安装Win10系统?
- 加减法叫做什么运算_加减法是什么意思
- PHP快速输出26大小写字母
- linux虚拟机 dnw,在Linux下安装DNW
- 昨天睡眠质量记录70分
- 【东京】赏秋叶静美,听时光…
- Spring的学习之路(必看)
- 量子通信,究竟是怎样保障信息安全的?
- 【比赛回顾】广工2020程序设计初赛C-秋夜hard
- sdoi2009 [动态规划 状态压缩DP] 学校食堂
- 360云盘关闭一周后:国家版权局称值得肯定,是榜样
- 输入两个正整数a,b,求a对b的余数。
- Pic16f1828 1829串口收发
- 分享一个Hutool团队维护的Java通用工具类库