后边有个项目需要接入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包,不过不知道是版本问题还是其他的,我这里并没有导入这些
包。


使用xfire搭建webService服务的更多相关文章

  1. 使用CXF和spring搭建webService服务

    虽然下一个项目需要使用xfire,但是在查资料的过程中还是看到有不少地方都说cxf比xfire更好,cxf继承了xfire,但是不仅仅包含xfire,因此便也一起来尝试尝试.大概是有了xfire的经验 ...

  2. XFire搭建WebService和客户端访问程序

    开发环境:myeclipse8.6+jdk1.6.0_29+tomcat6.0.37 JAX-WS搭建webservice:http://www.cnblogs.com/gavinYang/p/352 ...

  3. CXF+Spring搭建webservice服务

    Apache CXF 是一个开源的 Services 框架,CXF 帮助您利用 Frontend 编程 API 来构建和开发 Services ,像 JAX-WS .这些 Services 可以支持多 ...

  4. 使用cxf3.0.4搭建webservice服务需要的最精简jar包

    转自:https://blog.csdn.net/w1014074794/article/details/47862163 下面是测试结果,只列出报错了的测试: 1.org.apache.catali ...

  5. Spring Boot+CXF搭建WebService服务参考资料

    pom.xml文件引入包: <!--WerbService CXF依赖--> <dependency> <groupId>org.apache.cxf</gr ...

  6. java 搭建webservice服务+testclient測试

    整理别人的日志: 一.什么是webservice 一种构建应用程序的普遍模型,能够在不论什么支持网络通信的操作系统中执行.一种新的web应用程序分支,能够公布.定位通过web调用.它是一个应用组件,为 ...

  7. java之搭建webservice服务端

    1.新建工程. 2.配置项目名称和位置. 3.得到的项目结构如下: 4.配置tomcat服务器. (1) (2)新建一个tomcat服务. (3)配置tomcat参数. 5.配置WSDL文件. url ...

  8. Maven+Spirng+Mybatis+CXF搭建WebService服务

    https://jingyan.baidu.com/article/39810a23b1de2fb637fda66c.html

  9. Maven搭建webService (一) 创建服务端---使用main函数发布服务

    今天和大家分享下 使用maven 搭建 webService 服务端: 首先需要在你的IDE中集成Maven.集成办法此处略....... 1.创建一个web工程. 2.在pom文件中增加以下依赖: ...

随机推荐

  1. LVS负载均衡介绍

    LVS介绍 负载均衡器 • 链路负载均衡 (三层负载均衡) • 服务器负载均衡 (四层负载均衡) • 应用层负载均衡 (七层负载均衡) • 全局负载均衡 基本情况 • 实现服务器负载均衡 • 核心功能 ...

  2. SpringMVC空字符串转为null

    空字符串转为null 现在我遇到这样一个需求,那就是我想要吧前端传过来的值变为空,因为所谓前端的校验,其实都不是校验,如果前端传给后台一个表单,可是表单未填入值,我们后台进行判断的时候 既需要判断nu ...

  3. Java在已存在的pdf文件中生成文字和图片--基础

    自我总结,有什么不足之处请告知,感激不尽!下一次总结pdf模板映射生成报表(应对多变的pdf报表需求,数据提供和报表生成解耦). 目的:在给定的pdf模板上生成报表,就需要知道最基本的操作:文字添加, ...

  4. Python中的浅拷贝与深拷贝

    编者注:本文主要参考了<Python核心编程(第二版)> 以下都是参考资料后,我自己的理解,如有错误希望大家不吝赐教. 大家有没有遇到这样一种情况,对象赋值后,对其中一个变量进行修改,另外 ...

  5. ORM规约变更经典案例---mysql军规

    先介绍一下<MySQL数据库开发的三十六条军规>,这里只介绍核心的,具体内容大家可以自行百度,这是从底层开发人员到管理者必须知道规范.出自58赶集. 写在前面的话: 总是在灾难发生后,才想 ...

  6. 二维码开源库ZBar-windows下编译和使用

    源码 下载最新Zbar源码(http://zbar.sourceforge.net/),网站的WIKI是空白的,所以只能在源码包里找使用说明了,很遗憾Windows下怎么编译没说明,只是说明了Wind ...

  7. 使用echarts水球图

    使用echarts水球图 官方实例中没有水球图样式,当我们需要用到水球图的时候需要下载echarts-liquidfill.js. 使用 在echarts之后引入 echarts-liquidfill ...

  8. Jenkins配置备份恢复插件ThinBackup

    一.系统管理-管理插件-找到ThinBackup并安装 二.系统管理-找到ThinBackup-点击Setting进行设置 第一个参数备份目录是必选,其它可选,点保存. 三.保存后返回到ThinBac ...

  9. 洛谷 P2622 关灯问题II【状压DP;隐式图搜索】

    题目描述 现有n盏灯,以及m个按钮.每个按钮可以同时控制这n盏灯--按下了第i个按钮,对于所有的灯都有一个效果.按下i按钮对于第j盏灯,是下面3中效果之一:如果a[i][j]为1,那么当这盏灯开了的时 ...

  10. 图论算法-最小费用最大流模板【EK;Dinic】

    图论算法-最小费用最大流模板[EK;Dinic] EK模板 const int inf=1000000000; int n,m,s,t; struct node{int v,w,c;}; vector ...