国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Web環境使用相對路徑發布Webservice

2019-11-14 14:54:59
字體:
來源:轉載
供稿:網友

常我們的Webservice服務的發布地址都將是一個相對路徑,在與SPRing一起使用時我們需要引入Cxf配置Webservice的schema,如jaxws,用以定義對應的Webservice。

 

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

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

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

      xmlns:jaxws="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請求,如下所示。

 

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

 

<web-app 

        version="3.0" 

        xmlns="http://java.sun.com/xml/ns/javaee" 

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

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

       

   <context-param>

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

      <param-value>classpath:webservices.xml</param-value>

   </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.xml需要定義我們自己的CXFNonSpringServlet,即:

 

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

 

<web-app 

        version="3.0" 

        xmlns="http://java.sun.com/xml/ns/javaee" 

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

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

       

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


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 灌南县| 井冈山市| 龙井市| 安新县| 长乐市| 土默特左旗| 吐鲁番市| 库车县| 化德县| 长乐市| 周宁县| 滁州市| 兴宁市| 文山县| 天全县| 贡觉县| 临桂县| 封开县| 蚌埠市| 苍南县| 安康市| 醴陵市| 兰坪| 宜昌市| 固原市| 长乐市| 黄冈市| 宜良县| 元江| 武功县| 扎赉特旗| 增城市| 孝昌县| 四子王旗| 神木县| 万盛区| 黄大仙区| 美姑县| 会理县| 南丹县| 剑阁县|