Java 将spring-cxf-jaxrs:server定义分离为多个xml文件

Java 将spring-cxf-jaxrs:server定义分离为多个xml文件,java,spring,rest,jax-rs,cxf,Java,Spring,Rest,Jax Rs,Cxf,我的REST端点有以下cxf spring jaxrs:server定义: <jaxrs:server id="my-server" address="/address"> <jaxrs:serviceBeans> <ref bean="bean1"/> <ref bean="bean2"/> <ref bean="bean3"/> <ref bean=

我的REST端点有以下cxf spring jaxrs:server定义:

<jaxrs:server id="my-server" address="/address">
    <jaxrs:serviceBeans>
        <ref bean="bean1"/>
        <ref bean="bean2"/>
        <ref bean="bean3"/>   
        <ref bean="bean4"/>
        <ref bean="bean5"/>
    </jaxrs:serviceBeans>
</jaxrs:server>

我需要在我的项目中将REST端点定义拆分为多个模块。例如:

server-config1.xml

<jaxrs:server id="my-server" address="/address">
    <jaxrs:serviceBeans>
        <ref bean="bean1"/>
        <ref bean="bean2"/>
        <ref bean="bean3"/>
    </jaxrs:serviceBeans>
</jaxrs:server>

server-config2.xml

<jaxrs:server id="my-server" address="/address">
    <jaxrs:serviceBeans>
        <ref bean="bean4"/>
        <ref bean="bean5"/>
    </jaxrs:serviceBeans>
</jaxrs:server>

这两个项目构建为部署到Jboss Fuse中的捆绑包。第一个捆绑包部署并成功启动。第二个捆绑包失败,错误是该地址已在使用中

如何从一个spring配置文件中引用/重用现有的jaxrs:server定义?我不能简单地更改第二个服务器定义的地址,因为我的所有代码都需要更改。请注意,这两个服务器定义并不总是安装的,因为其中一个可能不可用(不同的客户端获得不同的端点)。每个REST端点都已具有唯一的@Path定义


我正在使用CXF v2.7

我看不到解决您问题的简单方法。一旦JaxRs服务器关闭,就不能添加新的bean。一种可能的方法是保留对工厂的引用,根据需要添加新bean,并启动新服务器,同时停止旧的。我不确定这是否适合您的用例。一般来说,听起来你的想法和你的用例不是完美的匹配。你认为你能提供一个关于如何做你描述的事情的示例吗?我不愿意使用spring,也不愿意以编程方式做任何事情。您应该编辑您的问题,以详细说明您的用例和环境。我愿意接受/实现任何有助于我实现所需目标的解决方案。问题是我的用例。如果不了解您的环境,很难判断。是否可以为不同的模块提供不同的端口?如果您的服务器前面有任何类型的代理,您可以根据到不同端口的路径进行转发。