Java JAXRS-使用单独的提供程序创建多个端点
我想用不同的提供者创建两个独立的端点 因此,如果我只注册一个端点,这很好:Java JAXRS-使用单独的提供程序创建多个端点,java,spring,spring-boot,jax-rs,Java,Spring,Spring Boot,Jax Rs,我想用不同的提供者创建两个独立的端点 因此,如果我只注册一个端点,这很好: @Bean public Server rsServer(MyService myService) { JAXRSServerFactoryBean serverFactory = new JAXRSServerFactoryBean(); serverFactory.setServiceBean(myService); serverFactory.setAddress("/"
@Bean
public Server rsServer(MyService myService) {
JAXRSServerFactoryBean serverFactory = new JAXRSServerFactoryBean();
serverFactory.setServiceBean(myService);
serverFactory.setAddress("/");
serverFactory.setBus(new SpringBus());
serverFactory.setProviders(MyCustomProviders.getProviders());
return serverFactory.create();
}
现在,我想在此添加第二个服务,但它不应该使用MyCustomProviders.getProviders()
我还没有弄清楚如何添加第二个Bean(我认为这是错误的方法),或者查看JAXRSServerFactoryBean
我还没有找到一种方法来指定哪些提供者应该对哪些Bean进行操作
比如说:
@Bean
public Server rsServer(MyService myService, MyOtherService myOtherService) {
JAXRSServerFactoryBean serverFactory = new JAXRSServerFactoryBean();
serverFactory.setServiceBean(List.of(myService, myOtherService));
serverFactory.setAddress("/");
serverFactory.setBus(new SpringBus());
serverFactory.setProviders(MyCustomProviders.getProviders()); // How do I specify this only for MyService?
return serverFactory.create();
}
@Bean
public Server createMyServiceServer(MyService myService) {
JAXRSServerFactoryBean serverFactory = new JAXRSServerFactoryBean();
serverFactory.setServiceBean(myService);
serverFactory.setAddress("/");
serverFactory.setBus(new SpringBus());
serverFactory.setProviders(MyCustomProviders.getProviders());
return serverFactory.create();
}
@Bean
public Server createMyOtherServiceServer(MyOtherService myOtherService) {
JAXRSServerFactoryBean serverFactory = new JAXRSServerFactoryBean();
serverFactory.setServiceBean(myOtherService);
serverFactory.setAddress("/otherservice");
serverFactory.setBus(new SpringBus());
return serverFactory.create();
}
我使用的是org.apache.cxf:cxf-rt前端jaxrs:3.1.4
我希望我能按程序做
有什么想法吗?如果您可以在不同的基地址上分离它们,您应该能够执行以下操作:
@Bean
public Server rsServer(MyService myService, MyOtherService myOtherService) {
JAXRSServerFactoryBean serverFactory = new JAXRSServerFactoryBean();
serverFactory.setServiceBean(List.of(myService, myOtherService));
serverFactory.setAddress("/");
serverFactory.setBus(new SpringBus());
serverFactory.setProviders(MyCustomProviders.getProviders()); // How do I specify this only for MyService?
return serverFactory.create();
}
@Bean
public Server createMyServiceServer(MyService myService) {
JAXRSServerFactoryBean serverFactory = new JAXRSServerFactoryBean();
serverFactory.setServiceBean(myService);
serverFactory.setAddress("/");
serverFactory.setBus(new SpringBus());
serverFactory.setProviders(MyCustomProviders.getProviders());
return serverFactory.create();
}
@Bean
public Server createMyOtherServiceServer(MyOtherService myOtherService) {
JAXRSServerFactoryBean serverFactory = new JAXRSServerFactoryBean();
serverFactory.setServiceBean(myOtherService);
serverFactory.setAddress("/otherservice");
serverFactory.setBus(new SpringBus());
return serverFactory.create();
}