使用CXF发布服务接口

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的名称就是访问的WebServicename -->

    <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

如果你能看到wsdlxml文件的内容,就说明服务发布成功了。

注意:服务名称指的是app-context-cxf.xml中配置的address。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值