【发布时间】:2016-09-04 03:31:00
【问题描述】:
我正在尝试将 Apache CXF 与 OSGI enRoute 一起使用。不同的是,我不想使用 cfg.xml 文件,而是通过 API 启动我的服务端点。下面就是这样一个例子:
InvolvedPartySoap12EndpointImpl involvedPartyServiceImpl = new InvolvedPartySoap12EndpointImpl();
ServerFactoryBean svrFactory = new JaxWsServerFactoryBean();
svrFactory.setServiceClass(InvolvedPartyPortType.class);
svrFactory.setAddress("/bin/InvolvedParty");
svrFactory.setBus(bus);
svrFactory.setServiceBean(involvedPartyServiceImpl);
_server = svrFactory.create();
我遇到的问题是为每个 OSGI 包创建一个不同的 CXF 总线,从而允许我在每次激活/停用相应的包时创建/销毁总线。复制以下 Karaf 命令也是一个目标:
问题是我没有看到用于创建和销毁 CXF 总线的 API。而且上面列出的 Karaf 代码似乎不适用于 enRoute。
我想可以在包中创建一个 cfg.xml 文件来创建总线,但是我没有看到用于获取具有给定别名的总线的 API。呃。
以下链接看起来很有希望,但是当适应 CXFNonSpringServlet 的子类时...我没有得到相应的 CXF 总线,我似乎也无法通过 API 创建一个:
registering servlet in OSGi that receives parameters
所以我的问题是……有没有人通过 OSGI 中的 API 成功地获取、创建和销毁 CXF 总线(和相应的 servlet)?
谢谢, 兰迪
【问题讨论】: