使用CXF发布服务接口
2014-04-15 09:45
441 查看
1.服务接口与实现
(1)接口
如果传入参数需要增加@WebParam注解。@WebParam注解是必须的,因为java借口编译后的.class文件不保存参数的名字,所以如果没有加注解,参数将被命名为arg0。使用@WebParam注解,以保证xml文件中参数名字的正确性。
package com.hf.framework.service.invoke; import javax.jws.WebService; /** * 服务接口 */ @WebService publicinterface InterfaceService { public String getTime(); } |
(2)实现
@WebService注解让CXF知道我们希望使用哪个接口来创建WSDL。package com.hf.framework.service.invoke; import java.text.SimpleDateFormat; import java.util.Date; import javax.jws.WebService; /** * 服务接口实现类 */ @WebService(endpointInterface="com.hf.framework.service.invoke.InterfaceService") public class InterfaceServiceImpl implements InterfaceService { @Override public String getTime() { Date date = new Date(); SimpleDateFormat tempDate = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); String datetime = tempDate.format(date); return datetime; } } |
(3)配置
在web.xml中配置Spring与CXF。(Spring在web.xml中的配置在这里我就不贴出来了。)<servlet> <servlet-name>CXFService</servlet-name> <servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>CXFService</servlet-name> <url-pattern>/service/*</url-pattern> </servlet-mapping> |
在配置文件app-context-cxf.xml中,配置需要发布的服务。(app-context-cxf.xml文件就是在Spring的配置文件applicationContext.xml引用的。)
<?xmlversion="1.0"encoding="UTF-8"?> <beansxmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context" xmlns:jaxws="http://cxf.apache.org/jaxws" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 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.xsd http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd"> <importresource="classpath:META-INF/cxf/cxf.xml"/> <importresource="classpath:META-INF/cxf/cxf-extension-soap.xml"/> <importresource="classpath:META-INF/cxf/cxf-servlet.xml"/> <beanid="interfaceServiceBean"class="com.hf.framework.service.invoke.InterfaceServiceImpl"/> <!--注意下面的address,这里的address的名称就是访问的WebService的name --> <jaxws:serverid="interfaceService"serviceClass="com.hf.framework.service.invoke.InterfaceService"address="/interfaceService"> <jaxws:serviceBean> <!--配置bean的引用 --> <refbean="interfaceServiceBean"/> </jaxws:serviceBean> </jaxws:server> </beans> |
(4)启动
下面启动tomcat服务器后,在浏览器中请求:http://服务IP:端口/项目名称/服务名称?wsdl
如果你能看到wsdl的xml文件的内容,就说明服务发布成功了。
注意:服务名称指的是app-context-cxf.xml中配置的address。
相关文章推荐
- 使用cxf发布rest服务接口,和spring的整合
- 使用Cxf发布Webservice服务,如果待发布的接口中有重载方法,怎么处理??[转]
- 使用Cxf发布Webservice服务,如果待发布的接口中有重载方法,怎么处理??
- 使用CXF发布WebService服务简单实例
- 使用CXF发布WebService服务简单实例
- 使用CXF框架搭建WebService服务接口
- Webservice的cxf开发_使用spring发布服务+ajax调用服务
- CXF之使用工厂方法(java代码)发布服务与进行客户端调用
- 使用CXF发布基于maven的REST webservice接口
- 用cxf在web工程中添加webService接口,发布webService服务
- 使用cxf-rs发布服务启动报错:org.springframework.beans.factory.NoSuchBeanDefinitionException
- webservice(三) 使用JDK的EndPoint和cxf框架分别发布webservice服务
- java开发中使用CXF发布rest风格的webservice服务
- CXF之使用jaxws API 发布服务与进行客户端调用
- 使用CXF发布webservice服务及注意要点
- 关于ArcGis发布离线地图服务并使用JS接口访问地图
- 使用CXF(JaxWsServerFactoryBean、ServerFactoryBean)编码的方式发布WebService服务
- CXF之使用CXF API 发布服务与进行客户端调用
- webservice接口常见问题1:客户端使用SOAP方式调用CXF服务时异常
- 使用 Spring + CXF 发布 REST 服务(jax-RS)