zoukankan      html  css  js  c++  java
  • WebService CXF

    import javax.jws.WebParam;
    import javax.jws.WebResult;
    import javax.jws.WebService;
    
    @WebService(serviceName="languageManager")
    public interface LanguageService {
        public @WebResult(name="language")String getLanguage(@WebParam(name="position")int position);
    
    }
    import org.apache.cxf.frontend.ServerFactoryBean;
    import org.apache.cxf.interceptor.LoggingInInterceptor;
    import org.apache.cxf.interceptor.LoggingOutInterceptor;
    import org.apache.cxf.jaxws.JaxWsServerFactoryBean;
    
    /**开发语言排行描述服务
     * 
     * */
    public class LanguageServiceImpl implements LanguageService {
        /* (non-Javadoc)
         * @see cn.it.ws.cxf.a.LanguageService#getLanguage(int)
         */
        @Override
        public String getLanguage(int position){
            String language=null;
            switch (position) {
            case 1:
                language="java"; 
                break;
            case 2:
                language="C";
                break;
            case 3:
                language="Objective-C";
                break;  
            case 4:
                language="C#";
                break;
    
            default:
                break;
            }
            return language;
        }
        /**通过cxf框架发布webservice
         *  1. ServerFactoryBean
         *    - 不设置注解也可以发布webservice服务, 不支持注解
         *    - 不支持拦截器的添加
         *  2. JaxWsServerFactoryBean
         *    - 支持注解
         *    - 可以添加拦截器
         *  3. webservice 访问流程:
         *    1. 检测本地代理描述的wsdl是否与服务端的wsdl一致 ,俗称为握手
         *    2. 通过soap协议实现通信 ,采用的是post请求 , 数据封装在满足soap规约的xml中
         *    3. 返回数据 同样采用的是soap通信,  数据封装在满足soap规约的xml中
         * @param args
        
        public static void main(String[] args) {
            LanguageService languageService=new LanguageServiceImpl();
            ServerFactoryBean bean=new ServerFactoryBean();
            //Endpoint :地址  , 实现对象
            bean.setAddress("http://192.168.114.10:9999/ws/cxf/languangeService");
            bean.setServiceClass(LanguageService.class);//对外提供webservcie的业务类或者接口
            bean.setServiceBean(languageService);//服务的实现bean
            bean.create();//创建,发布webservice
            System.out.println("wsdl地址:http://192.168.114.10:9999/ws/cxf/languangeService?WSDL");
        }
         */
        public static void main(String[] args) {
            LanguageService languageService=new LanguageServiceImpl();
            JaxWsServerFactoryBean bean=new JaxWsServerFactoryBean();
            //Endpoint :地址  , 实现对象
            bean.setAddress("http://192.168.114.10:9999/ws/cxf/languangeService");
            bean.setServiceClass(LanguageService.class);//对外提供webservcie的业务类或者接口
            bean.setServiceBean(languageService);//服务的实现bean
            //添加输入拦截器  :输入显示日志信息的拦截器
            bean.getInInterceptors().add(new LoggingInInterceptor());
            //添加输出拦截器  :输出显示日志信息的拦截器
            bean.getOutInterceptors().add(new LoggingOutInterceptor());
            
            bean.create();//创建,发布webservice
            System.out.println("wsdl地址:http://192.168.114.10:9999/ws/cxf/languangeService?WSDL");
        }
    
    }
    public class Test {
      /**测试有CXF框架发布的webservice服务
       * 
       * @param args
       */
        public static void main(String[] args) {
            LanguageManager ws=new LanguageManager();
            LanguageService languageServicePort = ws.getLanguageServicePort();
            System.out.println(languageServicePort.getLanguage(1));
        }
    
    }
  • 相关阅读:
    jQuery基础 如何处理网页内容
    jQuery基础 如何判断页面元素存在与否
    什么是 JSON
    动软Codematic生成SQL代码与CodeSmith生成NHibernate代码区别
    jQuery基础 树形结构的选择器
    C# 将汉字转换成拼音
    改善你的jQuery的25个步骤 从头看完会有无数收获,千倍级效率提升
    jQuery基础 添加/移除CSS类
    让数据库支持VS一样的智能提示
    循环输出多维数组
  • 原文地址:https://www.cnblogs.com/Damon-Luo/p/5877104.html
Copyright © 2011-2022 走看看