使用xfire搭建webService服务
发布时间:2020-12-16 22:12:31 所属栏目:安全 来源:网络整理
导读:后边有个项目需要接入4A,要用到webService服务,暂时还不确定是不是会有我的事,但为了有备无患,还是抽时间学习了以下相关的知识。 本来我所了解到的发布webService服务有用cxf和xfire两种,但这个项目明确说了需要用xfire,因此便先学习一下这个。参考网
后边有个项目需要接入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包,不过不知道是版本问题还是其他的,我这里并没有导入这些
包。
参考:http://www.voidcn.com/article/p-qppmqmag-bx.html
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- angularjs – 使有角滤波器有条件
- Sublime复古模式(vim)删除,猛拉,改为正则表达式
- file-upload – Angular 2从输入类型=文件上传文件
- linux – Docker持续部署工作流程
- ruby-on-rails – 添加除Dockerfile之外的项目文件夹
- scala – 在sbt中添加仅编译时子项目依赖项
- anglejs – 使用角度材料与量角器进行E2E测试有任何问题吗?
- 当父级调整大小更改时,Angular2组件侦听
- c# – 如何确定为什么Enyim memcache在存储项目时返回false
- 是否可以使用名为vimfiles的文件夹替换macvim中的.vim?