【发布时间】:2017-07-18 09:34:04
【问题描述】:
当我用Maven 创建我的第一个空Entreprise Application 时,我遇到了这个错误,即使我创建了Entity:
Invalid 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.
Entity.java:
package test;
import java.io.Serializable;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
@javax.persistence.Entity
public class Entity implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
}
然后我发现解决这个问题的方法是在`Entity Class中添加@Stateless:
封装测试;
import java.io.Serializable;
import javax.ejb.Stateless;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
@Stateless
@javax.persistence.Entity
public class Entity implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
}
它工作正常,但现在我想知道为什么我必须将此注释添加到Entity 才能正常工作?
配置细节是:
- Netbeans 8.1
- Glassfish 4.1.1
- pgAdmin III
- Maven 3.5
EAR 模块的 maven-ear-plugin 配置如下:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-ear-plugin</artifactId>
<version>2.6</version>
<configuration>
<version>6</version>
<defaultLibBundleDir>lib</defaultLibBundleDir>
</configuration>
</plugin>
【问题讨论】:
-
您的“企业应用程序”是否只包含一个 WAR 文件?
-
@SteveC 是的
标签: maven jakarta-ee java-ee-6 netbeans-8 glassfish-4