Java 用货物重新部署远程glassfish失败
我目前正试图使用cargo通过atlassian's Bambol在远程glassfish 3.1.2上部署一个应用程序。 这是一个开发环境,因此每次都会在同一个上下文根上部署具有不同版本号的相同应用程序 但每次我以maven的目标执行任务时:Java 用货物重新部署远程glassfish失败,java,maven,glassfish,cargo,Java,Maven,Glassfish,Cargo,我目前正试图使用cargo通过atlassian's Bambol在远程glassfish 3.1.2上部署一个应用程序。 这是一个开发环境,因此每次都会在同一个上下文根上部署具有不同版本号的相同应用程序 但每次我以maven的目标执行任务时: org.codehaus.cargo:cargo-maven2-plugin:redeploy 我不断得到错误: 11-Jun-2013 15:13:48 Caused by: org.apache.maven.plugin.PluginExec
org.codehaus.cargo:cargo-maven2-plugin:redeploy
我不断得到错误:
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
我需要的是cargo插件强制重新部署,而不管该上下文根已经存在应用程序(旧版本)
如果我手动运行asadmin命令,我可以很容易地添加--force参数,它就会工作
我还有一个额外的限制,我不能在托管Bambol实例的服务器上安装本地版本的glassfish,因此我不能使用maven sh插件之类的东西来手动构建asadmin命令
下面是相关的pom.xml片段:
<build>
<finalName>myapp-${project.version}</finalName>
<plugins>
<plugin>
<groupId>org.codehaus.cargo</groupId>
<artifactId>cargo-maven2-plugin</artifactId>
<version>1.4.2</version>
<configuration>
<container>
<containerId>glassfish3x</containerId>
<type>remote</type>
</container>
<configuration>
<type>runtime</type>
<properties>
<cargo.remote.username>${cargo.remote.username}</cargo.remote.username>
<cargo.remote.password>${cargo.remote.password}</cargo.remote.password>
<cargo.glassfish.admin.port>${cargo.glassfish.admin.port}</cargo.glassfish.admin.port>
<cargo.hostname>${cargo.hostname}</cargo.hostname>
</properties>
</configuration>
</configuration>
<dependencies>
<dependency>
<groupId>org.glassfish.deployment</groupId>
<artifactId>deployment-client</artifactId>
<version>3.1.1</version>
</dependency>
</dependencies>
</plugin>
myapp-${project.version}
org.codehaus.cargo
cargo-maven2-plugin
1.4.2
玻璃鱼3X
遥远的
运行时
${cargo.remote.username}
${cargo.remote.password}
${cargo.glassfish.admin.port}
${cargo.hostname}
org.glassfish.deployment
部署客户端
3.1.1
有什么想法吗?我最终发现了如何通过稍微修改部署和版本控制应用程序的方式以及使用glassfish的应用程序版本控制系统来实现这一点。 下面是我写的一篇小博文的链接,展示了如何做到这一点:
也有同样的问题。使用Marlon的建议解决了这个问题,只需添加运行时参数,如下所示:
...
<configuration>
<type>runtime</type>
<properties>
<cargo.runtime.args>force=true</cargo.runtime.args>
<cargo.hostname>${hostname}</cargo.hostname>
<cargo.remote.username>${username}</cargo.remote.username>
<cargo.remote.password>${password}</cargo.remote.password>
</properties>
</configuration>
...
。。。
运行时
力=真
${hostname}
${username}
${password}
...
显然,cargo执行的是部署,而不是重新部署。您可能需要在管理域中设置一个新的glassfish服务器管理用户。
查看下面的另一种对我有效的方法是使用,我正确配置了插件,我将pom作为重新部署执行
<execution>
<id>gf-deploy</id>
<phase>package</phase>
<goals>
<goal>redeploy</goal>
</goals>
</execution>
在做了这个修改后,reploy总是工作得很好 只是猜测一下:尝试将值为的
cargo.runtime.args
添加到cargo的配置中--force。您好,不幸的是,它没有工作,但收到了相同的错误消息。bump您在这方面有什么进展吗?我仍然遇到同样的问题,还没有找到解决方案。事实上是的,请参见下面的答案。force=true为我解决了这个问题。
: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