XFire创建WebService实例应用
XFire使得在JavaEE应用中发布Web服务变得轻而易举。和其他Web服务引擎相比,
XFire的配置非常简单,可以非常容易地和Spring集成。
下载地址:http://xfire.codehaus.org/Download。
一.使用XFire发布WebService
1.创建service接口
- packagecom.test.service;
- importcom.test.service.bean.User;
- publicinterfaceIHelloService{
- publicStringsayHello(Stringname);
- publicUsergetUser(Useruser);
- }
- }
2.创建Service接口的实现类
- packagecom.test.service;
- importcom.test.service.bean.User;
- publicclassHelloServiceimplementsIHelloService{
- publicStringsayHello(Stringname){
- return"Hello,"+name;
- }
- publicUsergetUser(Useruser){
- UseruserNew=newUser();
- userNew.setId("new:"+user.getId());
- userNew.setName("new:"+user.getName());
- returnuserNew;
- }
- }
- packagecom.test.service.bean;
- publicclassUser{
- privateStringid;
- privateStringname;
- publicStringgetId(){
- returnid;
- }
- publicvoidsetId(Stringid){
- this.id=id;
- }
- publicStringgetName(){
- returnname;
- }
- publicvoidsetName(Stringname){
- this.name=name;
- }
- }
3.在web.xml文件中进行XFire拦截配置,可参照官网提供的sample。
- <?xmlversion="1.0"encoding="UTF-8"?>
- <web-appversion="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。
- <?xmlversion="1.0"encoding="UTF-8"?>
- <beansxmlns="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服务在同一应用。
- packagecom.test.client;
- importjava.net.MalformedURLException;
- importorg.codehaus.xfire.XFireFactory;
- importorg.codehaus.xfire.client.XFireProxyFactory;
- importorg.codehaus.xfire.service.Service;
- importorg.codehaus.xfire.service.binding.ObjectServiceFactory;
- importcom.test.service.IHelloService;
- importcom.test.service.bean.User;
- publicclassClientTest{
- publicstaticvoidmain(Stringargs[])throwsMalformedURLException{
- Serviceservice=newObjectServiceFactory().create(IHelloService.class);
- XFireProxyFactoryfactory=newXFireProxyFactory(XFireFactory
- .newInstance().getXFire());
- Stringurl="http://localhost:8080/ws2/services/HelloService";
- IHelloServicehelloService=(IHelloService)factory.create(service,url);
- System.out.println(helloService.sayHello("张三"));
- Useruser=newUser();
- user.setName("张三");
- System.out.println(helloService.getUser(user).getName());
- }
- }
执行结果如下:
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\:
2.2在src目录下创建build.xml文件,配置如下:
- <?xmlversion="1.0"encoding="UTF-8"?>
- <projectname="WebService"basedir="."default="gen-webservice">
- <propertyfile="build.properties"></property>
- <pathid="project-classpath">
- <filesetdir="${lib.dir}">
- <includename="**/*.jar"/>
- </fileset>
- </path>
- <targetname="gen-webservice">
- <taskdefname="wsgen"classname="org.codehaus.xfire.gen.WsGenTask"
- classpathref="project-classpath"/>
- <wsgenoutputDirectory="${src.dir}"wsdl="${wsdl.dir}"
- package="stub.test.client"overwrite="true"/>
- </target>
- </project>
用ant构建生成代码,生成后的目录如下:
2.3编写客户端代码进行调用
- packagecom.test.client;
- importstub.test.client.HelloServiceClient;
- importstub.test.client.HelloServicePortType;
- importcom.test.service.bean.ObjectFactory;
- importcom.test.service.bean.User;
- publicclassHelloServiceTest{
- publicstaticvoidmain(Stringargs[]){
- HelloServiceClientservice=newHelloServiceClient();
- HelloServicePortTypeportType=service.getHelloServiceHttpPort();
- System.out.println(portType.sayHello("张三"));
- ObjectFactoryfactory=newObjectFactory();
- Useruser=factory.createUser();
- user.setName(factory.createUserName("张三"));
- System.out.println(portType.getUser(user).getName().getValue());
- }
- }
执行结果如下:
分享到:
相关推荐
这是一个完整的在ECLIPSE下利用Xfire框架开发的一年webservice所用的数据库为sqlserver2005.下载后只要工程导入ECLIPSE中即可.
xfire实现webservice实例,XFire WebService开发快速起步
XFire建立Webservice实例,入门级别,适XFire建立Webservice实例,入门级别,XFire建立Webservice实例,入门级别,适合初学者适合初学者合初学者
MyEclipse下XFire开发Webservice实例.doc 基于XFire开发Webservice实例。
XFire建立Webservice实例
XFire建立Webservice实例
xfire简单实例发布webservice,引用到2个jar包的简单例子
myeclipse xfire 开发webservice实例
用java通过xfire框架实现ws,实现正向生成wsdl文件,并由wsdl逆向生成java ws客户端代码 测试输入:http://localhost:8080/webservice-xfire/services/CalculatorService?wsdl
xfire-webservice实例(下载即可运行) xifre小例子 xfire实例 xfire 内含jar包
XFireWebService工程代码(不包含xfire相关jar包), 博文链接:https://sailinglxg.iteye.com/blog/173679
xfire的一个完整实例,不过我建议大家,学习完理论知识后,根据自己学得知识,手动练习一下,遇到异常就百度,一下,这样比较好!
NULL 博文链接:https://yanzhenwei.iteye.com/blog/904022
本文详细介绍了利用xfire组件实现webservice的服务端和客户端实例,适合入门参考和使用!
NULL 博文链接:https://wuzq1223.iteye.com/blog/1566203
xFire WebService 实例开发
XFire Java SOAP框架概述 MyEclipse Web Services是建立在XFire Java SOAP框架和工具基础上的, XFire是一款开源的Java SOAP框架。它拥有一个轻量级的信息处理模块,通过STAX来与SOAP信息相结合。提供了一个工作在...
xfire下webservice服务实例.docx