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