使用xfire搭建webService服务

简介: 后边有个项目需要接入4A,要用到webService服务,暂时还不确定是不是会有我的事,但为了有备无患,还是抽时间学习了以下相关的知识。本来我所了解到的发布webService服务有用cxf和xfire两种,但这个项目明确说了需要用xfire,因此便先学习一下这个。参考网上一些文档,搭建的过程大概如下:一、环境基础:eclipse4.4.1、maven3.2.5、tomcat7、jdk
后边有个项目需要接入4A,要用到webService服务,暂时还不确定是不是会有我的事,但为了有备无患,还是抽时间学习了以下相关的知识。

本来我所了解到的发布webService服务有用cxf和xfire两种,但这个项目明确说了需要用xfire,因此便先学习一下这个。参考网上一些文档,搭建的过程大概如下:

一、环境基础:eclipse4.4.1、maven3.2.5、tomcat7、jdk1.7;

二、搭建过程:
  
  1、下载依赖jar包:由于看到那些xfire入门教程中都说要先下载 XFire 框架的安装包,而我在那些文章里提供的官网都没有找到下载的地方,于是只好放弃掉,最终在csdn中下载到,这些包如下图所示:
  

  
  2、使用eclipse创建一个maven web项目,创建完基本结构如图(由于我的eclipse有些问题,导致项目名上有个红叉,不影响功能):
   
 
    
3、在src下的 webapp的WEB-INF下创建一个lib文件夹,然后把下载好的xfire的依赖jar包粘贴进来,并选中lib中所有的jar包右键加入到build path中,如图:
   

   
4、在 /src/main/resources下建立META-INF/xfire文件夹,然后在里边创建services.xml,xml文件最终的配置代码如下:
  
<?xml version="1.0" encoding="UTF-8"?>
 <!--  beans xmlns="http://xfire.codehaus.org/config/1.0">-->
<beans>
    <service xmlns="http://xfire.codehaus.org/config/1.0">
    <!-- webService服务的名称 -->
    <name>HelloWorld</name>
    <namespace>http://xfireTest/HelloWorldService</namespace>
    <!-- 自己所写的接口路径 -->
    <serviceClass>
        xfireTest.HelloService
    </serviceClass>
    <!-- 实现类路径 -->
    <implementationClass>
        xfireTest.HelloWorldServiceImpl
    </implementationClass>

</service>
</beans>


5、配置web.xml文件,内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">

      <display-name>xfireTest</display-name>
      <description>
         使用eclipse和maven搭建基于XFire框架发布Web服务的例子
      </description>

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

6、创建相关的业务逻辑代码,如下:
  service接口:
 
package xfireTest;
public interface HelloService {
    /**
     * Hello 方法声明了 Web 服务对外暴露的接口
     * 
     * @return 返回给客户端的字符串
     */
    public String Hello();
}

  实现类:
package xfireTest;
public class HelloWorldServiceImpl implements HelloService {

    /*
     * Hello 方法为 HelloWorldService 服务接口定义的 sayHello 方法提供具体实现
     */
    public String Hello() {
        return "HelloWorld!";
    }

}


  7、如上基本上就搭建完成了,但是当我启动的时候出现了如下的异常:
 
 警告: Failed to scan JAR [file:/D:/eclipseWorkspace1/.metadata/.plugins/org.eclipse.wst.server.core/tmp1/webapps/xfireTest/WEB-INF/lib/XmlSchema-1.1.jar] from WEB-INF/lib
java.util.zip.ZipException: zip file is empty

检查之后才发现这个下载的包中。这个jar是空的,从第一张图中也可以看到字节数是0.于是只好从网上重新下载这个包再放进去。再启动之后可以正常访问,证明webService服务发布成功,访问如图:



8、另外,在查资料的时候又看到有的地方说需要 xalan相关的jar包,不过不知道是版本问题还是其他的,我这里并没有导入这些
包。


目录
相关文章
|
存储 弹性计算 缓存
ecs负载评估
ECS负载评估基于资源综合性能得分,衡量CPU、内存、磁盘I/O、网络和系统负载等指标。得分0-5为低负载,5-80正常,80-100高负载。高负载可能需优化或扩容。根据负载级别,可调整资源配置、优化性能或使用自动伸缩服务,确保服务稳定和高效。
454 2
|
7月前
|
域名解析 监控 网络协议
DNS防火墙软件版发布上线
DNS防火墙软件版发布,支持私有化部署,通过实时过滤和监控DNS流量,阻断恶意域名解析请求,从而防止用户或系统访问网络钓鱼网站、恶意软件分发站点等高风险目标。欢迎咨询购买
完美解决Non-terminating decimal expansion; no exact representable decimal result.异常
完美解决Non-terminating decimal expansion; no exact representable decimal result.异常
26999 0
完美解决Non-terminating decimal expansion; no exact representable decimal result.异常
【Qt 学习笔记】Qt窗口 | 对话框 | Qt对话框的分类及介绍
【Qt 学习笔记】Qt窗口 | 对话框 | Qt对话框的分类及介绍
373 3
|
网络协议 Linux 网络安全
linux中跟踪路由命令,Linux命令:traceroute命令(路由跟踪)
【8月更文挑战第3天】traceroute是用来检测发出数据包的主机到目标主机之间所经过的网关数量的工具
610 5
|
存储 Ubuntu Oracle
如何在 Ubuntu 上完全卸载 Java?
如何在 Ubuntu 上完全卸载 Java?
1465 0
如何在 Ubuntu 上完全卸载 Java?
|
数据可视化 数据建模 数据安全/隐私保护
|
存储
Oracle-AWR管理包DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS
Oracle-AWR管理包DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS
314 0
「企业安全架构」EA874:信息安全架构
「企业安全架构」EA874:信息安全架构