java webservice路径_[Java教程]Web环境使用相对路径发布Webservice

本文介绍了如何在Java Web环境中使用相对路径发布Webservice,特别是在不使用Spring的情况下,通过CXFNonSpringServlet和自定义Servlet实现。详细讲解了配置CxfServlet、CXFNonSpringServlet的使用,以及如何加载Bus并创建JaxWsServerFactoryBean来发布服务。
摘要由CSDN通过智能技术生成

[Java教程]Web环境使用相对路径发布Webservice

0 2015-12-03 20:00:27

常我们的Webservice服务的发布地址都将是一个相对路径,在与Spring一起使用时我们需要引入Cxf配置Webservice的schema,如jaxws,用以定义对应的Webservice。

"1.0" encoding="UTF-8"?>

"http://www.w3.org/2001/

"http://cxf.apache.org/jaxws"

xsi:schemaLocation="

http://www.springframework.org/schema/beans

http://www.springframework.org/schema/beans/spring-beans.xsd

http://cxf.apache.org/jaxws

http://cxf.apache.org/schemas/jaxws.xsd">

然后我们需要定义一个CXFServlet,用以接收对应的Webservice请求,如下所示。

"1.0" encoding="UTF-8"?>

version="3.0"

"http://java.sun.com/

"http://www.w3.org/2001/

xsi:schemaLocation="http://java.sun.com/>

contextConfigLocation

classpath:webservices.

org.springframework.web.context.ContextLoaderListener

CxfServlet

org.apache.cxf.transport.servlet.CXFServlet

CxfServlet

/sys/service/*

这样如果我们想访问HelloWorldService这个Webservice就可以通过相对于当前工程发布路径的/sys/service/helloWorld来访问了。

但是如果我们的工程没有使用Spring,但是我们也想把Webservice发布为工程的某一个路径的相对路径怎么办?Cxf也为我们提供了相应的支持,这比使用Spring时的CXFServlet要麻烦一点。Cxf为我们提供了一个CXFNonSpringServlet,这要求我们实现自己的继承自CXFNonSpringServlet的Servlet,然后重写其loadBus方法,最终需要达到的效果就是CXFNonSpringServlet使用的Bus与我们的发布Webservice时使用的Bus是同一个即可。这样当我们访问CXFNonSpringServlet请求某个Webservice时,CXFNonSpringServlet将自动根据请求的相对路径去寻找发布路径为其相对路径的Webservice。

下载地址java后台框架 springmvc mybaits 集代码生成器

publicclass WebserviceServlet extends CXFNonSpringServlet {

/**

*

*/

privatestaticfinallongserialVersionUID = 3919868434043901738L;

@Override

protectedvoid loadBus(ServletConfig sc) {

super.loadBus(sc);

//获取当前CXFNonSpringServlet使用的Bus,然后利用该Bus来发布服务

Bus bus = this.getBus();

JaxWsServerFactoryBean jsFactoryBean = new JaxWsServerFactoryBean();

jsFactoryBean.setBus(bus);

//该路径是相对于当前CXFNonSpringServlet匹配的路径的,也可以加斜杠

jsFactoryBean.setAddress("helloWorld");

jsFactoryBean.setServiceClass(HelloWorldService.class);

jsFactoryBean.setServiceBean(new HelloWorldServiceImpl());

jsFactoryBean.create();

}

}

这时我们的web.

"1.0" encoding="UTF-8"?>

version="3.0"

"http://java.sun.com/

"http://www.w3.org/2001/

xsi:schemaLocation="http://java.sun.com/>

CxfServlet

com.elim.test.cxf.servlet.WebserviceServlet

1

CxfServlet

/sys/service/*

本文网址:http://www.shaoqun.com/a/164028.html

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:admin@shaoqun.com。

web

0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值