由于单位硬是不给引进Spring的包,于是本人花了一天研究出这个方法.
官方上面的指引不是很清晰,网上的资料又大多没有什么内涵,于是自己看CXF的源码了.
好,废话就不多说了.
1.把web.xml中的CXFServlet的全类名替换成org.apache.cxf.transport.servlet.CXFNonSpringServlet
2.把cxf核心那个包中的META-INF/cxf/bus-extension.xml中的<extension class="org.apache.cxf.transport.http_jetty.JettyHTTPTransportFactory" deferred="true">替换成<extension class="org.apache.cxf.transport.servlet.ServletTransportFactory" deferred="true">
3.发布方式为代码方式,可做成配置方式
HelloWorldImpl helloImpl=new HelloWorldImpl();
Endpoint.publish("/HelloWorld", helloImpl);
这样就可以了,spring相关的包可以去掉,beans.xml也可以去掉.
另外那个CXFNonSpringServletServer误导了我,我学着加了setDefaultBus()这个方法结果覆盖了原来的bus,调了好长的时间.....
分享到:
评论