新建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將不能訪問。