【发布时间】:2019-02-11 07:15:35
【问题描述】:
我正在尝试部署 ear 文件,该文件在 Payara 5.184 的依赖项中包含 ejb 模块并出现错误:
11.02.2019 13:57:15.938 | [payara-executor-service-scheduled-task] | ERROR | Exception while deploying the app [my-ear-SNAPSHOT]
11.02.2019 13:57:15.945 | [payara-executor-service-scheduled-task] | ERROR | Exception during lifecycle processing
java.lang.IllegalArgumentException: Invalid ejb jar [lib/my-ejb.jar]: it contains zero ejb.
Note:
1. A valid ejb jar requires at least one session, entity (1.x/2.x style),
or message-driven bean.
2. EJB3+ entity beans (@Entity) are POJOs and please package them as library jar.
3. If the jar file contains valid EJBs which are annotated with EJB component
level annotations (@Stateless, @Stateful, @MessageDriven, @Singleton),
please check server.log to see whether the annotations were processed properly.
使用 payara 4.1,不会发生此错误。如何修复部署错误?
我的 pom 文件有一个简短的版本:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>my</groupId>
<artifactId>my-ears</artifactId>
<version>SNAPSHOT</version>
</parent>
<artifactId>my-ear</artifactId>
<packaging>ear</packaging>
<dependencies>
<dependency>
<groupId>my</groupId>
<artifactId>my-ejb</artifactId>
<version>${project.version}</version>
<type>ejb</type>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-ear-plugin</artifactId>
<configuration>
<version>6</version>
<generateApplicationXml>true</generateApplicationXml>
<skinnyWars>true</skinnyWars>
<defaultJavaBundleDir>lib/</defaultJavaBundleDir>
<defaultLibBundleDir>lib</defaultLibBundleDir>
<filtering>true</filtering>
<modules>
<ejbModule>
<groupId>my</groupId>
<artifactId>my-ejb</artifactId>
<bundleDir>/lib</bundleDir>
</ejbModule>
</modules>
</configuration>
</plugin>
</plugins>
</build>
</project>
【问题讨论】:
-
ejb-jar 似乎包含零个 EJB!您确定错误消息说明中的条件(1)和(2)都满足了吗?如果是这样,请尝试检查日志中的注释 (3)。
-
此 ejb 模块中的类由 @Stateless 注释。在日志中的错误之前:WARN |无法构造 HTTP/2 插件 java.lang.ClassNotFoundException:org.glassfish.grizzly.npn.AlpnServerNegotiator 错误 |解析文件文件时出现异常:/%path to domain%/applications/my-ear-1.4.3.1.1-SNAPSHOT/java.util.concurrent.RejectedExecutionException: Task java.util.concurrent.FutureTask@348af191 从 java.util 拒绝.concurrent.ThreadPoolExecutor@473122d5[正在运行,池大小 = 20,活动线程 = 20,排队任务 = 25,已完成任务 = 19]
-
运行 asadmin set-payara-executor-service-configuration --threadpoolexecutorqueuesize 1000 --port 8556 后错误发生了变化。生命周期处理期间的异常 javax.naming.NameNotFoundException: PaymentsGroupJob not found
标签: java jakarta-ee deployment ejb payara