CXF部署到tomcat(不結合spring)

新建web工程引入cxf包,筆者使用的是cxf2.7.7版本,以下是必須jar架包

此處不帶jetty和spring的依賴包。出現Cannot create a secure XMLInputFactory異常提示時通常是少了woodstox-core-asl-4.2.0.jar或stax2-api這兩個包,少這兩個包服務能夠啓動成功,但客戶端連接web service時就出現錯誤提示了。加入後可能還需要重啓下eclipse(反正我是重啓後才解決的~_~)

1. cxf要部署到tomcat需要藉助cxf的CXFNonSpringServlet類,繼承該類代碼示例如下:

public class CxfPublishServlet extends CXFNonSpringServlet
{
	private static final long serialVersionUID = 1L;
	
	@Override
	public void loadBus(ServletConfig sc)
	{
	    super.loadBus(sc);
	    Bus bus = getBus();
	    BusFactory.setDefaultBus(bus);
	    Endpoint.publish("/queryuser",new QueryUserImpl());//此時的服務地址已經變成http://你的應用地址/queryuser
	}
}

2.在web.xml中加入配置
 <servlet>
  <description>publsh web serivces</description>
  <display-name>CxfPublishServlet</display-name>
  <servlet-name>CxfPublishServlet</servlet-name>
  <servlet-class>net.itfad.beans.CxfPublishServlet</servlet-class>
  <load-on-startup>1</load-on-startup>
 </servlet>
 <servlet-mapping>
  <servlet-name>CxfPublishServlet</servlet-name>
  <url-pattern>/*</url-pattern>
 </servlet-mapping>
啓動tomcat一切就OK了。
注意load-on-startup
另外,servlet配置的路徑比如改爲/ws/*,此時loadBus中服務url不變,仍然是正確訪問。而如果url改爲/ws/queryuser將不能訪問。


發佈了34 篇原創文章 · 獲贊 6 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章