2016-11-26 3 views
0

Ich habe eine Spring MVC-Anwendung und ich versuche, REST-Service mit CXF (Jax-RS) verfügbar zu machen. Ich kann nicht verstehen, wie ich meinen Dienst registrieren und zur Verfügung stellen kann. Hier ist mein Service:So registrieren Sie CXF Rest Services

@Path("/myservice/") 
@Consumes(MediaType.APPLICATION_JSON) 
@Produces(MediaType.APPLICATION_JSON) 
public interface MyService { 

     @POST 
     @Path("start") 
     public String start(){ 
      ........... 
     } 
    } 

Bis jetzt habe ich es geschafft, jede Konfigurationsdatei zu vermeiden, nur mit Anmerkungen. Wie stelle ich meinen Dienst ohne eine Konfigurationsdatei zur Verfügung? Ich konnte die Informationen in der Dokumentation nicht finden.

Danke

Antwort

0

Hier ist die vollständige Antwort. Bits und Teile können online gefunden werden, aber nirgendwo hatte eine vollständige Antwort, die einfach zu folgen/zu implementieren ist.

Ich werde den Maven Teil überspringen, da es ziemlich einfach ist, es herauszufinden.

Register CXF Servlets

@WebServlet(urlPatterns="/*") 
public class CXFStartServlet extends CXFServlet { 
} 

Registrieren alle Spring-Beans mit @Path als CXF Service

@Configuration 
public class MyCxfConfig { 

@Autowired 
private ApplicationContext ctx; 

@Bean(name="cxf") 
public SpringBus springBus(){ 
    return new SpringBus(); 
} 

@Bean 
public Server jaxRsServer() { 
    LinkedList<ResourceProvider> resourceProviders = new LinkedList<ResourceProvider>(); 
    for (String beanName : ctx.getBeanDefinitionNames()) { 
     if (ctx.findAnnotationOnBean(beanName, Path.class) != null) { 
      SpringResourceFactory factory = new SpringResourceFactory(beanName); 
      factory.setApplicationContext(ctx); 
      resourceProviders.add(factory); 
     } 
    } 

    JAXRSServerFactoryBean factory = new JAXRSServerFactoryBean(); 
    factory.setBus(ctx.getBean(SpringBus.class)); 
    factory.setProviders(Arrays.asList(new JacksonJsonProvider())); 
    factory.setResourceProviders(resourceProviders); 
    return factory.create(); 
} 
} 

nicht Vergessen "MyCxfconfig" im Frühjahr Config zu importieren . Das ist alles :)

Verwandte Themen