XFire入门示例

本文介绍了XFire,一个简化Java EE应用中Web服务发布的工具。虽然XFire已升级为CXF,但在某些旧系统中仍被使用。文章详细阐述了XFire的环境搭建步骤,包括项目结构、web.xml配置,并提供了一个简单的IHelloWebService接口及其实现类HelloWebServiceImpl的示例。此外,还展示了如何通过WSDL动态生成客户端进行服务器访问。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

XFire是新一代的Java Web服务引擎,XFire使得在JavaEE应用中发布Web服务变得轻而易举。和其他Web服务引擎相比,XFire的配置非常简单,可以非常容易地和Spring集成,它使得Java开发人员终于可以获得和.Net开发人员一样的开发效率。(百度百科)
现在的XFire已经升级为CXF,但是在以前的系统中仍然存在使用XFire,因为工作中用到这个东西,所以用一片博文来讲下。

XFire环境搭建:
1.项目的结构:
注意导入这些jar包
2.在web.xml文件中配置Servlet过滤器如下:

    <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>

环境搭建已经完成,接下来通过一个Demo来深入的理解具体的实现过程。
示例Demo:
1)定义一个接口:IHelloWebService.java

public interface IHelloWebService {

    public String sayHi(String message);
}

2)定义一个接口的实现类HelloWebServiceImpl.java

public class HelloWebServiceImpl implements IHelloWebService {

      public String sayHi(String message){
         return "Hi,"+message;
     }

3)在项目src/META-INF/xfire下新建一个services.xml文件(可参上面的看目录结构图)

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://xfire.codehaus.org/config/1.0">
    <service>
        <name>HelloWebService</name>
        <serviceClass>com.service.IHelloWebService</serviceClass>
        <implementationClass>
            com.service.HelloWebServiceImpl
        </implementationClass>
        <style>wrapped</style>
        <use>literal</use>
        <scope>application</scope>
    </service>
</beans>

以上已完成搭建,将项目发布到Tomcat中。接下来通过一个客户端对服务器进行访问。
客户端代码:

  1. 项目目录结构:
    这里写图片描述

    2.客户端实现连接有多种方式:
    a)使用WSDL动态地理的方式连接:

public class XfireDemo {

    public static void main(String[] args) throws MalformedURLException, Exception {
    //url为访问web项目中的services.xml中的路径
           Client client = new Client(new URL("http://localhost:8080/WebServiceServer1/services/HelloWebService?wsdl"));
           //通过反射获取方法,并传递参数
        Object[] results = client.invoke("sayHello", new Object[] {"hello"});
        System.out.println((String) results[0]);  
    }
}

输出结果:Hello, hello

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值