我在servicemix中部署angular2 webapp作为war文件。这使得该应用在localhost:8181/angular2webapp
网址上运行。我为REST请求安装了一个bundle,它基本上是一个camel组件。
<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
的浏览器控制台中看到。我在x.x.x.x
上托管了cxf服务器作为
<cxf:rsServer id="rsServer" address="http://x.x.x.x:9090"
serviceClass="com.mypackage.class.MyClass" />
并更改了angular2代码以调用'x.x.x.x:9090,但它也没有用。此外,我可以在GET
上将post服务的REST服务称为http://localhost:9090...
,而不是x.x.x.x:9090...
。
或者是正确的问题:
有没有办法从ServiceMix外部公开REST服务器?
如果没有,我应该使用像NGINIX这样的代理服务器,以便localhost
发生一切吗?
什么是正确的做法?
答案 0 :(得分:2)
在地址
中使用0.0.0.0而不是localhostaddress="http://0.0.0.0:9090"
您可能会在SO上找到有关localhost / 127.0.0.1和0.0.0.0等之间差异的问题,例如:What is the difference between 0.0.0.0, 127.0.0.1 and localhost?