2015-01-28 15 views
5

Mam Jenkinsa 1.598. Instaluję wtyczkę do automatycznego wdrażania w jenkins (ale nie jest to dla tomcat 8, nie ma jeszcze aktualizacji).dlaczego automatyczne wdrażanie Jenkins 1.598 i tomcat 8 nie działa

Wszystko działało bez zarzutu! Po zakończeniu kompilacji rozpoczyna się ponowne rozmieszczanie. Ale czasami mam taki błąd i nie rozumiem kiedy i dlaczego tak się dzieje. Kiedy ponownie uruchomię program tomcat, wszystko pójdzie dobrze!

Deploying C:\jenkins\test\target\tr-gui.war to container Tomcat 7.x Remote 
     Redeploying [C:\jenkins\test\target\tr-gui.war] 
     Undeploying [C:\jenkins\test\target\tr-gui.war] 
    ERROR: Publisher hudson.plugins.deploy.DeployPublisher aborted due to exception 
    org.codehaus.cargo.container.ContainerException: Failed to undeploy [C:\jenkins\test\target\tr-gui.war] 
     at org.codehaus.cargo.container.tomcat.internal.AbstractTomcatManagerDeployer.undeploy(AbstractTomcatManagerDeployer.java:140) 
     at org.codehaus.cargo.container.tomcat.internal.AbstractTomcatManagerDeployer.redeploy(AbstractTomcatManagerDeployer.java:178) 
     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:981) 
     at hudson.FilePath.act(FilePath.java:959) 
     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:770) 
     at hudson.model.AbstractBuild$AbstractBuildExecution.performAllBuildSteps(AbstractBuild.java:734) 
     at hudson.model.Build$BuildExecution.post2(Build.java:183) 
     at hudson.model.AbstractBuild$AbstractBuildExecution.post(AbstractBuild.java:683) 
     at hudson.model.Run.execute(Run.java:1784) 
     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: org.codehaus.cargo.container.tomcat.internal.TomcatManagerException: FAIL - Unable to delete [C:\servers\tomcat 8\webapps\test]. The continued presence of this file may cause problems. 

     at org.codehaus.cargo.container.tomcat.internal.TomcatManager.invoke(TomcatManager.java:566) 
     at org.codehaus.cargo.container.tomcat.internal.TomcatManager.invoke(TomcatManager.java:480) 
     at org.codehaus.cargo.container.tomcat.internal.TomcatManager.undeploy(TomcatManager.java:420) 
     at org.codehaus.cargo.container.tomcat.Tomcat7xRemoteDeployer.performUndeploy(Tomcat7xRemoteDeployer.java:62) 
     at org.codehaus.cargo.container.tomcat.internal.AbstractTomcatManagerDeployer.undeploy(AbstractTomcatManagerDeployer.java:130) 
     ... 17 more 
    org.codehaus.cargo.container.tomcat.internal.TomcatManagerException: FAIL - Unable to delete [C:\servers\tomcat 8\webapps\tr-gui]. The continued presence of this file may cause problems. 

     at org.codehaus.cargo.container.tomcat.internal.TomcatManager.invoke(TomcatManager.java:566) 
     at org.codehaus.cargo.container.tomcat.internal.TomcatManager.invoke(TomcatManager.java:480) 
     at org.codehaus.cargo.container.tomcat.internal.TomcatManager.undeploy(TomcatManager.java:420) 
     at org.codehaus.cargo.container.tomcat.Tomcat7xRemoteDeployer.performUndeploy(Tomcat7xRemoteDeployer.java:62) 
     at org.codehaus.cargo.container.tomcat.internal.AbstractTomcatManagerDeployer.undeploy(AbstractTomcatManagerDeployer.java:130) 
     at org.codehaus.cargo.container.tomcat.internal.AbstractTomcatManagerDeployer.redeploy(AbstractTomcatManagerDeployer.java:178) 
     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:981) 
     at hudson.FilePath.act(FilePath.java:959) 
     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:770) 
     at hudson.model.AbstractBuild$AbstractBuildExecution.performAllBuildSteps(AbstractBuild.java:734) 
     at hudson.model.Build$BuildExecution.post2(Build.java:183) 
     at hudson.model.AbstractBuild$AbstractBuildExecution.post(AbstractBuild.java:683) 
     at hudson.model.Run.execute(Run.java:1784) 
     at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43) 
     at hudson.model 

.ResourceController.execute(ResourceController.java:89) 
    at hudson.model.Executor.run(Executor.java:240) 
Sending e-mails to: [email protected] 
Finished: FAILURE 

Odpowiedz

1

Myślę, że w momencie, gdy twój test i aplikacje tr-gui nie zostały poprawnie zamknięte.

Oto stary komentarz przez Matt Mello (od this bug report):

miałem ten sam problem.

Okazuje się, że mieliśmy konfiguracji appender log4j w naszej aplikacji do dołączania do pliku HTML w katalogu naszego webapp, a pozornie log4j byłoby nie zwolnić pliku Dopóki prawidłowo zamykaniem się appenders. Wyłączenie aplikacji nie było wystarczające. Może to być spowodowane faktem, że log4j sam jest ładowany z tomcat zamiast z aplikacji? Nie jestem pewien.

W każdym razie dodałem kod w metodzie zniszczeń serwletu, aby oczyścić załączniki , co zapewniło, że plik został zamknięty, aby tomcat mógł usunąć katalog.

[Nawet nie zaczynaj mnie od kwestii bezpieczeństwa związanych z tym, co robiliśmy, . To jest inny temat.]

Zauważ, że prędkość może również zapisywać niektóre dzienniki w katalogu Twojej aplikacji internetowej o adresie . Wierzę, że już to widziałem.