2014-11-24 3 views
2

CXF 및 Sprint Boot를 멋지게 재생하려고합니다. SubscriberApi라는 JAX-WS 서비스 엔드 포인트가 있습니다. 나는 성공적으로 매핑을 참조 봄 부팅 로그를 찾고 : 타격 때CXF with Spring-boot

Mapping servlet: 'CXFServlet' to [/api/*] 
Setting the server's publish address to be /SubscriberApi 

을, 나는 WSDL을 얻을 수가 캔트 :

http://localhost:8080/api/SubscriberApi?wsdl 
@Configuration 
@ImportResource({"classpath:META-INF/cxf/cxf.xml"}) 
public class CxfConfiguration { 
    @Bean 
    public SubscriberApi subscriberApi() { 
    return new SubscriberApi(); 
    } 
    @Bean 
    public ServletRegistrationBean servletRegistrationBean() { 
    CXFServlet cxfServlet = new CXFServlet(); 

    ServletRegistrationBean servletRegistrationBean = 
     new ServletRegistrationBean(cxfServlet, "/api/*"); 
    servletRegistrationBean.setLoadOnStartup(1); 
    return servletRegistrationBean; 
    } 
    @DependsOn("servletRegistrationBean") 
    @Bean 
    public Endpoint jaxwsEndpoint(SubscriberApi subscriberApi){ 
    javax.xml.ws.Endpoint jaxwsEndpoint = 
     javax.xml.ws.Endpoint.publish("/SubscriberApi", subscriberApi); 
     return jaxwsEndpoint; 
    } 
} 

답변

2

jaxwsEndpoint 빈 인스턴스를 반환 되세요 org.apache.cxf.jaxws.EndpointImpl의 범위는 다음과 같습니다 : javax.xml.ws.Endpoint :

@Autowired 
private ApplicationContext applicationContext; 

@DependsOn("servletRegistrationBean") 
@Bean 
public Endpoint jaxwsEndpoint(){ 
    Bus bus = (Bus) applicationContext.getBean(Bus.DEFAULT_BUS_ID); 
    EndpointImpl endpoint = new EndpointImpl(bus, subscriberApi()); 
    endpoint.publish("/SubscriberApi"); 
    // also showing how to add interceptors 
    endpoint.getServer().getEndpoint().getInInterceptors().add(new LoggingInInterceptor()); 
    endpoint.getServer().getEndpoint().getOutInterceptors().add(new LoggingOutInterceptor()); 

    return endpoint; 
} 

원본 게시물에는 실행 가능한 예가 포함되어 있지 않지만 문제가 해결되어야합니다. 모든 구성이 서로 연결과

실행중인 예를

는 여기에서 찾을 수 있습니다 : Application.java

0

이제 추가하여 봄 부팅 CXF 스타터와 자동 구성을 사용할 수 있습니다

<dependency> 
    <groupId>org.apache.cxf</groupId> 
    <artifactId>cxf-spring-boot-starter-jaxws</artifactId> 
    <version>3.1.7</version> 
</dependency> 

항목 : http://cxf.apache.org/docs/springboot.html

+0

좋은 방법이지만 cxf 끝점에서 부트 스트랩 스프링을 지원하지 않습니다. – rajadilipkolli