我在servicemix中將angular2 webapp部署爲war文件。這使得該應用在localhost:8181/angular2webapp
url上運行。我爲REST請求安裝了一個包,它基本上是一個駱駝組件。部署在Apache ServiceMix中的REST服務無法遠程訪問
<cxf:rsServer id="rsServer" address="http://localhost:9090"
serviceClass="com.mypackage.class.MyClass" />
現在,這是我所配置爲允許不同的來源請求。所有這些設置在單臺機器上都可以正常工作(Machine1)。當我嘗試從同一網絡中的另一臺機器(Machine2)訪問x.x.x.x:8181/angular2webapp
時,它打開基本頁面,但當我打電話時單擊一個按鈕,調用REST端點com.mypackage.class.MyClass
以填充表格,我可以看到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...
而不是x.x.x.x:9090...
來稱呼郵遞員的REST服務。
或正確的問題:
有沒有辦法從暴露的ServiceMix以外的其他服務器? 如果沒有,我應該使用像NGINIX這樣的代理服務器,以便它發生在localhost
? 什麼是正確的做法?
謝謝它的工作:)你能告訴我用cxf:rsServer和cxf:cxfEndpoint創建的服務器之間的區別嗎?就像這個頁面所做的一樣:https://github.com/apache/servicemix/blob/master/examples/camel/camel-cxf-soap/camel-cxf-soap-route/src/main/resources/OSGI- INF/blueprint/blueprint.xml –
另外,我正在將angular2代碼放入IP中。這是做不同來源請求的錯誤方式嗎?我應該有代理服務器還是接受請求?你能推薦一個更好的方法嗎? –