设为首页 收藏本站
查看: 480|回复: 0

[经验分享] Web Service框架XFire与Tomcat集成(1)

[复制链接]

尚未签到

发表于 2017-2-6 09:16:56 | 显示全部楼层 |阅读模式
Web Service框架XFireTomcat集成

刘岩

       虽然XFire已经过时,但是无奈上个公司的项目用的是jdk1.4,所以我只能选择了老战车XFire进行Web Service的开发。
       首先先用MyEclipse建立一个web项目,如图所示:
利用myeclipseweb项目添加xfire的支持,如图。
DSC0000.gif
 
利用myeclipseweb项目添加xfire的支持,如图
DSC0001.gif
 
一直点击默认即可,虽然这里是利用myeclipse插件进行的辅助添加,但是我们还是有必要看一下myeclipse为我们做了什么,添加了哪些jar包。
有关xfire的核心jar包如下图:
DSC0002.gif
您最好还是看看都有哪些jar包,要不你的项目经理哪天该说了:“小X啊?你看看哪些jar包是不必要的,咱们的服务器空间可不够啊…………”。连服务器的空间都放不下几十兆的jar包,我只能汗了。
再来看/WebServices/services.xml,这个文件在真正环境中是会被放到到/WebRoot/WEB-INF/classes/META-INF/xfire下面,这个类似于Springweb项目中的配置文件。
这个文件是配置你要暴露的web service的文件的,稍后还会详细阐述。
下面我们看看web.xml修改了些什么东西,web.xml内容如下:
 
<?xml version="1.0" encoding="UTF-8"?>

<web-app xmlns="http://java.sun.com/xml/ns/j2ee"

    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4"

    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee   http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

    <servlet>

       <servlet-name>XFireServlet</servlet-name>

       <servlet-class>

           org.codehaus.xfire.transport.http.XFireConfigurableServlet

       </servlet-class>

       <load-on-startup>0</load-on-startup>

    </servlet>

    <servlet-mapping>

       <servlet-name>XFireServlet</servlet-name>

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

    </servlet-mapping>

    <welcome-file-list>

       <welcome-file>index.jsp</welcome-file>

    </welcome-file-list>

</web-app>

声明了一个Servlet,此XFireServlet拦截了所有关于/services/*的请求,所以对外系统开放的web service的url基本上都是” http;//127.0.0.1:端口/项目/services/服务名”的形式。
下面编写一个接口和一个实现类
接口代码如下:
 
package webservice;

 

/**

 * 暴露成web服务的接口类

 * @author liuyan

 */

public interface WebServiceable {

   

    /**

     *

     * @param name

     * @return

     */

    public String sayHello(String name);

   

}

实现类代码如下:
 
package webservice.impl;

 

import webservice.WebServiceable;

 

/**

 * 暴露成web服务的接口实现类

 * @author liuyan

 */

public class WebServiceImpl implements WebServiceable {

   

    /**

     *

     * @param name

     * @return

     */

    public String sayHello(String name) {

       String message = "加油"+name;

       System.out.println(message);

       return message;

    }

 

}

之后配置一下刚才提到的/WebServices/services.xml文件,将刚刚编写的一般的Java类暴露成Web Service即可。
services.xml文件内容如下:
 
<?xml version="1.0" encoding="UTF-8"?>

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

    <service>

       <name>sayHello</name>

       <serviceClass>webservice.WebServiceable</serviceClass>

       <implementationClass>

           webservice.impl.WebServiceImpl

       </implementationClass>

       <style>wrapped</style>

       <use>literal</use>

       <scope>request</scope>

    </service>

</beans>
说明:
name是暴露的接口方法名,比如你的方法名就是sayHello
serviceClass是接口类路径
implementationClass是借口实现类路径
scope是服务在web容器中的作用域
style是绑定到wsdl的类型,这是以包装的形式绑定到soap
use:不解………………
 
好了让我们发布到Tomcat上面试一下吧。
发布成功后启动Tomcat服务器,输入地址” http://127.0.0.1:8080/xfireClient/services”就能看到所有的web服务项目
DSC0003.gif
 
 
点击那个wsdl链接或者直接在地址栏输入http://127.0.0.1:8080/xfireClient/services/sayHello?wsdl就可以看到相应的wsdl。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-338071-1-1.html 上篇帖子: 《How Tomcat Works》翻译(9) 之 会话管理 下篇帖子: tomcat下jndi数据连接池的配置
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表