后边有个项目需要接入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. use zlib lib to compress or decompress file

    If you want to compress or decompress file when writing C++ code,you can choose zlib library,that's ...

  2. sql集锦

    1. emp表中取出1981年入职的员工信息--sql select * from emp where extract(year from emp.hiredate)='1981'; ...陆续添加

  3. Go笔记-map

    [概念]     1- map 是引用类型的     2- 声明方式         var map1 map[keytype]valuetype             例如:var map1 ma ...

  4. linux中sed在指定字符前后添加内容

      假设文档内容如下: [root@localhost ~]# cat /tmp/input.txt null 000011112222 test 要求:在1111之前添加AAA,方法如下: sed ...

  5. #1280 : Rikka with Sequence II [meet int the middle]

    tle弃疗了 等着回学校找个标程拍一下吧 #include <iostream> #include <cstdio> #include <cstring> #inc ...

  6. Go基础之--反射

    反射:可以在运行时动态获取变量的相关信息 反射需要导入reflect 反射中重要函数的演示 反射有几下几个重要的函数:reflect.TypeOf :获取变量的类型,返回reflect.Type类型r ...

  7. The SSL certificate used to load resources from xxx will be distrusted in M70.

    今天在浏览网站的时候遇到如下报警信息: The SSL certificate used to load resources from https://xxx.com will be distrust ...

  8. ajax请求 readyState为0 可能原因之一

    问题:同样的代码逻辑,PC端和iOS都能正常访问,但是Android系统请求都是报错: 上网查阅,关于ajax请求失败且状态码都是0的情况有很多,最后排查的原因是:域名证书问题:

  9. Netty的常用概念

    我们先来看一段代码: // Configure the server. EventLoopGroup bossGroup = new NioEventLoopGroup(1); EventLoopGr ...

  10. 【基础】26个命令玩转linux,菜鸟及面试必备

    1 查看目录与文件:ls #显示当前目录下所有文件的详细信息 ls -la 2 切换目录:cd #切换当前目录为/opt/test cd /opt/test 3 显示当前目录:pwd pwd 4 创建 ...