【发布时间】:2018-09-28 06:06:27
【问题描述】:
我在 servicemix 中部署一个 angular2 webapp 作为一个 war 文件。这使得应用程序在localhost:8181/angular2webapp url 上运行。我为 REST 请求安装了一个包,它基本上是一个骆驼组件。
<cxf:rsServer id="rsServer" address="http://localhost:9090"
serviceClass="com.mypackage.class.MyClass" />
现在这是我已配置为允许的不同来源请求。所有这些设置在单台机器(Machine1)上运行良好。当我尝试从同一网络中的另一台机器(Machine2)访问x.x.x.x:8181/angular2webapp时,它正在打开基本页面,但是当我调用时单击一个按钮,该按钮调用com.mypackage.class.MyClass的REST端点以填充表格,我可以在 Machine2 GET http://localhost:9090/deviceservice/devices net::ERR_CONNECTION_REFUSED 的浏览器控制台中看到。我将 cxf 服务器托管在 x.x.x.x 上作为
<cxf:rsServer id="rsServer" address="http://x.x.x.x:9090"
serviceClass="com.mypackage.class.MyClass" />
并将 angular2 代码更改为调用 'x.x.x.x:9090 但它也不起作用。此外,我可以在http://localhost:9090... 上以GET 的形式从邮递员那里调用REST 服务,但不能以x.x.x.x:9090... 的形式调用。
或者是正确的问题:
有没有办法从外部的 ServiceMix 公开 REST 服务器?
如果没有,我是否应该使用像 NGINIX 这样的东西作为代理服务器,以便一切都发生在localhost 上?
什么是正确的做法?
【问题讨论】:
标签: java apache-camel cxf apache-karaf apache-servicemix