Jakarta ee EAR的WAR和EJB模块的职责是什么,配置文件放在哪里?

Jakarta ee EAR的WAR和EJB模块的职责是什么,配置文件放在哪里?,jakarta-ee,configuration,ejb,war,ear,Jakarta Ee,Configuration,Ejb,War,Ear,我使用netbean创建JavaEE应用程序,并自动创建两个项目,一个是XXXXX-war,另一个是XXXXX-ejb。这两个项目的责任是什么?我在ejb项目中创建了几个java实体类,并将持久性单元和glassfish-resoruces.xml放在那里。然后在war项目中创建一些托管bean类*.xhtml。然后我创建了一个derby数据库。这是正确的方法吗 我在glassfish服务器上部署war项目时遇到了以下异常 Invalid resource : jdbc/<database

我使用netbean创建JavaEE应用程序,并自动创建两个项目,一个是XXXXX-war,另一个是XXXXX-ejb。这两个项目的责任是什么?我在ejb项目中创建了几个java实体类,并将持久性单元和glassfish-resoruces.xml放在那里。然后在war项目中创建一些托管bean类*.xhtml。然后我创建了一个derby数据库。这是正确的方法吗

我在glassfish服务器上部署war项目时遇到了以下异常

Invalid resource : jdbc/<databasename>__pm

在JavaEE6之前,ejb不能部署在war文件上,因此必须有一个单独的.jar,其中包含.ear中包含的所有ejb

netbeans很可能仍然使用这种“旧”方法。试着看看项目创建时间,netbeans可能会问您需要什么类型的项目

关于额外序列表,您已经为您的
@Id
指定了
@GeneratedValue
,这意味着该Id是使用默认策略自动生成的,而默认策略自动又将其委托给underlyng DB

这听起来很奇怪,但是如果您没有自己创建表,那么derbyDB很可能会使用一个表来管理标识,该表包含实体的所有增量值,实际上在您声明生成架构的persistence-unit.xml中,这会导致在启动时创建所有表:

<properties>
   <property name="javax.persistence.schema-generation.database.action" value="create"/>
</properties>


如果您内省序列表,您应该会找到一些对所有使用
@GeneratedValue

声明的实体的引用,谢谢您的回复。我尝试过,如果我将表名重命名为“system\u user”以外的名称,则将创建该表。我不确定这个名字是否是保留的。
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.1" xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">
  <persistence-unit name="GovernmentDepartment-warPU" transaction-type="JTA">
    <jta-data-source>java:app/warjndi</jta-data-source>
    <class>homesoft.govDept.entity.SystemUserEntity</class>
    <exclude-unlisted-classes>false</exclude-unlisted-classes>
    <properties>
      <property name="javax.persistence.schema-generation.database.action" value="create"/>
    </properties>
  </persistence-unit>
</persistence>
package homesoft.govDept.entity;

import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;

/**
 *
 * @author Kaley
 */
@Entity
@Table(name="system_user")
public class SystemUserEntity implements Serializable {

    private long id;
    private String lastName;
    private String firstName;
    private String email;
    private String password;
    private String type;
    private String address;
    private String phoneNumber;

    @GeneratedValue
    @Id
    public long getId() {
        return id;
    }

    public void setId(long id) {
        this.id = id;
    }

    @Column
    public String getLastName() {
        return lastName;
    }

    public void setLastName(String lastName) {
        this.lastName = lastName;
    }

    @Column
    public String getFirstName() {
        return firstName;
    }

    public void setFirstName(String firstName) {
        this.firstName = firstName;
    }

    @Column
    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    @Column
    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    @Column
    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    @Column
    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    @Column
    public String getPhoneNumber() {
        return phoneNumber;
    }

    public void setPhoneNumber(String phoneNumber) {
        this.phoneNumber = phoneNumber;
    }

}
<properties>
   <property name="javax.persistence.schema-generation.database.action" value="create"/>
</properties>