gpt4 book ai didi

java - Spring Boot 服务在本地工作但不在远程

转载 作者:行者123 更新时间:2023-11-28 23:30:23 25 4
gpt4 key购买 nike

我正在尝试使用 Spring Boot 创建一个非常简单的 RESTful Web 服务,以对作为参数传递的内容执行 NLP。你可以在我的 GitHub 上找到它.

出于某种原因,我无法将它作为 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 文件移动到我的家庭服务器,并在那里使用与上述相同的命令启动它:没有错误消息。在本地(通过 localhost:8888),一切仍然完美运行。但是,如果我尝试远程使用它,它就不起作用:一段时间后,浏览器告诉我连接尝试失败。

那台家庭服务器机器有一个不经常更改的 NATed 地址,所以我可以使用 no-ip.com 连接它并访问它。请注意,部署到 Tomcat 容器的其他 J2EE 服务完全可以远程访问和使用。我认为可能是嵌入式Tomcat与单机冲突,所以我将后者关闭但仍然无法访问ClearWS-0.1.0

我开始认为 Spring 了解我仍然不完全信任它,所以它故意让我失败......开个玩笑,任何对 Spring 和网络有更好了解的人都可以帮助我解决这个问题?提前致谢。


解决方案:我只是忘了转发端口 8888... 将该配置添加到我的路由器后,我就可以远程使用该服务了。现在我希望能够将它部署到我现有的 Tomcat 容器中……有什么想法吗?

最佳答案

如果真的要部署到tomcat容器,需要创建war文件as specified in the Spring Boot documentation .它主要涉及将 maven 包装设置为 war 。如果你的tomcat容器是6.0以下,你需要写一个web.xml,否则你需要提供一个SpringBootServletInitializer

就我个人而言,这些天在容器中运行没有任何好处。现在 Java 世界的运动是嵌入式 servlet 容器,这使得它更容易在云端或像 docker 这样的容器中运行。

关于java - Spring Boot 服务在本地工作但不在远程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31058040/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com