星空网 > 软件开发 > Java

Web环境使用相对路径发布Webservice

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

 

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

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

      "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">

 

   <bean id="helloWorld" class="com.elim.test.cxf.service.HelloWorldServiceImpl"/>

 

   <!-- ID可以加斜杠也可以不加 -->

   <jaxws:server id="/helloWorld" serviceBean="#helloWorld" serviceClass="com.elim.test.cxf.service.HelloWorldService" />

 

</beans>

 

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

 

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

 

<web-app 

        version="3.0" 

        "http://java.sun.com/ 

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

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

       

   <context-param>

      <param-name>contextConfigLocation</param-name>

      <param-value>classpath:webservices.

   </context-param>

  

   <listener>

   <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>

   </listener>

  

   <servlet>

      <servlet-name>CxfServlet</servlet-name>

      <servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>

   </servlet>

  

   <servlet-mapping>

      <servlet-name>CxfServlet</servlet-name>

      <url-pattern>/sys/service/*</url-pattern>

   </servlet-mapping>

  

</web-app>

 

         这样如果我们想访问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 {

 

   /**

    *

    */

   private static final longserialVersionUID = 3919868434043901738L;

 

   @Override

   protected void 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"?>

 

<web-app 

        version="3.0" 

        "http://java.sun.com/ 

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

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

       

   <servlet>

      <servlet-name>CxfServlet</servlet-name>

      <servlet-class>com.elim.test.cxf.servlet.WebserviceServlet</servlet-class>

      <load-on-startup>1</load-on-startup>

   </servlet>

  

   <servlet-mapping>

      <servlet-name>CxfServlet</servlet-name>

      <url-pattern>/sys/service/*</url-pattern>

   </servlet-mapping>

  

</web-app>




原标题:Web环境使用相对路径发布Webservice

关键词:web

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

eBay Fulfillment海外仓刊登小贴士! 一键加入EF, 无需为销售额度而烦恼!:https://www.goluckyvip.com/news/5952.html
eBay海外仓没有刊登权限怎么办?海外仓刊登小贴士:https://www.goluckyvip.com/news/5953.html
引爆圣诞流量!TikTok拿下全球下载榜第一:https://www.goluckyvip.com/news/5954.html
2021年东南亚卖家遇到的困难有哪些?| 年度回顾01:https://www.goluckyvip.com/news/5955.html
TikTok引流爆单新机会:https://www.goluckyvip.com/news/5956.html
沙特港口局新规!海运货物必须打托盘:https://www.goluckyvip.com/news/5957.html
七月份适合去日本旅游吗 7月份去日本哪里好玩:https://www.vstour.cn/a/363192.html
凤岗汽车站到松山湖风景区 松岗汽车站到凤凰山怎么坐车:https://www.vstour.cn/a/363193.html
我的浏览记录
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流