配置文件spring-wsServer.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-4.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd"> <!-- 需要注意两个地方,将CXF所需的配置文件import到Spring容器中,但所需的3个配置文件并不在工程里,而是在Spring容器初始化时自动创建,这里需要显示的将其import进来; 定义了一个Webservice的端点,其中id是其存放在Spring容器中的标识, implementor用于标注实现类, address提供服务的地址. --> <!-- Import Apache CXF Bean Definition --> <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"/> <bean id="wsCodeServiceImpl" class="com.cbt.webservice.impl.WsCodeServiceImpl"/> <!-- 通过Spring创建数据绑定的类--> <bean id="aegisBean" class="org.apache.cxf.aegis.databinding.AegisDatabinding" /> <bean id="jaxWsServiceFactoryBean" class="org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean"> <property name="wrapped" value="true" /> <property name="dataBinding" ref="aegisBean" /> </bean> <jaxws:endpoint id="wsCodeService" implementor="#wsCodeServiceImpl" address="/codeWebService" > <jaxws:serviceFactory> <ref bean="jaxWsServiceFactoryBean" /> </jaxws:serviceFactory> </jaxws:endpoint> </beans>
web.xml
<!-- Apache CXFServlet --> <servlet> <servlet-name>CXFServlet</servlet-name> <servlet-class> org.apache.cxf.transport.servlet.CXFServlet </servlet-class> <load-on-startup>1</load-on-startup> </servlet> <!-- CXFServlet Mapping --> <servlet-mapping> <servlet-name>CXFServlet</servlet-name> <url-pattern>/ws/*</url-pattern> </servlet-mapping>
java代码
接口
package com.cbt.webservice; import javax.jws.WebParam; import javax.jws.WebResult; import javax.jws.WebService; @WebService public interface WsCodeService { @WebResult(name="code") public String getCodeByPrefix(@WebParam(name="codePrefix")String codePrefix); }
接口实现类
package com.cbt.webservice.impl; import javax.jws.WebParam; import javax.jws.WebResult; import javax.jws.WebService; import com.cbt.service.system.CodeService; import com.cbt.webservice.WsCodeService; @WebService public class WsCodeServiceImpl implements WsCodeService { @WebResult(name="code") public String getCodeByPrefix(@WebParam(name="codePrefix")String codePrefix) { //写你的实现功能的代码 } }
启动项目后浏览器访问 http://localhost:8080/spm/ws/codeWebService
说明:spm为你的项目名 ws为你在web.xml中配置的访问路径 codeWebService为你在配置文件中jaxwa:endpoint中的address
若出现类似下图,则发布成功