CXFConfig.java 3.47 KB
package com.bsth;


import com.bsth.server_rs.AuthorizeInterceptor_IN;
import com.bsth.server_rs.base_info.car.CarRestService;
import com.bsth.server_rs.base_info.carpark.CarparkRestService;
import com.bsth.server_rs.base_info.line.LineRestService;
import com.bsth.server_rs.base_info.person.PersonRestService;
import com.bsth.server_rs.base_info.section.LD_RoadSpeedRestService;
import com.bsth.server_rs.base_info.section.LD_SectionRestService;
import com.bsth.server_rs.base_info.station.StationRestService;
import com.bsth.server_rs.destroy.DestroyDetailRestService;
import com.bsth.server_rs.directive.DirectiveRestService;
import com.bsth.server_rs.exception.AesExceptionMapper;
import com.bsth.server_rs.gps.GpsRestService;
import com.bsth.server_rs.schedule.SchedulePlanService;
import com.bsth.server_rs.schedule.ScheduleRealService;
import com.bsth.server_rs.schedule.ScheduleTimeService;
import com.fasterxml.jackson.jaxrs.json.JacksonJsonProvider;
import org.apache.cxf.Bus;
import org.apache.cxf.bus.spring.SpringBus;
import org.apache.cxf.endpoint.Server;
import org.apache.cxf.jaxrs.JAXRSServerFactoryBean;
import org.apache.cxf.transport.servlet.CXFServlet;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.Ordered;

import java.util.Arrays;

/**
 * Created by panzhao on 2017/3/9.
 */
@Configuration
public class CXFConfig {

    @Bean(name = Bus.DEFAULT_BUS_ID)
    public SpringBus springBus() {
        return new SpringBus();
    }

    @Autowired
    SchedulePlanService schedulePlanService;
    @Autowired
    ScheduleRealService scheduleRealService;
    @Autowired
    StationRestService stationRestService;
    @Autowired
    LD_SectionRestService ldSectionRestService;
    @Autowired
    GpsRestService gpsRestService;
    @Autowired
    DirectiveRestService directiveRestService;
    @Autowired
    LD_RoadSpeedRestService ld_roadSpeedRestService;
    @Autowired
    private DestroyDetailRestService destroyDetailRestService;
    @Autowired
    private CarparkRestService carparkRestService;
    @Autowired
    private ScheduleTimeService scheduleTimeService;

    @Bean
    public Server rsServer() {
        JAXRSServerFactoryBean endpoint = new JAXRSServerFactoryBean();
        endpoint.setBus(springBus());
        endpoint.setAddress("/rest");
        endpoint.setServiceBeans(Arrays.<Object>asList(
                new LineRestService(),
                new CarRestService(),
                new PersonRestService(),
                gpsRestService,
                schedulePlanService,
                scheduleRealService,
                stationRestService,
                ldSectionRestService,
                directiveRestService,
                ld_roadSpeedRestService,
                destroyDetailRestService,
                carparkRestService,
                scheduleTimeService));
        endpoint.setProviders(Arrays.asList(new JacksonJsonProvider(), new AesExceptionMapper()));
        endpoint.getInInterceptors().add(new AuthorizeInterceptor_IN());
        return endpoint.create();
    }

    @Bean
    public ServletRegistrationBean servletRegistrationBean() {
        ServletRegistrationBean bean = new ServletRegistrationBean(new CXFServlet(), "/webservice/*");
        bean.setLoadOnStartup(0);
        bean.setOrder(Ordered.HIGHEST_PRECEDENCE);
        return bean;
    }
}