有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何将Ratpack API部署到远程服务器?

我使用Ratpack和Groovy创建了一个API。所有的GET、POST应用程序都在本地运行。现在我想把它移动到某个远程服务器(比如开发环境)。我该怎么做? 要在本地启动和运行应用程序,我必须从EclipseIDE中执行“gradle运行”或“将Ratpack.groovy作为groovy脚本运行”。然后显示“在本地主机上运行的Ratpack服务器:8080”。然后我可以将这些api用作本地主机:8080/api/../。。。但同时,当我尝试将其作为JAVA应用程序运行时,我得到的错误如下:

{"@timestamp":"2016-06-02T14:47:06.026+05:30","@version":1,"message":"Starting server...","logger_name":"ratpack.server.RatpackServer","thread_name":"main","level":"INFO","level_value":20000,"tags":null}
Exception in thread "main" java.io.UncheckedIOException: java.io.IOException: Is a directory
    at ratpack.util.Exceptions.uncheck(Exceptions.java:52)
    at ratpack.groovy.Groovy.ratpack(Groovy.java:112)
    at ratpack.groovy.Groovy$ratpack.callStatic(Unknown Source)
    at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallStatic(CallSiteArray.java:56)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callStatic(AbstractCallSite.java:194)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callStatic(AbstractCallSite.java:206)
    at Ratpack.run(Ratpack.groovy:22)

为了在prod中部署它,我将jar移动到了服务器上。在那之后,我应该如何启动Ratpack服务器,或者更确切地说是API服务


共 (1) 个答案

  1. # 1 楼答案

    我建议设置一个CI管道,用于构建java jar,并将工件部署到目标环境中

    我建议使用John Engleman的Shadow插件https://plugins.gradle.org/plugin/com.github.johnrengelman.shadow

    这个插件生成一个shadow jar(类似于Maven的Shadowd jar),可以选择包含启动应用程序的bash脚本或批处理脚本

    高层建议:

    1. 将shadow插件添加到gradle构建文件中

      插件{ 身份证。拉特帕克。ratpack groovy“1.3.3版” 身份证。github。约翰兰格曼。阴影“1.2.3版” }

    2. 让您的CI服务器或手动执行'gradlew installShadowApp

    3. SCP/FTP将此工件从build/installShadow目录发送到目标服务器

    4. build/installShadow/$appName/bin/$appName调用shell脚本以启动应用程序

    对于一个更易于维护的解决方案,我建议将这个shell脚本注册为一个服务,或者使用类似于monit/upstart/etc的解决方案

    有关部署到Heroku的更详细示例,请查看我的笔记:http://danhyun.github.io/2016-gr8confeu-rapid-ratpack-groovy/#deploying_to_heroku