我試圖用Spring Boot創建一個非常簡單的RESTful Web服務來執行NLP作爲參數傳遞的內容。你可以在我的GitHub找到它。Spring Boot Service在本地但不是遠程工作
由於某種原因,我無法將其作爲WAR(see here)部署到我的家庭服務器中的Tomcat容器中,因此我決定至少嘗試將其設置爲可運行的JAR。
如果我通過調用自己的計算機上運行它:
java -jar -Xss32M -Xmx8G -XX:+UseG1GC -XX:+UseStringDeduplication ClearWS-0.1.0.jar
它就像一個魅力。如果我指出我的瀏覽器http://localhost:8888/process?content=This%20is%20a%20test.,我得到預期的JSON:
{ "id": 1,
"sentences": [
{ "start": 0,
"end": 0,
"content": "This is a test.",
"tokens": [
{ "start": 0, "end": 4, "index": 0, "text": "This", "posTag": "DT", "chunkTag": "NP", "lemma": "this" },
{ "start": 5, "end": 7, "index": 1, "text": "is", "posTag": "VBZ", "chunkTag": "VP", "lemma": "be" },
{ "start": 8, "end": 9, "index": 2, "text": "a", "posTag": "DT", "chunkTag": "NP", "lemma": "a" },
{ "start": 10, "end": 14, "index": 3, "text": "test", "posTag": "NN", "chunkTag": "NP", "lemma": "test" },
{"start": 14, "end": 15, "index": 4, "text": ".", "posTag": ".", "chunkTag": ".", "lemma": "." } ],
"size": 5
} ]
}
現在,我已經搬到了ClearWS-0.1.0.jar
文件到我的家庭服務器,並在那裏我開始它使用相同的命令如上:沒有錯誤消息。本地(通過本地主機:8888),一切仍然完美。但是,如果我嘗試遠程使用它,它將不起作用:瀏覽器在一段時間後告訴我,我嘗試連接失敗。
該家庭服務器機器的NAT地址不會經常更改,因此我可以使用no-ip.com
掛接它並無論如何都可以訪問它。請注意,我部署到Tomcat容器的其他J2EE服務完全可以遠程訪問和使用。我認爲這可能是嵌入式Tomcat與獨立的Tomcat衝突,所以我關閉了後者,但仍然無法達到ClearWS-0.1.0
。
我開始認爲Spring明白我仍然不完全信任它,所以它對我來說故意失敗......出於玩笑,任何對Spring和網絡有更好理解的人都可以幫助我把這個問題排除出去?提前致謝。
解決方案:我只是忘轉發端口8888 ...一旦補充,配置我的路由器,我可以遠程使用該服務。現在我想能夠將它部署在我現有的Tomcat容器中......任何想法?
這聽起來不像是Spring的問題,而是一個網絡問題。你確定可以訪問8888端口嗎?聽起來好像不是。如果您可以運行該jar並從服務器上的本地主機訪問它,則會有某種防火牆阻止該請求。 – hyness
@你說得對,我沒有轉發8888號港口。對我感到羞恥! –