某些个框架的webservice相关那些事

来源:互联网 发布:优化生活环境的英文 编辑:程序博客网 时间:2024/04/27 04:48

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package ws.apps.webservice;

import javax.jws.WebService;
import org.apache.cxf.Bus;
import org.apache.cxf.BusFactory;
import org.apache.cxf.frontend.ServerFactoryBean;
import org.apache.cxf.transport.servlet.CXFNonSpringServlet;
import javax.servlet.ServletConfig;
import ws.framework.ioc.Ioc;
import ws.framework.ioc.loader.annotation.IocBean;
import ws.framework.lang.Strings;
import ws.framework.log.Log;
import ws.framework.log.Logs;

@IocBean
public class WebserviceAct extends CXFNonSpringServlet{

    protected final static Log log = Logs.get();
   
    @Override
    public void loadBus(ServletConfig sc) {
        super.loadBus(sc);  
        Bus bus = getBus();
        bus.getInInterceptors().add(new IpAddressInInterceptor());
        BusFactory.setDefaultBus(bus);
       
        Ioc ioc = (Ioc)sc.getServletContext().getAttribute("DEFINEIOC");//Mvcs.ctx().getDefaultIoc();
        for (String name : ioc.getNames()) {
            try {
                Object obj = ioc.get(null, name);
                if (!obj.getClass().getPackage().getName().equals("ws.apps.webservice")) {
                    continue;
                }
                if (obj.getClass().getAnnotation(WebService.class) == null)
                    continue;
                Class face = Class.forName(obj.getClass().getPackage().getName() + "." + Strings.upperFirst(name));
                ServerFactoryBean serverFactoryBean = new ServerFactoryBean();
                // 设置服务接口类
                serverFactoryBean.setServiceClass(face);
                // 服务请求路径
                serverFactoryBean.setAddress("/" + name.substring(0, name.indexOf("Service")));
                // 设置服务实现类
                serverFactoryBean.setServiceBean(obj);
                serverFactoryBean.setBindingId("http://schemas.xmlsoap.org/wsdl/soap12/");
                serverFactoryBean.create();
            } catch (Exception e) {
                log.debug(e.getMessage());
            }
        }

    }
   
}

0 0
原创粉丝点击