cxf 也可以不依賴spring實現webservice
package com.servlet;import javax.servlet.ServletConfig;
import org.apache.cxf.Bus;
import org.apache.cxf.BusFactory;
import org.apache.cxf.frontend.ServerFactoryBean;
import org.apache.cxf.transport.servlet.CXFNonSpringServlet;
import com.Hello;
import com.HelloImpl;public class WebServelet extends CXFNonSpringServlet { //主要是這一個繼承CXFNonSpringServlet @Overrideprotected void loadBus(ServletConfig sc) {super.loadBus(sc);Bus b=getBus();BusFactory.setDefaultBus(b);HelloImpl hi=new HelloImpl();//實現類ServerFactoryBean sfb=new ServerFactoryBean(); //server工廠sfb.setServiceClass(Hello.class);// 接口類sfb.setAddress("/hi"); //服務請求路徑sfb.setServiceBean(hi);sfb.create();}
}
web.xml 配置
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" 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_2_5.xsd"><display-name></display-name> <servlet><servlet-name>cxfServlet</servlet-name><servlet-class>com.servlet.WebServelet</servlet-class><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>cxfServlet</servlet-name><url-pattern>/ws/*</url-pattern></servlet-mapping>
</web-app>
啟動服務的時候就開啟webservice接口
public static void main(String[] args) {JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();factory.setServiceClass(Hello.class);factory.setAddress("http://localhost:8080/Temp1/ws/hi?wsdl");Hello client = (Hello)factory.create();System.out.println(client.say("foo"));}