【问题标题】:error of Auto-deploy war file to jenkins将战争文件自动部署到詹金斯的错误
【发布时间】:2013-04-08 12:18:07
【问题描述】:

我在尝试自动部署到我们的 tomcat 服务器时遇到此错误。

错误:发布者 hudson.plugins.deploy.DeployPublisher 中止由于 异常 org.codehaus.cargo.container.ContainerException: 失败 重新部署 [/home/affiza/workspace/mimos-test-deploy/dist/met-server.war] 在 org.codehaus.cargo.container.tomcat.internal.AbstractTomcatManagerDeployer.redeploy(AbstractTomcatManagerDeployer.java:195) 在 hudson.plugins.deploy.CargoContainerAdapter.deploy(CargoContainerAdapter.java:64) 在 hudson.plugins.deploy.CargoContainerAdapter$1.invoke(CargoContainerAdapter.java:90) 在 hudson.plugins.deploy.CargoContainerAdapter$1.invoke(CargoContainerAdapter.java:77) 在 hudson.FilePath$FileCallableWrapper.call(FilePath.java:2309) 在 hudson.remoting.UserRequest.perform(UserRequest.java:118) 在 hudson.remoting.UserRequest.perform(UserRequest.java:48) 在 hudson.remoting.Request$2.run(Request.java:326) 在 hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:72) 在 java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) 在 java.util.concurrent.FutureTask.run(FutureTask.java:166) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) 在 java.lang.Thread.run(Thread.java:722) 引起: java.io.IOException:服务器返回 HTTP 响应代码:403 用于 URL: http://test.mest.my:8080//manager/text/list 在 sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1625) 在 org.codehaus.cargo.container.tomcat.internal.TomcatManager.invoke(TomcatManager.java:504) 在 org.codehaus.cargo.container.tomcat.internal.TomcatManager.list(TomcatManager.java:622) 在 org.codehaus.cargo.container.tomcat.internal.TomcatManager.getStatus(TomcatManager.java:635) 在 org.codehaus.cargo.container.tomcat.internal.AbstractTomcatManagerDeployer.redeploy(AbstractTomcatManagerDeployer.java:176) ... 13 更多

我需要做什么?

【问题讨论】:

    标签: tomcat deployment jenkins tomcat7 jenkins-plugins


    【解决方案1】:

    我认为这是关键:

    ...
    java.lang.Thread.run(Thread.java:722) Caused by: java.io.IOException: 
    Server returned HTTP response code: 403 for URL: 
    http://test.mest.my:8080//manager/text/list at 
    ...
    

    403 means Forbidden:

    服务器理解请求,但拒绝执行。 授权将无济于事,并且不应重复请求。如果 请求方法不是 HEAD 并且服务器希望公开 为什么请求没有被满足,它应该描述原因 对于实体的拒绝。如果服务器不想让 此信息可供客户端使用,状态码 404(不 Found) 可以代替。

    因此,您可能在 Jenkins 作业中有错误的部署配置(尝试部署的位置错误,不允许部署),或者您的 Tomcat 配置不正确且不允许部署(至少不是 Jenkins 作业的方式)尝试这样做)。

    【讨论】:

    • 和jenkins中提供的有区别吗?
    【解决方案2】:

    为用户添加角色“manager-script”,

    请注意,对于 Tomcat 7 及更高版本,使用管理器所需的角色 应用程序从单一经理角色更改为以下角色 四个角色。您将需要分配所需的角色 您希望访问的功能。

    manager-gui - allows access to the HTML GUI and the status pages
    manager-script - allows access to the text interface and the status
    manager-jmx - allows access to the JMX proxy and the status
    manager-status - allows access to the status pages only
    

    【讨论】:

      【解决方案3】:

      将以下角色添加到您的 tomcat-users.xml

      1. manager-gui - 允许访问 HTML GUI 和状态页面 - 可以访问您的 tomcat 的 gui 界面

      2. manager-script - 允许访问文本界面和状态 - 提供对由 Jenkins 运行的外部脚本的访问。

         <tomcat-users><role rolename="manager-gui"/><role rolename="manager-script"/><user username="deployer" password="deployer" roles="manager-gui"/>
        

        我不知道以下两个

        • manager-jmx - 允许访问 JMX 代理和状态
        • manager-status - 只允许访问状态页面

      【讨论】:

        【解决方案4】:

        你应该在更改 conf 文件夹中的任何内容后重新启动 tomcat

        【讨论】:

          【解决方案5】:

          上面的异常是说 - 您已经在远程服务器中部署了相同的工件并且无法重新部署它,只需删除已经部署的工件,这将起作用,但如果您想重新部署相同的工件,您需要更改插件中的配置。 .

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2014-03-19
            • 1970-01-01
            • 1970-01-01
            • 2019-06-14
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多