SSM集成webservice-绝对能用

ssm集成webservice,我这里用的是CXF,因为对于Axis和Afire来说CXF算是非常好的,这里就不对他们的区别多说了,首先:

1、加入相应的依赖:


        
        
            org.apache.cxf
            cxf-core
            3.2.7
        

        
            org.apache.cxf
            cxf-rt-frontend-jaxws
            3.2.7
        

        
            org.apache.cxf
            cxf-rt-frontend-jaxrs
            3.2.7
        

         
            org.apache.cxf
            cxf-rt-transports-http
            3.2.7
        

        
        
            org.apache.cxf
            cxf-rt-frontend-simple
            3.2.7
        

        
        
            org.apache.cxf
            cxf-rt-wsdl
            3.2.7
        

        
        
            org.apache.cxf
            cxf-rt-bindings-soap
            3.2.7
        

        
        
            org.apache.ws.xmlschema
            xmlschema-core
            2.2.4
        

        
        
            org.apache.cxf
            cxf-rt-databinding-jaxb
            3.2.7
        

        
        
            org.apache.cxf
            cxf-rt-ws-addr
            3.2.7
        

        
        
            org.apache.cxf
            cxf-rt-ws-policy
            3.2.7
        

        
        
            org.apache.neethi
            neethi
            3.1.1
        

        
        
            wsdl4j
            wsdl4j
            1.6.3
        

        
        
            org.codehaus.woodstox
            stax2-api
            3.1.1
        

        
        
            org.codehaus.woodstox
            woodstox-core-asl
            4.4.1
        

        
          com.qcloud
          qcloud-image-sdk
          2.3.3
        

2、在web.xml里加上webservice的servlet


      
        CXFServlet
        org.apache.cxf.transport.servlet.CXFServlet
        1
      

      
      
        CXFServlet
        /webService/*
      

3、在spring.xml加入相应的配置

SSM集成webservice-绝对能用_第1张图片

         xmlns:jaxws="http://cxf.apache.org/jaxws"
         xmlns:soap="http://cxf.apache.org/bindings/soap"

         http://cxf.apache.org/jaxws
         http://cxf.apache.org/schemas/jaxws.xsd

这是图中的配置,位置最好一样,因为ssm框架太操蛋。

4、开始写接口:

import java.util.List;

import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebService;

import com.yltd.cnyun.common.area.entity.Area;
/**
 * 
 * 基于soap的服务
 */
@WebService
public interface TestService {

     // 提供一个对外公开的服务
     @WebMethod(operationName = "sayHellow")
     public String sayHellow(@WebParam(name = "username") String username);

}

实现类:

import java.util.List;

import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebService;

import org.springframework.beans.factory.annotation.Autowired;

import com.yltd.cnyun.common.area.entity.Area;
import com.yltd.cnyun.common.area.service.AreaService;

/**
 * 服务实现类
 */
@WebService    
public class TestServiceImpl implements TestService {

    @Autowired
    AreaService areaService;
    
    
    @WebMethod(operationName = "sayHellow")
    @Override
    public String sayHellow(@WebParam(name = "username")String username) {
        // TODO Auto-generated method stub
        return username+"你好!";
    }
}

5、把写好的接口配置在spring.xml中,项目启动的时候扫描spring.xml自动发布出去


   
    
   
   

两个方式都可以

然后启动项目,访问路径localhost:8080/项目名字/webSerive/webService?wsdl出现,

SSM集成webservice-绝对能用_第2张图片

 

说明你发布成功了。

6、最后一步测试你发布的接口:

@SuppressWarnings("unchecked")
    public static void main(String[] args) throws Exception {
        
        System.out.println("开始调用接口!");
        Properties props = System.getProperties(); 
        props.setProperty("org.apache.cxf.stax.allowInsecureParser", "1"); 
        props.setProperty("UseSunHttpHandler", "true");
        //采用动态工厂方式 不需要指定服务接口
        JaxWsDynamicClientFactory dcf = JaxWsDynamicClientFactory.newInstance();
        Client client = dcf.createClient("http://10.10.26.108:8080/cnyun-web/webService/webService?wsdl");
        Object[] res = client.invoke("sayHellow", "admin");
        System.out.println("Echo response: sayHellow" + res[0]);

}

}

console不报错有数据,就说明你调通了,这里客户端调服务端的时候,我写的是java程序测试用的,相应的jar包比较多,图片给你贴出来:

SSM集成webservice-绝对能用_第3张图片

SSM集成webservice-绝对能用_第4张图片

SSM集成webservice-绝对能用_第5张图片大部分的包是没用的,我去官网把apache.cxf所有的包都到进来了,你用的时候自己删除吧,可能会出现包的版本不一样报错的问题,这都是小问题了,自己搞一下,哪看不懂的可以私信。

你可能感兴趣的:(java,java接口调用)