首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Camel REST DSL -已在使用的地址:绑定异常

Camel REST DSL -已在使用的地址:绑定异常
EN

Stack Overflow用户
提问于 2017-10-31 11:41:05
回答 2查看 2.4K关注 0票数 0

我正在用Jboss 6.3实例在我的项目中使用REST DSL组件。我有两个问题

  1. 对于restConfiguration,我必须始终指定端口号。试着用组件作为"servlet",仍然要提供一个端口号。有办法避免这种情况吗?请注意,我不是在这里创建一个网络项目。
  2. 一个Bundle在端口8080上公开带有"restlet“组件的rest端点,该组件运行良好。另一个绑定试图使用相同的restConfiguration公开两个端点。由于下面的异常,这个包现在还没有开始。 由: java.net.BindException:已在使用的地址:绑定在sun.nio.ch.Net.bind0(本机方法):1.8.0_111引起

我正在使用Spring,如下所示,在两个包中,一个绑定关闭,一个绑定json。

Bundle1

代码语言:javascript
运行
复制
    <restConfiguration bindingMode="json" component="restlet" port="8080"/>
    <rest path="HelloService/rs">

Bundle2

代码语言:javascript
运行
复制
    <restConfiguration bindingMode="off" component="restlet" port="8080"/>
    <rest path="AnotherService/rs">

有什么解决办法或建议吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-10-31 12:14:17

在使用restlet、jetty等时,不能使用karaf/jboss中的多个包来实现这一点。只有在使用servlet时才能重复使用与JBoss fuse一起打开的共享http服务/servlet。

所以你应该这么做

代码语言:javascript
运行
复制
 <restConfiguration bindingMode="off" component="servlet"/>

使用servlet时的端口号仅用于文档,如果您在camel- swagger -java中使用swagger api-docs。

票数 2
EN

Stack Overflow用户

发布于 2017-11-01 12:09:36

非常感谢克劳斯。

我能够让它与"servlet“组件一起工作,但下面提到的附加更改很少。

  1. 将CamelHttpTransportServlet发布为Osgi服务
代码语言:javascript
运行
复制
<osgi:reference id="anHttpService" interface="org.osgi.service.http.HttpService" />

<bean class="org.apache.camel.component.servlet.osgi.OsgiServletRegisterer"
    init-method="register" destroy-method="unregister">
    <property name="alias" value="/myService" />
    <property name="httpService" ref="anHttpService" />
    <property name="servlet" ref="aCamelServlet" />
    <property name="servletName" value="aCamelServlet" />
</bean>

<bean id="aCamelServlet"
    class="org.apache.camel.component.servlet.CamelHttpTransportServlet" />
  1. 将rest配置更改为
代码语言:javascript
运行
复制
<restConfiguration bindingMode="json" component="servlet">
  <endpointProperty key="servletName" value="aCamelServlet" />
</restConfiguration>

同时,将camel-servlet添加到pom中。通过这样做,这两个包都用自己的上下文路径启动并运行。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47034521

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档