问题标签 [maven-glassfish-plugin]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
3600 浏览

deployment - Maven-glassfish-plugin:如何指定部署目标?

我将 Maven 3.0.4 与 maven-glassfish-plugin 2.1 ( http://maven-glassfish-plugin.java.net/ ) 和 Glassfish 2.1.1 一起使用。

相关 POM.XML 片段:

问题是,我部署到的 Glassfish 服务器为每个开发人员配置了一个独立实例,并且运行mvn glassfish:deploy原因:

注意--target server执行的命令。

如何在 POM 中指定target要部署到的实例(即)?

0 投票
2 回答
4654 浏览

jakarta-ee - 如何为嵌入式 EJB 容器定义测试数据源

我正在尝试使用嵌入式 EJB 容器测试我的 EJB。在生产中,我依赖于应用服务器中配置的 JTA 数据源。但是,在测试期间,我想连接到不同的数据库(内存 Derby)。

问题是我看不到如何告诉 EJB 容器通过连接到内存中的 derby DB 来覆盖我的生产 persistence.xml(在 src/main/resources/META-INF 中)中定义的 JTA 数据源。JTA 数据源在 persistence.xml 文件中定义,如下所示:

尝试 1:使用测试 persistence.xml

我尝试创建一个测试 persistence.xml 文件(在 src/test/resources/META-INF 中),它定义:

但这没有实际意义,因为当我指定 EJB 容器以使用被测模块时

容器只使用主 persistence.xml 文件而不是我的测试文件。

尝试 2:将主类和测试类合并到一个分解模块中

我认为使这种方法起作用的唯一方法是使用此处描述的方法- 将被测模块的类复制到单独的位置(例如 target/ejb-testing-classes),然后复制测试 persistence.xml文件放在顶部,然后将这个新位置指定给 EJB 容器:

但这似乎不必要地笨拙。如果我尝试在容器中部署预打包的模块(即依赖项),将来也可能会出现问题,因为我需要在合并之前分解 jar。

我的愿望:EJB 容器的数据源覆盖属性

我认为可能有其他属性可以传递到 EJB 容器中,但到目前为止,我只能找到适合openEJBwebsphere的属性。我正在使用嵌入式 Glassfish 来提供我的嵌入式 EJB 容器,因为它是目标平台。(我现在找到了 glassfish 属性 - 请参阅下面的更新 #1)

当然,每个尝试使用嵌入式 EJB 容器和与生产数据库不同的数据源测试 EJB 的人都遇到过这个问题。甚至这个人也只是在这一点上放弃并使用了默认的嵌入式数据库,这对我来说不是一个选项。

任何帮助将非常感激。

更新 1:我找到了Glassfish EJB 容器接受的属性列表,起初我似乎可以使用以下属性

在 domain.xml 中定义数据源并将容器指向它。但是,根据源代码,除非还设置了 installation.root 属性,否则此属性将被忽略 - 这意味着需要预先安装 glassfish 才能运行我的测试。这会不可接受地降低我的 Maven 项目的可移植性。:(

更新 2:我为这个问题创建了一个JIRA 问题,并建议为 glassfish EJB 容器引入属性,该容器允许配置 JTA 数据源。

0 投票
0 回答
673 浏览

logging - 使用 maven-embedded-glassfish-plugin 在嵌入式 Glassfish 中指定 logging.properties

我使用包含嵌入式 Glassfish 的 Maven 配置的项目模板(使用 maven-embedded-glassfish-plugin)。我需要启用日志记录,但我什至不知道 Glassfish 中启用了哪个日志记录引擎(因为我没有创建模板)。

该模板使用slf4j-log4j12作为依赖项,但我不确定 slf4j 或 java.util.logging 是否执行实际的日志记录。因此,我创建了两个日志文件,一个logging.properties和一个log4j.properties,并将它们都放入src/main/resourcesand /src/main/resources/META-INF,这两个似乎都不起作用。

我添加java.util.logging.config.file=logging.properties了 Maven Glassfish 系统属性(也适用于 log4j),但也没有成功。我检查了属性文件是否在 JAR 文件中。

如何确定哪个后端负责记录?

如何使用 Maven 嵌入式 Glassfish 插件为嵌入式 Glassfish 指定日志记录配置?

目前,我在默认情况下获得 INFO 级别的日志记录输出。我想这是默认设置。

0 投票
5 回答
2505 浏览

spring - 部署新版本的 Java EE Web 应用程序时出现 java.lang.VerifyError

我在当前的 Web 项目中修改了一些代码以添加 Spring 事务管理。当我在 Eclipse 中部署它时,甚至在我的工作区中调用“Maven clean”和“Maven install”时,一切正常。但是,当我的持续集成服务器 (jenkins) 尝试在我的远程服务器上重新部署它时,我得到一个 java.lang.VerifyError 并且它失败了:

我使用 jdk1.7(我检查了我的服务器,它仍然是环境变量中的正确 JDK)、maven 和 Glassfish。这是我的 pom.xml:

我尝试添加 maven-surefire-plugin,如这篇文章中所示:如何让单元测试在 java 7 中运行:java.lang.VerifyError: Expecting a stackmap frame at branch target but without success... As I'我不是 Maven 专家,很难找出我的配置有什么问题,所以任何帮助都将不胜感激!提前致谢

0 投票
1 回答
260 浏览

linux - 如何在我的 Linux 服务器上使用 maven-glassfish-plugin 进行部署?

我尝试在Linux服务器上部署我的 Web 应用程序。

当我在本地服务器 GlassFish 上部署时:没关系。但是,当我尝试在 Linux 服务器 Glassfish 上部署时:maven 尝试在我的本地计算机(操作系统:Windows)中调用“ asadmin.bat ”。所以构建失败。我希望 Maven在 Linux 服务器上调用“ asadmin shell script ”。

如何向maven-glassfish-plugin服务器 Linux 声明?

0 投票
1 回答
1102 浏览

maven - 如何使用 Liquibase 更新嵌入式 Glassfish 实例中的数据库

我正在将我们的数据库管理转换为 Liquibase。这运行得很好。

作为后续步骤,我想确保所有未来的修改在部署到通用环境之前都经过测试,持续集成风格。我尝试使用以下设置执行此操作:

  • 构建包含 EJB Web 服务的耳朵
  • maven-embedded-glassfish-plugin用于在预集成测试 maven ohase 期间启动 Glassfish 3 的嵌入式 实例
    • 创建我的数据源作为开始目标的一部分
    • 在部署目标期间部署 ear
  • 仍然在预集成测试中,我在同一个数据库 URL 上运行 liquibase:update。在这种情况下,一个 H2 文件数据库
  • 然后我想在部署的应用程序上运行我们的 SoapUI 测试

但是当我走到这一步时,应用程序在数据库中找不到任何数据。所以问题是我是否在我的设置中遗漏了一些东西,或者是否有更好的方法来组织我的预期目标?

pom.xml,嵌入 Glassfish

pom.xml,Liquibase

我在目标表中插入数据的变更日志中有一个变更集。

  1. 我是否设置了正确的用户?
  2. 有没有办法在与 Glassfish 相同的进程中运行 Liquibase 并改用mem:数据库?

谢谢和问候,克里斯蒂安

0 投票
1 回答
939 浏览

maven - maven-glassfish-plugin 从 windows IDE 远程 delopy 到 linux 服务器

我想使用 maven-glassfish-plugin 2.1 部署到远程 Linux 服务器。

但是插件总是尝试调用C:\...\asadmin.bat. 这是错误消息:

[ERROR] Failed to execute goal org.glassfish.maven.plugin:maven-glassfish-plugin:2.1:deploy (default-cli) on project LottoEarth: Deployment of D:\workspaces\eclipse-kepler\Project\target\myProject-0.0.1-SNAPSHOT.war failed. IOException: Cannot run program "D:\opt\glassfish3\glassfish\bin\asadmin.bat": CreateProcess error=2, Das System kann die angegebene Datei nicht finden -> [Help 1]

我试图在我的个人资料中声明操作系统,但没有奏效。

0 投票
1 回答
2066 浏览

pom.xml - Maven Glassfish 插件 - 处理重新部署/部署/取消部署失败

我需要使用 maven 构建和部署战争到 glassfish(问题解释如下)。

目前,我设法使用 maven glassfish 插件部署了战争,并且我使用了目标 redploy,如下面的 POM 所示:

问题:假设已经部署了一个战争,当我执行命令 mvn clean install 并且在部署过程中出现问题。因为我已经将目标用作重新部署,所以战争将首先进行取消部署,然后进行部署。在我的万一这个POM下次不能用了,因为失败了,战争不存在了。

需要帮助 请帮助我检查 POM 是否部署了战争,然后根据结果我需要启动目标部署或取消部署哪些套件。

假设没有部署战争,我需要在 POM 中调用 glassfish:deploy。

提前感谢您的时间