问题标签 [embedded-container]
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.
java - 在嵌入式 TomEE 8.0 中使用带有 OpenJPA 的实体管理器时出现神秘的“org.apache.openjpa.persistence.PersistenceException:null”异常
我试图为使用 Apache TomEE Maven 插件开发的 Java Enterprise Web 应用程序编写测试。该应用程序运行良好,一切似乎都正常运行。我想过使用 JUnit Jupiter 5 和嵌入 TomEE 8.0.0 的 EJBContainer API(我对 TomEE Maven 插件使用相同的版本)。但是,在我引导嵌入式容器之后,一旦调用了使用实体管理器的方法,就会启动一个非常混乱的异常。下面是异常,以及嵌入式容器在抛出之前记录的一些信息。
值得注意的是,嵌入式容器记录了以下行,当我使用 TomEE Maven 插件正常启动应用程序时不会出现该行:
以下行也是如此,它不包含在上一个块中:
我尝试按照 URL http://tomee.apache.org/javaagent.html提供的说明进行操作,这很可能会解决问题,但这些似乎已经过时,最终我无法让它们工作。
然后我将用于测试的持久性提供程序从默认的 OpenJPA 3.1.0 切换到 EclipseLink 2.7.5(当前是最新版本),一切似乎都运行良好......直到它没有。Criteria API 用于在应用程序中编写查询,其中一些使用 JOIN 子句和 GROUP BY,并且由于一些讨厌的错误,EclipseLink 在制定 JPQL 等效查询时简单地忽略了 GROUP BY。我试图通过用普通的 JPQL 编写这些查询来临时解决这个问题,但是其中一些在 ORDER BY 子句中使用了 COALESCE 函数,你知道吗……这不受 OpenJPA 支持,导致应用程序在运行时抛出错误在非测试环境中。但这与主要问题无关,所以让我们继续。
下面是我的测试类:
这些是test.persistence.xml
和test.resources.xml
文件:
和文件几乎相同,唯一的区别是数据源和持久性单元名称以及 JDBC URL(测试数据库在内存中,主要数据库是基于文件的,尽管因为我使用的是 TomEE Mavenpersistence.xml
插件resources.xml
没有太大的实际区别)。
请注意,当使用注释在整个应用程序中注入实体管理器时PersistenceContext
,我没有指定unitName
元素以确保使用正确的持久性单元,具体取决于是否正在运行测试;没有歧义,因为两者persistence.xml
都只test.persistence.xml
定义了一个持久性单元,因此容器会自动选择正确的持久性单元(在运行测试时,主资源文件被忽略而有利于测试文件)。
如前所述,只要调用实体管理器方法(甚至entityManager.getProperties()
),就会引发异常。在测试中,该方法userAgent.createUser(user)
被调用,如下所示:
spring-boot - 嵌入式容器测试 Spring Boot 在 bitbucket 管道上失败
运行 Playtika 嵌入式 postgres 容器导致 bitbucket 管道失败
com.github.dockerjava.api.exception.DockerException: Status 403: {"message":"authorization denied by plugin pipelines: Invalid content length provided"}
完整的堆栈跟踪位于 zip 文件 test.zip
我对创建这些管道有点陌生,我不知道该怎么做。我尝试做很多我发现的事情,例如 https://github.com/testcontainers/testcontainers-java/issues/3296 和其他一些
我的引导文件具有以下属性
我的 build.gradle.kts 和我的管道配置在这个 zip config-files.zip
有人可以帮我弄这个吗?我不知道该怎么做...
更新 2020-11-09
这是使用 Spring 2.3.5 构建的管道的堆栈跟踪
更新 2020-11-09 2
这是带有管道 yaml 的项目,我删除了所有其他内容,只留下了我在 bitbucket 上测试的基本内容,并且在同一点上失败了