问题描述
我已经为 JAXRSServerfactorybean 配置了两个 api 接口:
@Bean("RSServer")
public JAXRSServerfactorybean sfBean(String address){
JAXRSServerfactorybean sf = new JAXRSServerfactorybean();
sf.setBus(bus);
sf.setAddress(address); // http://localhost:8080/some/path
sf.setProvider(jsonProvider);
List<Object> apiBeans = new ArrayList<>();
// first service
apiBeans.add(applicationContext.getBean(FirstApi.class));
// second service
apiBeans.add(applicationContext.getBean(SecondApi.class));
sf.setServiceBeans(apiBeans);
return sf;
}
在每个 Api 类中有一个端点:
-) /api-one/get-something
用于 FirstApi.class
-) /api-two/get-something
用于 SecondApi.class
我有这个东西的路由器,我应该以某种方式路由传入的请求。
到达 http://localhost:8080/some/path/api-one/get-something
的请求应该在“第一”服务中处理。到达 http://localhost:8080/some/path/api-two/get-something
的请求应该在“第二个”服务中处理:
@Override
public void configure() {
from("cxfrs:bean:RSServer?bindingStyle=SimpleConsumer")
.choice()
.when(exchange -> exchange.getIn().getHeader(CxfConstants.OPERATION_NAME,String.class)
.equals("firstServiceOperation"))
.bean(firstService,firstServiceOperation)
.when(exchange -> exchange.getIn().getHeader(CxfConstants.OPERATION_NAME,String.class)
.equals("secondServiceOperation"))
.bean(secondService,secondServiceOperation)
.endChoice()
.end();
}
这是路由传入请求的正确方法吗?或者有更好的变体?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)