我很难将Java项目部署到Google云引擎。我阅读了大部分Google云端文档,但我仍然无法弄清楚。
我想要的只是tcp通信。我不需要HTML本身来做某事。很多指南都谈到servlet和http get和post但我只需要tcp。 也许我缺乏信息,这就是我无法管理的原因。
首先 - 我是否需要某种http服务器才能运行tcp请求?如果不是,我该如何部署我的项目呢?
现在我的项目只有Java。如果重要,我使用了IntelliJ。就是这样。
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
public class MainServer {
public static void main(String[] args) {
final int SERVER_PORT = 3000;
final int SERVER_TIMEOUT = 5000;
try (ServerSocket serverSocket = new ServerSocket(SERVER_PORT)) {
while (true) {
try {
Socket clientSocket = serverSocket.accept();
clientSocket.setSoTimeout(SERVER_TIMEOUT);
new ClientThread(clientSocket).start();
} catch (IOException ignored) {
}
}
} catch (IOException ignored) {
}
}
}
在ClientThread中,我处理每个请求。
我在本地试了一下,效果很好。
现在我只需要以某种方式将此项目部署到计算引擎并使其工作。
此外,我在服务器上安装了Java JRE。我希望端口3000可以,如果不是我可以改变它。
如果我不是那么清楚,请提前致谢并抱歉。
答案 0 :(得分:1)
创建可运行的JAR文件。将其复制到Compute Engine实例。跑吧。
如果您希望能够在不登录实例的情况下启动/停止此程序,那么您需要一个简单的servlet。查看embedded Jetty - 这可能是此用例的最佳解决方案。
答案 1 :(得分:0)
我的首选方法是简单地在计算引擎计算机上使用命令行工具来运行以下序列-就像在开发计算机上一样:
部署之前-请进行以下设置(创建项目时需要执行一次任务)
然后,在设置完成后-您可以执行以下两个简单步骤,并在每次要使用较新版本更新服务器时重复执行这些步骤:
mvn jetty:run
在克隆的项目文件夹中就是这样。我喜欢它,因为它就是我要在本地计算机上执行的操作。