Tomcat jetty部署war文件

Tomcat jetty部署war文件,tomcat,jetty,war,Tomcat,Jetty,War,我创建了一个grails应用程序,它在IDEA中运行良好,然后我将其打包为gradle编写的名为api.war的war文件。jetty(版本为9.3.7)部署后,我在chrome中访问它。如果我直接在浏览器中输入url“”,应用程序将无法访问数据,而我可以访问数据 然后我将它重命名为root.war,这样我就可以通过根路径访问它了。这个应用程序可以运行了!它可以完美地访问数据 如果我有两个应用程序,它们都像api.war。如你所见,根路径不能是一半,我该怎么办?顺便说一句,部署后我在webapp

我创建了一个grails应用程序,它在IDEA中运行良好,然后我将其打包为gradle编写的名为
api.war
的war文件。jetty(版本为9.3.7)部署后,我在chrome中访问它。如果我直接在浏览器中输入url“”,应用程序将无法访问数据,而我可以访问数据

然后我将它重命名为
root.war
,这样我就可以通过根路径访问它了。这个应用程序可以运行了!它可以完美地访问数据


如果我有两个应用程序,它们都像
api.war
。如你所见,根路径不能是一半,我该怎么办?顺便说一句,部署后我在webapps中找不到任何文件夹。这是tomcat和jetty之间的区别吗?

你不需要复制war文件。看看下面的步骤,这些步骤可以帮助您:

  • 将文件复制到文件系统中的文件夹。例如在
    /opt/war
  • 在webapps文件夹下创建两个xml文件
  • 定义每个xml,如下所述
    
    /opt/war/app.war
    /附件1
    
    对于每个应用程序,您需要定义id和
    contextPath


    我希望答案能帮助你

    也许你的应用程序中有相对路径。如果您将其部署为ROOT.war,它将被放置在服务器的根上下文中(url中没有应用程序名称)。是的,我理解您的说法。我只是想知道,如果我必须部署两个应用程序,我该怎么办?它们都有相对路径。让我理解。你有一个war文件,你想在不同的上下文中部署它们吗?@josivan是的,假设我复制了它,所以我有app1.war和app2.war,我希望它们都能正常工作。我现在必须睡觉,晚安:我在问之前已经试过了。当我将contextPath设置为
    /api
    时,应用程序仍然试图通过“”访问数据。事实上,数据的位置是“”。我只是想知道,为什么在我将contextPath设置为
    /api
    后,应用程序仍然试图通过错误的url访问数据。只有将contextPath设置为
    /
    ,一切才能正常工作。您如何在应用程序中声明api上下文/路径?在文件
    application.yml
    中?我没有设置它。URL=“/json/xxx.json”,然后swagger UI的函数将处理它。这是JavaScript。请尝试删除初始斜杠