Reimplantar glassfish remoto com carga falha

Atualmente estou tentando usar carga para implantar um aplicativo em um glassfish remoto 3.1.2 através do bambu do atlassiano. Este é um ambiente de desenvolvimento, portanto, o mesmo aplicativo com um número de versão diferente será implementado na mesma raiz de contexto todas as vezes.

Mas toda vez que eu executo o trabalho com o objective do maven:

org.codehaus.cargo:cargo-maven2-plugin:redeploy 

Eu continuo recebendo o erro:

 11-Jun-2013 15:13:48 Caused by: org.apache.maven.plugin.PluginExecutionException: Execution default-cli of goal org.codehaus.cargo:cargo-maven2-plugin:1.4.2:redeploy failed: Deployment has failed: Action failed Deploying application to target server failed; Error occurred during deployment: Application with name myapp-1.4.8 is already registered. Either specify that redeployment must be forced, or redeploy the application. Or if this is a new deployment, pick a different name. Please see server.log for more details. 11-Jun-2013 15:13:48 11-Jun-2013 15:13:48 at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:110) 11-Jun-2013 15:13:48 at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209) 11-Jun-2013 15:13:48 ... 19 more 11-Jun-2013 15:13:48 Caused by: org.codehaus.cargo.util.CargoException: Deployment has failed: Action failed Deploying application to target server failed; Error occurred during deployment: Application with name myapp-1.4.8 is already registered. Either specify that redeployment must be forced, or redeploy the application. Or if this is a new deployment, pick a different name. Please see server.log for more details. 11-Jun-2013 15:13:48 11-Jun-2013 15:13:48 at org.codehaus.cargo.container.spi.deployer.AbstractJsr88Deployer.waitForProgressObject(AbstractJsr88Deployer.java:285) 11-Jun-2013 15:13:48 at org.codehaus.cargo.container.spi.deployer.AbstractJsr88Deployer.deploy(AbstractJsr88Deployer.java:123) 11-Jun-2013 15:13:48 at org.codehaus.cargo.container.spi.deployer.AbstractJsr88Deployer.redeploy(AbstractJsr88Deployer.java:207) 11-Jun-2013 15:13:48 at org.codehaus.cargo.maven2.DeployerRedeployMojo.performDeployerActionOnSingleDeployable(DeployerRedeployMojo.java:50) 11-Jun-2013 15:13:48 at org.codehaus.cargo.maven2.AbstractDeployerMojo.performDeployerActionOnAllDeployables(AbstractDeployerMojo.java:180) 11-Jun-2013 15:13:48 at org.codehaus.cargo.maven2.AbstractDeployerMojo.doExecute(AbstractDeployerMojo.java:97) 11-Jun-2013 15:13:48 at org.codehaus.cargo.maven2.AbstractCargoMojo.execute(AbstractCargoMojo.java:432) 11-Jun-2013 15:13:48 at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101) 11-Jun-2013 15:13:48 ... 20 more 11-Jun-2013 15:13:48 [ERROR] 11-Jun-2013 15:13:48 [ERROR] 11-Jun-2013 15:13:48 [ERROR] For more information about the errors and possible solutions, please read the following articles: 11-Jun-2013 15:13:48 [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/PluginExecutionException 11-Jun-2013 15:13:48 [ERROR] 11-Jun-2013 15:13:48 [ERROR] After correcting the problems, you can resume the build with the command 

O que eu preciso é que o plugin de carga force a reimplementação, independentemente do fato de que um aplicativo (versão mais antiga) já exista para essa raiz de contexto.

Se eu estivesse executando o comando asadmin manualmente, eu poderia facilmente adicionar o parâmetro –force e funcionaria.

Eu tenho uma restrição adicional, não é possível instalar uma versão local do glassfish no servidor que hospeda a instância de bamboo, portanto, não posso usar coisas como o plugin maven sh para criar manualmente o comando asadmin.

Abaixo está o fragment pom.xml relevante:

  myapp-${project.version}   org.codehaus.cargo cargo-maven2-plugin 1.4.2   glassfish3x remote   runtime  ${cargo.remote.username} ${cargo.remote.password} ${cargo.glassfish.admin.port} ${cargo.hostname}      org.glassfish.deployment deployment-client 3.1.1    

Alguma ideia?

Tive o mesmo problema. Resolvi isso usando a sugestão do Marlon apenas adicionando argumentos de tempo de execução da seguinte maneira:

  ...  runtime  force=true ${hostname} ${username} ${password}   ... 

Aparentemente carga faz uma implantação, não uma reimplantação.

Eu finalmente descobri como fazer isso modificando um pouco a maneira como eu estava implantando e criando o version control do meu aplicativo e usando o sistema de controle de versões de aplicativos da glassfish. Abaixo está o link para uma pequena postagem no blog que escrevi para mostrar como fazer isso:

postagem no blog – implantar para o glassfish remoto usando o plugin de carga

Outra maneira que funciona para mim foi usando maven-glassfish-plugin , configurei o plugin corretamente, deixei o pom como uma reimplementação de execução

   gf-deploy package  redeploy   

em seguida, modifiquei o arquivo asadmin.bat e, após as linhas em que o script está chamando o arquivo appserver-cli.jar, adicionei algumas linhas, observe que a reimplantação chama um comando undeploy e deploy para que o truque do plugin maven glassfish seja print alguma coisa quando o comando undeploy for executado (o Tihs confundirá o plug-in maven como se o comando undeploy tivesse sucesso sempre), mas, quando o comando asadmin for implementado, o stream será executado normalmente.

 :run if NOT %1 == undeploy goto :end %JAVA% -jar "%~dp0..\lib\client\appserver-cli.jar" %* ECHO "TEST" :end if %1 == undeploy goto :end1 %JAVA% -jar "%~dp0..\lib\client\appserver-cli.jar" %* :end1 

depois de fazer essa modificação, o reploy está funcionando tão bem!

Pode ser necessário configurar um novo usuário admin do servidor glassfish no domínio admin. Confira o seguinte http://beforeuquit.blogspot.com/

    Intereting Posts