如何使用 Jenkins 在 GlassFish 4 服务器中部署 war 文件

2023-12-13

我正在使用 Jenkins 在 GlassFish 4 服务器中部署 war 文件。但无法部署 Glassfish 4 服务器中的 war 文件。
我正在遵循以下流程。

enter image description here

但它在构建时给出以下错误。

错误:构建步骤失败,出现异常 org.codehaus.cargo.util.CargoException:无法创建 部署经理位于 org.codehaus.cargo.container.spi.deployer.AbstractJsr88Deployer.getDeploymentManager(AbstractJsr88Deployer.java:356) 在 org.codehaus.cargo.container.spi.deployer.AbstractJsr88Deployer.redeploy(AbstractJsr88Deployer.java:192) 在 hudson.plugins.deploy.CargoContainerAdapter.deploy(CargoContainerAdapter.java:77) 在 hudson.plugins.deploy.CargoContainerAdapter$DeployCallable.invoke(CargoContainerAdapter.java:147) 在 hudson.plugins.deploy.CargoContainerAdapter$DeployCallable.invoke(CargoContainerAdapter.java:117) 在 hudson.FilePath.act(FilePath.java:1047) 处 hudson.FilePath.act(FilePath.java:1025) 在 hudson.plugins.deploy.CargoContainerAdapter.redeploy(CargoContainerAdapter.java:114) 在 hudson.plugins.deploy.PasswordProtectedAdapterCargo.redeploy(PasswordProtectedAdapterCargo.java:93) 在 hudson.plugins.deploy.DeployPublisher.perform(DeployPublisher.java:64) 在 hudson.tasks.BuildStepMonitor$3.perform(BuildStepMonitor.java:45) 在 hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:744) 在 hudson.model.AbstractBuild$AbstractBuildExecution.performAllBuildSteps(AbstractBuild.java:690) 在 hudson.model.Build$BuildExecution.post2(Build.java:186) 处 hudson.model.AbstractBuild$AbstractBuildExecution.post(AbstractBuild.java:635) 在 hudson.model.Run.execute(Run.java:1819) 处 hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43) 在 hudson.model.ResourceController.execute(ResourceController.java:97) 在 hudson.model.Executor.run(Executor.java:429) 引起: javax.enterprise.deploy.spi.exceptions.DeploymentManagerCreationException: 无法获取 DeploymentManager;没有注册 DeploymentFactory 处理此 URI javax.enterprise.deploy.shared.factories.DeploymentFactoryManager.getDeploymentManager(DeploymentFactoryManager.java:117) 在 org.codehaus.cargo.container.glassfish.GlassFish3xRemoteDeployer.getDeploymentManager(GlassFish3xRemoteDeployer.java:82) 在 org.codehaus.cargo.container.spi.deployer.AbstractJsr88Deployer.getDeploymentManager(AbstractJsr88Deployer.java:352) ... 18 更多 javax.enterprise.deploy.spi.exceptions.DeploymentManagerCreationException: 无法获取 DeploymentManager;没有注册 DeploymentFactory 处理此 URI javax.enterprise.deploy.shared.factories.DeploymentFactoryManager.getDeploymentManager(DeploymentFactoryManager.java:117) 在 org.codehaus.cargo.container.glassfish.GlassFish3xRemoteDeployer.getDeploymentManager(GlassFish3xRemoteDeployer.java:82) 在 org.codehaus.cargo.container.spi.deployer.AbstractJsr88Deployer.getDeploymentManager(AbstractJsr88Deployer.java:352) 在 org.codehaus.cargo.container.spi.deployer.AbstractJsr88Deployer.redeploy(AbstractJsr88Deployer.java:192) 在 hudson.plugins.deploy.CargoContainerAdapter.deploy(CargoContainerAdapter.java:77) 在 hudson.plugins.deploy.CargoContainerAdapter$DeployCallable.invoke(CargoContainerAdapter.java:147) 在 hudson.plugins.deploy.CargoContainerAdapter$DeployCallable.invoke(CargoContainerAdapter.java:117) 在 hudson.FilePath.act(FilePath.java:1047) 处 hudson.FilePath.act(FilePath.java:1025) 在 hudson.plugins.deploy.CargoContainerAdapter.redeploy(CargoContainerAdapter.java:114) 在 hudson.plugins.deploy.PasswordProtectedAdapterCargo.redeploy(PasswordProtectedAdapterCargo.java:93) 在 hudson.plugins.deploy.DeployPublisher.perform(DeployPublisher.java:64) 在 hudson.tasks.BuildStepMonitor$3.perform(BuildStepMonitor.java:45) 在 hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:744) 在 hudson.model.AbstractBuild$AbstractBuildExecution.performAllBuildSteps(AbstractBuild.java:690) 在 hudson.model.Build$BuildExecution.post2(Build.java:186) 处 hudson.model.AbstractBuild$AbstractBuildExecution.post(AbstractBuild.java:635) 在 hudson.model.Run.execute(Run.java:1819) 处 hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43) 在 hudson.model.ResourceController.execute(ResourceController.java:97) 在 hudson.model.Executor.run(Executor.java:429) 构建步骤“部署” 容器的战争/耳朵将构建标记为失败已完成:失败


我能够使用以下两种方法中的任何一种方法部署到 glassfish 4:

  1. 方法1 使用新版本的部署到容器插件

    您可以从 github 克隆以下内容(注意:您可以尝试使用新版本的插件)

    https://github.com/jenkinsci/deploy-plugin/tree/205715c3556ade8d8665de677ebb41e35ee64793

    现在构建项目,在目标文件夹中您可以找到可以安装在 jenkins 中的deploy.hpi 文件。该版本支持 Glassfish 4。

    手动安装插件:如何在 Jenkins 中手动安装插件

  2. 方法2 在jenkins中添加以下内容作为执行shell。根据需要更新值并创建glassfish密码文件。它将取消delpoyear文件并部署新的。

#!/bin/bash

# FOR JENKINS

# Update following values as required
GLASSFISH_PASSWORD_FILE_PATH=/home/pwd

ASADMIN_PATH="/home/glassfish4/glassfish/bin/asadmin"
ASADMIN_BASE_CMD="$ASADMIN_PATH --host 10.13.209.100 --port 9048 --user admin2 --passwordfile $GLASSFISH_PASSWORD_FILE_PATH"

DEPLOY_EAR_FILE_PATH="Dummy-project-ear/target"
DEPLOY_EAR_FILE_NAME="Dummy-project-ear-1.0-SNAPSHOT.ear"

UNDEPLOY_EAR_NAME="Dummy-project-ear-1.0-SNAPSHOT"

# Commands

$ASADMIN_BASE_CMD list-applications
$ASADMIN_BASE_CMD undeploy $UNDEPLOY_EAR_NAME
$ASADMIN_BASE_CMD deploy $DEPLOY_EAR_FILE_PATH/$DEPLOY_EAR_FILE_NAME
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 Jenkins 在 GlassFish 4 服务器中部署 war 文件 的相关文章

  • Jenkins中找不到环境变量

    我想在詹金斯中设置很多变量 我试过把它们放进去 bashrc bash profile and profile of the jenkins用户 但 Jenkins 在构建发生时找不到它们 唯一有效的方法是将所有环境变量放入Jenkinsf
  • Jenkins 可以检测到任何 svn 用户每次提交代码吗?

    Jenkins 可以检测到任何 svn 用户每次提交代码吗 我想知道每次 Jenkins 提交 svn user 时 有什么方法或 jenkins 插件吗 现在我用svn updateJenkins 中的 cmd 来更新 svn 您可以按照
  • 无法从 jenkins 作为后台进程运行 nohup 命令

    更新 根据下面的讨论 我编辑了我的答案以获得更准确的描述 我正在尝试从詹金斯运行 nohup 命令 完整的命令是 nohup java jar home jar server process 0 35 jar prod gt gt var
  • 如何将 Hudson/Jenkins 参数传递给 Windows 批处理命令

    好吧 我需要在我的 Hudson 作业中执行一个批处理文件 我有一个参数 Jenkis 参数 我需要将这个值 如参数 传递给批处理文件 我尝试了以下操作 Deploy cmd configuration DEPLOYCONFIGURATIO
  • 有 JUnit Attachments Jenkins 插件工作的示例吗?

    在过去一个小时左右的时间里 我一直在努力让以下工作正常进行 我将附件存储在目标目录中 但它们在班级级别或测试级别的测试页面上都没有链接 我尝试了以下每种组合 放置附件文件夹target surefire reports class 与目标
  • 如何在 Jenkins 构建之前自动合并 Git 分支?

    如何在 Jenkins 构建之前自动合并 Git 分支 我有 2 个版本 一个用于分支master和一个用于生产 我想做 Git 合并origin master当我进行生产构建时 Jenkins 上最新的 Git 插件支持这一点 刚刚设置C
  • 执行Jenkinsfile时如何获取管道配置字段“脚本路径”?

    如何从 Jenkinsfile groovy 获取 Jenkins 中管道配置字段 脚本路径 的内容 在此示例中 我想在执行 Jenkinsfile 本身时获取字符串 Apps mq logger Jenkinsfile 您可以通过这种方式
  • 如何仅根据拉取请求在 Jenkins 中运行阶段?

    我现在有一个基于 Jenkinsfile 的管道 其中包含多个阶段 每次提交到 Github 时都会由 webhook 触发 我想在每次提交时保持 构建 和 单元测试 阶段运行 但仅在分支准备拉取请求时运行 集成测试 阶段 我想要的是 st
  • JMeter:来自 Jenkins 的九个以上参数

    我试图将超过九个参数从 Jenkins 传递到 JMeter4 0 当我阅读时 我发现 JMeter 不接受超过 9 个参数 作为解决方法 我想将所有参数作为字符串传递 并在 JMeter BeanShell 中将其拆分 java jar
  • 降低 Sonar 2.1.x 中的日志级别

    我有一个 Maven 3 x 版本 它使用 Sonar 2 1 x 进行质量控制 maven sonar 插件在 Jenkins 内部使用来运行声纳检查 在 Jenkins 构建过程中 当 Sonar 启动时 它会在 INFO 级别记录很多
  • 将变量从 jenkins 传递到 testng.xml

    我想根据从詹金斯传递的变量运行测试用例 例如 选择您要运行的测试用例 测试用例一 测试用例二 在 pom xml maven 中
  • 如何使用ssh直接连接远程docker容器

    我想直接使用 ssh 连接到远程运行的 Docker 容器 通常我可以 ssh i privateKey user host docker ps which will list all running containers docker e
  • Jenkins:有什么方法可以清理 Jenkins 工作区吗?

    如何清理 Jenkins 中的工作区 我在用AccuRev作为版本控制工具 我创建freestyle詹金斯的项目 有一种方法可以清理 Jenkins 中的工作区 您可以在构建之前或构建之后清理工作区 首先 安装工作区清理插件 https w
  • 詹金斯钩子不工作 - 詹金斯位桶

    您好 我正在使用 jenkins 和 bitbucket 当我向 bitbucket 存储库提交任何内容时 我想触发 jenkins 中的构建 在詹金斯 我创建了一个名为test 1 在配置部分Build Triggers我勾选的部分Tri
  • 在声明性詹金斯管道中 - 我可以动态设置代理标签吗?

    有没有办法动态设置代理标签而不是普通字符串 该工作有 2 个阶段 第一阶段 始终在 主 代理上运行 在此阶段结束时 我将知道第二阶段应在哪个代理上运行 第二阶段 应该在第一阶段决定的代理上运行 我的 不起作用 尝试如下所示 pipeline
  • 如何根据作业参数设置 Jenkins 环境变量?

    我有一个项目 需要根据用户选择的选择参数设置环境变量 每个项目都有一个主题项目依赖项 我想让用户选择项目 然后从属性文件加载主题名称 就像是 proj1 theme1 proj2 theme2 proj3 theme3 如果用户选择proj
  • 让 Jenkins 对远程用户不可见

    我的本地 Windows 设备上有一个 Jenkins 服务器 但我想让它对外界不可见 有关服务器的办公室规则 明显且不隐晦的 效果令人满意的方法是设置防火墙规则来阻止对其端口的传入访问 但我认为必须有一个 Jenkins 设置来阻止它向除
  • 使用 Groovy 从 Jenkins 主节点访问从节点上的文件

    我正在使用 Jenkins Build Flow 插件来实现并行化 Groovy DSL 执行某些文件操作 即使该选项Restrict where this project can be run设置为在特定从属设备上运行作业 DSL 在主控
  • Git 子模块未在 Jenkins 构建中更新

    我在詹金斯的一个项目中有一个子模块 我已启用高级设置以递归更新子模块 当我运行构建时 我看到工作区包含子模块中的文件 问题是 它似乎是子模块的第一个修订版 当我推送更改 托管在 GitHub 上的存储库 时 Jenkins 似乎没有更新子模
  • 如何将用户输入密码与凭据密码进行比较

    我有一个脚本化管道 它使用以下命令请求用户的密码input函数并将其与用户保存的凭据密码进行比较 如果用户输入的是一个类型string然后就可以了 但是 当我将输入类型更改为password 因此当用户键入它时 它在屏幕上不可见 它会失败并

随机推荐