一。在web.xml中配置cxf 注意<url-pattern>/ws/*</url-pattern>配置,cxf会拦截此类url,进行处理
<servlet> <servlet-name>CXFServlet</servlet-name> <servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>CXFServlet</servlet-name> <url-pattern>/ws/*</url-pattern> </servlet-mapping>
二 写要发布的接口及其实现类
@WebService
public interface UserWebService { public SSOUser getSSOUser(String ticket); } //这儿的targetNamespace 一定要包含 /ws @WebService(endpointInterface = "com.suantop.sso.ws.UserWebService", targetNamespace = "http://localhost:8080/sso/ws") public class UserWebServiceImpl implements UserWebService { public SSOUser getSSOUser(String ticket){ RegisterUser ru = UserCenter.get(ticket); if(ru != null){ return new SSOUser(ru.getId(), ru.getPassword()); } return null; } }
三 写spring配置文件
<?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:jaxws="http://cxf.apache.org/jaxws" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd" default-autowire="byType" default-lazy-init="true"> <import resource="classpath:META-INF/cxf/cxf.xml" /> <import resource="classpath:META-INF/cxf/cxf-servlet.xml" /> <import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" /> <!-- jax-ws endpoint定义 --> <jaxws:endpoint id="userWebServiceEP" address="/UserService"> <jaxws:implementor ref="userWebService" /> </jaxws:endpoint> <!-- 实现WebService的bean --> <bean id="userWebService" class="com.suantop.sso.ws.UserWebServiceImpl" /> </beans>
Ok 启动tomcat
输入url:http://localhost:8080/sso/ws/UserService?wsdl
会出wsdl文件
发布成功
1 楼
f_zongjian
2008-11-24
参照着敲了一遍,结果是No Service is found。
修改了两个地方:
1.web.xml中增加如下内容
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>WEB-INF/beans.xml</param-value>
</context-param>
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
2.接口UserWebService前加了注解:@WebService
这样运行了一下,OK了。
修改了两个地方:
1.web.xml中增加如下内容
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>WEB-INF/beans.xml</param-value>
</context-param>
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
2.接口UserWebService前加了注解:@WebService
这样运行了一下,OK了。