当前位置: 代码迷 >> Web前端 >> 经过url调试发布的cxf webservice
  详细解决方案

经过url调试发布的cxf webservice

热度:321   发布时间:2012-10-26 10:30:59.0
通过url调试发布的cxf webservice
一。在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了。
  相关解决方案