webservice开发---------如何使用cxf发布soap方式的web服务

使用CXF框架发布web服务,简单易用,下面结合实际案例讲解

一:配置web.xml,CXFServlet 负责截获/pubinterface/services/*的请求


		Apache CXF Endpoint
		cxf
		cxf
		org.apache.cxf.transport.servlet.CXFServlet
		1
	
	
		cxf
		/pubinterface/services/*
	

二:配置cxf对应的beans.xml文件,address为  /OrderInterfaceService




	
	
	
	
    
        
            
        
    

其中jaxws 是配置 SOAP 方式的 Web 服务,有 jaxws:server、jaxws:endpoint、 jaxws:client 三个元素,jaxws:server 和 jaxws:endpoint 是等效的,都用于发布 Web 服务,出 现 jaxws:endpoint 的原因是 JAX-WS 规范中使用 EndPoint 发布 Web 服务,CXF 为了和 JAX-WS 对应,提供了这个与 jaxws:server 功能一样的配置元素;与jaxws可以一样配置的有jaxrs,jaxrs 是 REST 方式的 Web 服务,有 jaxrs:server、jaxrs:client 两个元素。

三:接口定义方法

@WebService
public interface OrderInterfaceService {
	
    /**   
     * @param inputInfo
     * @return
     */
    @WebMethod(operationName = "applyOrder")
    @WebResult(name = "outputInfo")
    String applyOrder(@WebParam(name="inputInfo") String inputInfo);

    /**     
     * @param inputInfo
     * @return
     */
    @WebMethod(operationName = "orderProcessDetail")
    @WebResult(name = "outputInfo")
    String orderProcessDetail(@WebParam(name="inputInfo") String inputInfo);
    
}

四:实现类

@Service
public class OrderInterfaceServiceImpl implements OrderInterfaceService {
    
   //实现类中的方法体无具体意义
    
    @Override
    public String applyOrder(String inputInfo) {   
         return "Interface method : applyOrder, param : " +inputInfo;
    }



    @Override
    public String orderProcessDetail(String inputInfo) {
        //TODO
        return "Interface method : orderProcessDetail, param : " +inputInfo;
    }

}

启动服务,访问发布地址,如案例中项目名称为soc,则wsdl地址为:http://localhost:8080/soc/pubinterface/services/OrderInterfaceService?wsdl,如果为wsdl文档即正确发布

你可能感兴趣的:(webservice,cxf)