尝试自动部署到我们的tomcat服务器时出现此错误。
错误:发布者hudson.plugins.deploy.DeployPublisher由于中止而中止 异常org.codehaus.cargo.container.ContainerException:失败 重新部署 [/home/affiza/workspace/mimos-test-deploy/dist/met-server.war] at 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)at at hudson.remoting.UserRequest.perform(UserRequest.java:118)at hudson.remoting.UserRequest.perform(UserRequest.java:48)at hudson.remoting.Request $ 2.run(Request.java:326)at hudson.remoting.InterceptingExecutorService $ 1.call(InterceptingExecutorService.java:72) at java.util.concurrent.FutureTask $ Sync.innerRun(FutureTask.java:334) 在java.util.concurrent.FutureTask.run(FutureTask.java:166)at 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 at 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个
我需要做什么?
答案 0 :(得分:3)
我认为这是关键:
...
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
...
服务器理解请求,但拒绝履行请求。 授权无效,请求不应重复。如果 请求方法不是HEAD,服务器希望公开 为什么请求没有得到满足,它应该描述原因 因为该实体的拒绝。如果服务器不想做 此信息可供客户使用,状态代码404(不是 找到了)可以代替使用。
所以你可能在Jenkins作业中有错误的部署配置(你尝试部署的地方错误,不允许的地方),或者你的Tomcat没有正确配置而且不允许部署(至少不是Jenkins的工作方式)试图这样做。)
答案 1 :(得分: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
答案 2 :(得分:1)
将以下角色添加到tomcat-users.xml
manager-gui - 允许访问HTML GUI和状态页面 - 在tomcat的gui界面中提供访问权限
manager-script - 允许访问文本界面和状态 - 提供对Jenkins运行的外部脚本的访问。
<tomcat-users><role rolename="manager-gui"/><role rolename="manager-script"/><user username="deployer" password="deployer" roles="manager-gui"/>
我不知道下面两个
答案 3 :(得分:0)
您应该在更改conf文件夹中的任何内容后重新启动tomcat
答案 4 :(得分:-2)
上面的例外情况是 - 您已经在远程服务器和部署中部署了相同的工件。无法重新部署它,只需删除已部署的artiface,这将有效,但如果你想重新部署相同的工件,你需要更改插件中的配置..