在Jenkins上的tomcat中部署Web应用程序

时间:2015-02-27 13:36:28

标签: jenkins tomcat7

我正在使用Jenkins在Tomcat7上部署Web应用程序。
Tomcat安装为Windows服务,它具有SWebServer名称(安装路径:C:\ Program Files(x86)\ SWebServer)。 Jenkins也安装了Windows服务。应用程序war文件位置为:C:\ Program Files(x86)\ Jenkins \ jobs \ test4 \ workspace \ target \ prj.war

这是我的配置:enter image description here

但我收到以下异常

Deploying C:\Program Files (x86)\Jenkins\jobs\test4\workspace\target\prj.war to container Tomcat 7.x Remote
ERROR: Build step failed with exception
org.codehaus.cargo.container.ContainerException: Failed to redeploy [C:\Program Files (x86)\Jenkins\jobs\test4\workspace\target\prj.war]
       at org.codehaus.cargo.container.tomcat.internal.AbstractTomcatManagerDeployer.redeploy(AbstractTomcatManagerDeployer.java:193)
       at hudson.plugins.deploy.CargoContainerAdapter.deploy(CargoContainerAdapter.java:73)
       at hudson.plugins.deploy.CargoContainerAdapter$1.invoke(CargoContainerAdapter.java:116)
       at hudson.plugins.deploy.CargoContainerAdapter$1.invoke(CargoContainerAdapter.java:103)
       at hudson.FilePath.act(FilePath.java:989)
       at hudson.FilePath.act(FilePath.java:967)
       at hudson.plugins.deploy.CargoContainerAdapter.redeploy(CargoContainerAdapter.java:103)
       at hudson.plugins.deploy.DeployPublisher.perform(DeployPublisher.java:61)
       at hudson.tasks.BuildStepMonitor$3.perform(BuildStepMonitor.java:45)
       at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:761)
       at hudson.model.AbstractBuild$AbstractBuildExecution.performAllBuildSteps(AbstractBuild.java:721)
       at hudson.model.Build$BuildExecution.post2(Build.java:183)
       at hudson.model.AbstractBuild$AbstractBuildExecution.post(AbstractBuild.java:670)
       at hudson.model.Run.execute(Run.java:1743)
       at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
       at hudson.model.ResourceController.execute(ResourceController.java:89)
       at hudson.model.Executor.run(Executor.java:240)
Caused by: java.net.ConnectException: Connection refused: connect
       at java.net.DualStackPlainSocketImpl.connect0(Native Method)
       at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source)
       at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source)
       at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)
       at java.net.AbstractPlainSocketImpl.connect(Unknown Source)
       at java.net.PlainSocketImpl.connect(Unknown Source)
       at java.net.SocksSocketImpl.connect(Unknown Source)
       at java.net.Socket.connect(Unknown Source)
       at java.net.Socket.connect(Unknown Source)
       at sun.net.NetworkClient.doConnect(Unknown Source)
       at sun.net.www.http.HttpClient.openServer(Unknown Source)
       at sun.net.www.http.HttpClient.openServer(Unknown Source)
       at sun.net.www.http.HttpClient.<init>(Unknown Source)
       at sun.net.www.http.HttpClient.New(Unknown Source)
       at sun.net.www.http.HttpClient.New(Unknown Source)
       at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(Unknown Source)
       at sun.net.www.protocol.http.HttpURLConnection.plainConnect(Unknown Source)
       at sun.net.www.protocol.http.HttpURLConnection.connect(Unknown Source)
       at org.codehaus.cargo.container.tomcat.internal.TomcatManager.invoke(TomcatManager.java:534)
       at org.codehaus.cargo.container.tomcat.internal.TomcatManager.list(TomcatManager.java:686)
       at org.codehaus.cargo.container.tomcat.internal.TomcatManager.getStatus(TomcatManager.java:699)
       at org.codehaus.cargo.container.tomcat.internal.AbstractTomcatManagerDeployer.redeploy(AbstractTomcatManagerDeployer.java:174)
... 16 more
java.net.ConnectException: Connection refused: connect
       at java.net.DualStackPlainSocketImpl.connect0(Native Method)
       at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source)
       at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source)
       at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)
       at java.net.AbstractPlainSocketImpl.connect(Unknown Source)
       at java.net.PlainSocketImpl.connect(Unknown Source)
       at java.net.SocksSocketImpl.connect(Unknown Source)
       at java.net.Socket.connect(Unknown Source)
       at java.net.Socket.connect(Unknown Source)
       at sun.net.NetworkClient.doConnect(Unknown Source)
       at sun.net.www.http.HttpClient.openServer(Unknown Source)
       at sun.net.www.http.HttpClient.openServer(Unknown Source)
       at sun.net.www.http.HttpClient.<init>(Unknown Source)
       at sun.net.www.http.HttpClient.New(Unknown Source)
       at sun.net.www.http.HttpClient.New(Unknown Source)
       at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(Unknown Source)
       at sun.net.www.protocol.http.HttpURLConnection.plainConnect(Unknown Source)
       at sun.net.www.protocol.http.HttpURLConnection.connect(Unknown Source)
       at org.codehaus.cargo.container.tomcat.internal.TomcatManager.invoke(TomcatManager.java:534)
       at org.codehaus.cargo.container.tomcat.internal.TomcatManager.list(TomcatManager.java:686)
       at org.codehaus.cargo.container.tomcat.internal.TomcatManager.getStatus(TomcatManager.java:699)
       at org.codehaus.cargo.container.tomcat.internal.AbstractTomcatManagerDeployer.redeploy(AbstractTomcatManagerDeployer.java:174)
       at hudson.plugins.deploy.CargoContainerAdapter.deploy(CargoContainerAdapter.java:73)
       at hudson.plugins.deploy.CargoContainerAdapter$1.invoke(CargoContainerAdapter.java:116)
       at hudson.plugins.deploy.CargoContainerAdapter$1.invoke(CargoContainerAdapter.java:103)
       at hudson.FilePath.act(FilePath.java:989)
       at hudson.FilePath.act(FilePath.java:967)
       at hudson.plugins.deploy.CargoContainerAdapter.redeploy(CargoContainerAdapter.java:103)
       at hudson.plugins.deploy.DeployPublisher.perform(DeployPublisher.java:61)
       at hudson.tasks.BuildStepMonitor$3.perform(BuildStepMonitor.java:45)
       at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:761)
       at hudson.model.AbstractBuild$AbstractBuildExecution.performAllBuildSteps(AbstractBuild.java:721)
       at hudson.model.Build$BuildExecution.post2(Build.java:183)
       at hudson.model.AbstractBuild$AbstractBuildExecution.post(AbstractBuild.java:670)
       at hudson.model.Run.execute(Run.java:1743)
       at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
       at hudson.model.ResourceController.execute(ResourceController.java:89)
       at hudson.model.Executor.run(Executor.java:240)

什么问题?

2 个答案:

答案 0 :(得分:2)

更改后续内容;

在conf / tomcat-user中添加:

<user username="test" password="passTest" roles="manager-script"/>

在詹金斯,

EAR/WAR file: **/*.war
context path: prj
Tomcat URL : http://localhost:8080

答案 1 :(得分:1)

您需要了解的几件事情。

  1. EAR / WAR:提及文件的位置 - &gt;如果WAR在父文件夹中,则可以使用* .war;如果在子文件夹中,则使用** / * .war
  2. ContextPath:您希望在tomcat中部署war的位置 - &gt; / 将工作              完美的
  3. Tomcat URL:部署tomcat的端口,你可能会得到的一些问题,比如已经在使用的端口,将server.xml中的端口更改为你喜欢的端口:)

    <user username="uname" password="pwd" roles="manager-script,manager-gui"/>

  4. 然后可以在tomcat-users.xml - &gt;中指定上面的行。您只是向具有以下权限的用户授予jenkins访问权限

    • manager-gui - 访问HTML界面
    • manager-script - 访问本文档中描述的工具友好的纯文本界面,以及&#34;服务器状态&#34;页。

    P.S。在部署之前启动tomcat,这是拒绝连接的原因之一:P