zoukankan      html  css  js  c++  java
  • CXF入门例子

    1、 WebService实现类:@WebService注解表示这个类发布为一个WebService服务。

    package com.coshaho.learn.cxf;
    
    import javax.jws.WebService;
    
    /**
     * WebService实现类不继承接口,则所有WebService相关注解需要写在实现类中
     * @author coshaho
     *
     */
    @SuppressWarnings("restriction")
    @WebService(name="HelloWoldService")
    public class HelloWorldServiceImpl
    {
        public String sayHello(String username) 
        {
            return "Hello " + username + "!";
        }
    }

    2、发布服务。

    package com.coshaho.learn.cxf;
    
    import org.apache.cxf.endpoint.Server;
    import org.apache.cxf.jaxws.JaxWsServerFactoryBean;
    
    public class CXFServer 
    {
        public static void main(String[] args)
        {
            JaxWsServerFactoryBean factoryBean = new JaxWsServerFactoryBean();
            
            // Web服务的地址
            factoryBean.setAddress("http://localhost:8081/hello");
    
            // Web服务对象调用接口
            factoryBean.setServiceClass(HelloWorldServiceImpl.class);
            Server server = factoryBean.create();
            server.start();
        }
    }

    3、WebService客户端模拟接口:CXF客户端接口参数名称(@WebParam),方法名称(@WebMethod),返回值名称(@WebResult)需要与WebService服务端实现类或接口保持一致。

    package com.coshaho.learn.cxf;
    
    import javax.jws.WebService;
    
    /**
     * CXF客户端接口参数名称(@WebParam),方法名称(@WebMethod),返回值名称(@WebResult)需要与WebService服务端实现类或接口保持一致
    *
    @author coshaho * */ @SuppressWarnings("restriction") @WebService public interface HelloWoldClientServiceI { public String sayHello(String userName); }

    4、客户端调用WebService服务。

    package com.coshaho.learn.cxf;
    
    import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;
    
    public class CXFClient 
    {
        public static void main(String[] args)
        {
            JaxWsProxyFactoryBean factoryBean = new JaxWsProxyFactoryBean();
    
            //获取服务器端
            factoryBean.setAddress("http://localhost:8081/hello");
    
            //通过客户端的接口获取服务器端的接口
            factoryBean.setServiceClass(HelloWoldClientServiceI.class);
            HelloWoldClientServiceI hello =(HelloWoldClientServiceI) factoryBean.create();
            System.out.println(hello.sayHello("CXF"));
        }
    }

    5、如果服务端实现类继承于一个接口,则可以在接口中写明WebService相关注解,实现类省略注解。

    package com.coshaho.learn.cxf;
    
    import javax.jws.WebService;
    import javax.jws.WebMethod;
    import javax.jws.WebParam;
    import javax.jws.WebResult;
    
    /**
     * WebService实现类可以继承WebService接口,所有WebService相关注解写在接口中
     * @author coshaho
     *
     */
    @SuppressWarnings("restriction")
    @WebService(name="HelloWoldService")
    public interface HelloWoldServiceI 
    {
        @WebMethod(operationName="sayHelloWorld")
        @WebResult(name="result")
        public String sayHello(@WebParam(name="userName") String username);   
    }
  • 相关阅读:
    Python驱动SAP GUI完成自动化(三)
    Python驱动SAP GUI完成自动化(选择布局+动态获取节点值)
    python中如何将货币数字转化成汉字大写金额
    python requests无法上传中文文件名的文件
    requests库结合selenium库共同完成web自动化和爬虫工作
    利用python第三方库提取PDF文件的表格内容
    pyinstaller打包exe文件闪退的解决办法
    pandas数据分析小知识点(一)
    java 终端输入小结,输入到数组、文件等(持续更新)
    Maven jenkins +Jmeter自动化测试
  • 原文地址:https://www.cnblogs.com/coshaho/p/5105364.html
Copyright © 2011-2022 走看看