2

尝试自动部署到我们的 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) at hudson.plugins.deploy.CargoContainerAdapter.deploy(CargoContainerAdapter.java:64) at hudson.plugins.deploy.CargoContainerAdapter$1.invoke (CargoContainerAdapter.java:90) at hudson.plugins.deploy.CargoContainerAdapter$1.invoke(CargoContainerAdapter.java:77) at hudson.FilePath$FileCallableWrapper.call(FilePath.java:2309) at hudson.remoting.UserRequest.perform(UserRequest .java:118) 在 hudson.remoting.UserRequest.perform(UserRequest.java:48) 在 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) at java.util.concurrent。 FutureTask.run(FutureTask.java:166) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) at java.lang .Thread.run(Thread.java:722) 原因:java.io.IOException:服务器返回 HTTP 响应代码:403 用于 URL:ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) at java.lang.Thread.run(Thread.java:722) 原因:java.io .IOException:服务器返回 HTTP 响应代码:URL 的 403:ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) at java.lang.Thread.run(Thread.java:722) 原因:java.io .IOException:服务器返回 HTTP 响应代码:URL 的 403: http://test.mest.my:8080//manager/text/list at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1625) at 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) at org.codehaus.cargo.container.tomcat.internal.AbstractTomcatManagerDeployer.redeploy(AbstractTomcatManagerDeployer.java:176) ... 13 更多

我需要做什么?

4

5 回答 5

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 
...

403 表示禁止

服务器理解请求,但拒绝执行。授权将无济于事,并且不应重复请求。如果请求方法不是 HEAD 并且服务器希望公开请求未完成的原因,它应该在实体中描述拒绝的原因。如果服务器不希望向客户端提供此信息,则可以使用状态代码 404(未找到)来代替。

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

于 2013-04-16T10:39:51.423 回答
3

向用户添加角色“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
于 2014-03-18T06:37:55.283 回答
2

将以下角色添加到您的 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 - 只允许访问状态页面
于 2015-06-30T07:36:09.877 回答
0

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

于 2017-07-05T02:20:22.157 回答
-2

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

于 2015-02-11T13:02:11.427 回答