【问题标题】:Trouble with deploying ear-file in Payara 5, that contains ejb-module在 Payara 5 中部署包含 ejb-module 的 ear 文件时遇到问题
【发布时间】: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


【解决方案1】:

问题出在 domain.xml 中。我只是从 payara 4.1 配置文件夹中复制它,这是错误的决定。正确的方法是:获取原始文件并不断对其进行更改。不幸的是,EJB 还有一个问题,但是上面描述的所有错误都消失了。

【讨论】:

    猜你喜欢
    • 2023-03-18
    • 2019-08-28
    • 1970-01-01
    • 1970-01-01
    • 2012-04-02
    • 1970-01-01
    • 2015-06-04
    • 2014-08-09
    • 1970-01-01
    相关资源
    最近更新 更多