一、编写servlet
package com.rick.servlet;
import javax.servlet.ServletConfig;
import org.apache.cxf.frontend.ServerFactoryBean;
import org.apache.cxf.transport.servlet.CXFNonSpringServlet;
import com.rick.test.testCXF;
@SuppressWarnings("serial")
public class CXFWebServices extends CXFNonSpringServlet {
public void registService(String serviceName, Object impl)
{
// JaxWsServerFactoryBean svcFactory = new JaxWsServerFactoryBean();
// svcFactory.setServiceClass(impl.getClass());
// svcFactory.setAddress("/" + serviceName);
// svcFactory.setServiceBean(impl);
// Server tsWsEndPointServer = svcFactory.create();
// tsWsEndPointServer.start();
ServerFactoryBean svrFactory = new ServerFactoryBean();
svrFactory.setServiceClass(impl.getClass());
svrFactory.setAddress("/" + serviceName);
svrFactory.setServiceBean(impl);
svrFactory.create();
}
public void loadBus(ServletConfig servletConfig)
{
super.loadBus(servletConfig);
try {
registService(testCXF.class.getSimpleName(), testCXF.class.newInstance());
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
}
二、编写发布服务的类
package com.rick.test;
public class testCXF {
public String getHello(String name){
return "hello " + name;
}
}
三、web.xml添加servlet
<servlet>
<servlet-name>WebServletXfire</servlet-name>
<servlet-class>com.rick.servlet.CXFWebServices</servlet-class>
<load-on-startup>0</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>WebServletXfire</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>
四、在web中的lib目录添加必要的jar