1.使用idea或eclipse创建随便创建一个普通的web工程
2.在web.xml添加cxf的一个servlet(控制访问路径会用到)/*表示匹配任何路径,增加spring的读取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"> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:config/spring-cxf-webservice.xml</param-value> </context-param> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <servlet> <servlet-name>CXFServlet</servlet-name> <servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>CXFServlet</servlet-name> <url-pattern>/*</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app>
3.在根目录创建我们的spring-cxf-webservice.xml,然后配置相关配置
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:jaxws="http://cxf.apache.org/jaxws" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd"> <import resource="classpath:META-INF/cxf/cxf.xml" /> <import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" /> <import resource="classpath:META-INF/cxf/cxf-servlet.xml" /> <!-- webservice实现类注入 --> <bean id="testInterfaceServer" class="service.impl.TestInterfaceServerImpl" /> <!-- 第一种 --> <jaxws:server id="testInterfaceWs" serviceClass="service.TestInterfaceServer" address="/testInterfaceServer"> <jaxws:serviceBean> <ref bean="testInterfaceServer" /> </jaxws:serviceBean> </jaxws:server> <!-- 第二种 --> <!-- <jaxws:server id="testInterfaceWs" serviceClass="service.TestInterfaceServer" serviceBean="#testInterfaceServer" address="/testInterfaceServer"> </jaxws:server> --> <!-- 第三种 --> <!-- <jaxws:endpoint id="testInterfaceWs" implementor="service.impl.TestInterfaceServerImpl" address="testInterfaceServer"> </jaxws:endpoint> --> </beans>
4.编写接口类和实现类,路径安装xml的serviceClass路径
@WebService(targetNamespace="http://service/com/test/interface") public interface TestInterfaceServer { @WebMethod public String sayHello(String input1); }
@WebService public class TestInterfaceServerImpl implements TestInterfaceServer{ @Override public String sayHello(String input1) { System.out.println("发布成功"); return null; } }
5.发布出来的webservice地址为
加上
然后最后加上?wsdl.