【问题标题】:Tomcat deploy to remote server with war file as urlTomcat 部署到远程服务器,war 文件作为 url
【发布时间】:2013-05-02 03:01:00
【问题描述】:

我正在尝试将战争文件部署到 Tomcat。我希望能够通过一个列出我的战争文件的网页来执行此操作,然后将我单击的文件扔到 Tomcat 服务器并部署它。

根据找到的文档here 我应该可以做到这一点...

http://localhost:8080/manager/deploy?path=/footoo&war=file:/path/to/foo

其中 path=/footoo 是我要部署到的服务器上的路径,但 file 可以是 URL 吗? 我似乎无法让它工作。

旁注:我可以使用 tomcat manager 网络服务手动执行此操作,但我的项目的这一点是您可以从任何地方访问我的网站并进行部署,而无需直接访问服务器。

编辑 我认为我没有很好地提出这个问题,所以我投票删除它

【问题讨论】:

    标签: java web-services tomcat


    【解决方案1】:

    如果你阅读了它说的文档:

    上传指定为 在这个 HTTP PUT 请求中请求数据,将其安装到 appBase 我们对应的虚拟主机的目录,然后开始,使用 不带 .war 扩展名的目录名或 war 文件名作为 路径。

    所以,你需要的是一个 PUT 请求。

    curl 可以为您做到这一点:

    curl --user script:script --upload-file /tmp/test.war http://localhost:8080/manager/deploy?path=/tester
    

    这会让您以用户 script 的身份登录,密码为 script,并上传 /tmp/test.war 文件。当它到达Tomcat时,它会将其放入tester.war文件中,并将其部署为/tester

    如果您想通过实际的 Web 界面执行此操作,管理器应用程序也会执行此操作。您可以从浏览器中选择要部署的战争。

    Tomcat 不会做的是在给定 URL 的情况下为您拉取文件。您需要将文件推送到服务器。

    【讨论】:

    • 当我们将war文件部署到远程服务器时,我们是否应该将localhost部分更改为对应的ip。例如,对于这个 java webservice,我应该将本地主机部分更改为相应的 ip public class Users { public String insertData(String userName,String userPassword){ try{ Class.forName("com.mysql.jdbc.Driver");连接 con = DriverManager.getConnection("jdbc:mysql://localhost:3306/login","root","chathura"); PreparedStatement 语句 = con.prepareStatement("INSERT INTO users(name,password) VALUES ('"+userName+"','"+userPassword+"');");
    【解决方案2】:

    我认为该功能不存在。但是你可以构建一个系统,将战争上传到tomcat主机并调用管理器部署URL

    【讨论】:

      猜你喜欢
      • 2018-07-25
      • 2012-01-15
      • 2012-08-10
      • 2012-10-29
      • 2015-12-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-18
      相关资源
      最近更新 更多