欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

java webservice 施用实例(xfire)

更新时间: 2014-05-12 15:28:01 责任编辑: Author_N1

 

Java WebService 使用实例(xfire)



         参考:http://binzi.iteye.com/blog/539173

                    http://rargers.iteye.com/blog/195503



1、  准备

首先下载xfire包,目前最新的是1.2.6,
下载地址:http://xfire.codehaus.org/Download,下载xfire-distribution-1.2.6.zip压缩文件,并解压。
新建一个web工程,取名为TestXFire,导入刚才下载的xfire-distribution-1.2.6\xfire-1.2.6 下的xfire-all-1.2.6.jar和xfire-distribution-1.2.6\xfire-1.2.6\lib文件下面所有的包。



2、  创建类

使用接口的设计是一个好的实践,所以先创建接口:ITestService,代码如下:

package com.gdie.xfire.example;



public interface ITestService {

     public int  add(int p1, int p2);

}

该接口提供一个方法,用于计算



创建接口的实现类:

package com.gdie.xfire.example;



public class TestService implements ITestService {



    public int add(int p1, int p2) {

   

       return p1 + p2;

    }



}



3、META-INF(此步很关键)

先将WebRoot下的META-INF文件夹复制到项目的src下(实则是为了在部署发布目录下web-inf下的classes下建立META-INF,而同时WebRoot下也有一个META-INF文件夹,这两个容易混淆,实际webservice下真正起作用的是web-inf下的classes下的web-inf下的META-INF,所以,关键是在项目的src下面有META-INF这个文件夹,并定义里面的内容,与WebRoot下META-INF无关。)

然后在src下的META-INF建立xfire子文件夹,里面建立一名叫services.xml配置文件,配置如下:

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://xfire.codehaus.org/config/1.0">

<service>

   <name>TestService</name>

   <namespace>http://com/gdie/xfire/example/ITestService</namespace>

   <serviceClass>com.gdie.xfire.example.ITestService</serviceClass>

   <implementationClass>com.gdie.xfire.example.TestService</implementationClass>

</service>

</beans>



注意:包文件路径com.gdie.xfire.example.ITestService等需要正确对应。

关键是在src下面要有META-INF文件夹和里面的文件,否则会报找不到services.xml错误而加载不了项目。





4、  web.xml

配置文件关键是定义XFireServlet,对应代码如下:

<?xml version="1.0" encoding="UTF-8"?>

<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"

    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee

    http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">

    <welcome-file-list>

       <welcome-file>index.jsp</welcome-file>

    </welcome-file-list>

    <servlet>

       <servlet-name>XFireServlet</servlet-name>

       <servlet-class>

           org.codehaus.xfire.transport.http.XFireConfigurableServlet

       </servlet-class>

       <load-on-startup>0</load-on-startup>

    </servlet>

    <servlet-mapping>

       <servlet-name>XFireServlet</servlet-name>

       <url-pattern>/services/*</url-pattern>

    </servlet-mapping>

     <servlet-mapping>

         <servlet-name>XFireServlet</servlet-name>

         <url-pattern>/servlet/XFireServlet/*</url-pattern>

     </servlet-mapping>

</web-app>



至此,服务器端部署完毕。完整的项目文件结构如图:







将项目加载进tomcat并启动tomcat,无异常。

打开ie,输入

http://localhost:8877/TestXFire/services/

出现





表明部署成功,点wsdl可以看见一堆xml代码。



5、  客户端测试

先将刚才建立的TestXFire整个项目打包成jar包,名为TestXFire.jar,再新建一个web项目TestXFireClient,导入xfire的包,和刚才的TestXFire工程的打包TestXFire.jar

在src下新建一个测试类,代码如下:

package com.gdie.xfire.test;



import org.codehaus.xfire.client.XFireProxyFactory;

import org.codehaus.xfire.service.Service;

import org.codehaus.xfire.service.binding.ObjectServiceFactory;



import com.gdie.xfire.example.ITestService;





public class MyClient {

    public static void main(String[] args) {

       try {

           Service serviceModel = new ObjectServiceFactory().create(ITestService.class,"TestService","http://com/gdie/xfire/example/ITestService",null);

           ITestService service = (ITestService)new XFireProxyFactory().create(serviceModel,"http://localhost:8877/TestXFire/services/TestService");

           System.out.println("返回值是"+service.add(12,12));  

       } catch (Exception e) {

           e.printStackTrace();

       }

    }

}



运行,输出结果是:

返回值是24

则说明客户端成功。



至此,webservice部署测试例子成功。

 

上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-05-12 15:28:01
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/108506/
本文WWW.DOC100.NET DOC100.NET版权所有。