现在的位置: 首页 > 综合 > 正文

xfire的jaxb2实例

2018年05月21日 ⁄ 综合 ⁄ 共 2952字 ⁄ 字号 评论关闭

一、 用xfire发布WebService

1、完成接口、实现类以及相关的bean代码编写

      本示例中用到的接口、实现类、bean如下:

      接口:

@WebService(name =
"HellowWord", targetNamespace =
"http://webserviceDemo/schema/HelloWord/")

@SOAPBinding(use =
SOAPBinding.Use.LITERAL, parameterStyle =
SOAPBinding.ParameterStyle.WRAPPED)

publicinterface HellowWord

{

    @WebMethod(operationName =
"sayHellow", action =
"")

    publicvoid sayHellow(

            @WebParam(name =
"user", targetNamespace =
"") User user);

 

    @WebMethod(operationName =
"sayAllHellow", action =
"")

    publicvoid sayAllHellow(

            @WebParam(name =
"users", targetNamespace =
"") List<User> users);

}

实现类:

@WebService(name =
"HellowWord", targetNamespace =
"http://webserviceDemo/schema/HelloWord/")

publicclass HelloWordImpl
implements HellowWord

{

 

    publicvoid sayAllHellow(List<User> users)

    {

        if (null == users || users.size() <= 0)

        {

            System.out.println("No people!");

        }

 

        for (User user : users)

        {

            System.out.println(user.getUserName() +
" hellow!");

        }

    }

 

    publicvoid sayHellow(User user)

    {

        if (null == user)

        {

            System.out.println("No people!");

        }

 

        System.out.println(user.getUserName() +
" hellow!");

    }

}

使用到的自定义bean

publicclass User

{

    private String
userName;

    privateintage;

    private String
gender;

    // get\set方法略  

}

2、导入Xfire相关jar

    将已下载的相关xfire所有jar包导入工程(jar包没有按功能区分,有兴趣可以自己研究),本工程的导入方式为,在工程的最上层目录下新建一个lib/xfire目录,将相关jar包拷入该目录,本工程是用Eclips开发的,所以将本工程的.settings/org.eclipse.wst.common.component中添加上<wb-resource
deploy-path="/WEB-INF/lib" source-path="/lib/xfire"/>
,最后执行导入工作,这样做有助于对工程不同功能的jar包进行管理。

3、添加xfire的配置文件

配置文件添加方法一:

在工程的src目录下新建META-INF\xfire\services.xml文件。

配置文件添加方法二:

    该方法可以让工程的结构层次更清晰,在工程的最上层目录下新建conf\META-INF\xfire\services.xml文件,然后将conf目录下的内容设置为编译至WebRoot\WEB-INF\classes目录下即可,其实不论配置文件放在什么地方只要工程编译完成后,在WebRoot\WEB-INF\classes目录中有META-INF\xfire\services.xml即可。

4、完成services.xml配置

本工程配置示例:

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

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

  <service>

    <name>HellWord</name>

    <namespace>http://webserviceDemo/schema/HelloWord/</namespace>

    <serviceClass>server.spi.HellowWord</serviceClass>

    <implementationClass>server.impl.HelloWordImpl</implementationClass>

    <serviceFactory>org.codehaus.xfire.jaxb2.JaxbServiceFactory</serviceFactory>

  </service>

</beans>

配置文件解释:

<name>服务的名称</name>

<namespace>命名空间</namespace>

<serviceClass>接口</serviceClass>

<implementationClass>实现类</implementationClass>

<serviceFactory>如果在接口中加入标注,必须配置此项</serviceFactory>

5、完成web.xml配置

    本工程的配置示例如下:

    <!-- XFire配置 -->

    <servlet>

       <servlet-name>xfire</servlet-name>   
<servlet-class>org.codehaus.xfire.transport.http.XFireConfigurableServlet</servlet-class>

    </servlet>

    <servlet-mapping>

       <servlet-name>xfire</servlet-name>

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

    </servlet-mapping>

    注:

    <servlet-name>、<url-pattern>任意。

6、测试是否发布成功

    启动工程,在浏览器输入http://ip:port/SoapDemo/services/xfire /HellWord?wsdl(其中ip:port为部署工程的ip和端口),查看是否显示WSDL文件(具体wsdl文件是啥东东这里就不做描述了,大家可以自己网上查查),如果显示表示发布成功,否则定位看到底哪出现了问题。

抱歉!评论已关闭.