我已经创建了一个带有POJO类"Employee"的EJB程序,但在将EJB部署到JBOSS 7.1 AS服务器时,它没有创建Schema(Schema not Exported)而没有任何错误。
任何人都可以提出建议,程序出了什么问题。
服务器日志
18:43:34445 INFO[org.jboss.as.server](控制器引导线程)JBAS018559:已部署"ojdbc6.jar"18:43:34456信息[org.jboss.as.server.deployment](MSC服务线程1-8)JBAS015876:开始部署"FirstEJBProject.jar"18:43:34587 INFO[org.jboss.as.jpa](MSC服务线程1-8)JBAS011401:Readpersistence.xml for FirstEJB项目18:43:34632信息[org.jboss.as.jpa](MSC服务线程1-5)JBAS011402:正在启动持久性单元服务"FirstEJBProject.jar#FirstEJBP项目"18:43:36284 INFO[org.hibernate.annotations.common.Version](MSC服务线程1-5)HCANN000001:休眠公共注释{4.0.1.Final}18:43:36375 INFO[org.hibernate.Version](MSC服务线程1-5)HHH000412:休眠核心{4.0.1.最终}18:43:36385信息[org.hibernate.cfg.Environment](MSC服务线程1-5)HHH000206:hibernate.properties未找到18:43:36393信息[org.hibernate.cfg.Environment](MSC服务线程1-5)HHH000021:字节码提供程序名称:javassist 18:43:36556 INFO[org.hibernate.ejb.Ejb3Configuration](MSC服务线程1-5)HHH000204:处理PersistenceUnitInfo[名称:FirstEJBProject…]18:43:36993信息[org.hibernate.service.jdbc.connections.internal.ConnectionProviderInitiator](MSC服务线程1-5)HHH000130:实例化显式连接提供者:org.hubinate.jb.connection.InjectedDataSourceConnectionProvider18:43:37939 INFO[org.hibernate.方言.方言](MSC服务线程1-5)HHH000400:使用方言:org.hibernate.dialect.Oracle10g方言18:43:38003信息[org.hibernate.engine.transaction.internal.TransactionFactoryInitializer](MSC业务线程1-5)HHH000268:事务策略:org.hubinate.engine.transaction.internal.jta.CMT交易工厂18:43:38013信息[org.hibernate.hql.internal.ast.ASTQueryTranslatorFactory](MSC服务线程1-5)HHH000397:使用ASTQueryTranslatorFactory18:43:38306 INFO[org.hibernate.validator.util.Version](MSC服务线程1-5)Hibernate Validator 4.2.0.最终18:43:39301信息[org.jboss.as](MSC服务线程1-5)JBAS015951:管理控制台收听http://:9990 18:43:39304 INFO[org.jboss.as](MSC服务线程1-5)JBAS015874:JBoss AS 7.1.1.最终"Brontes"启动于9361毫秒-启动了260项服务中的180项(78项服务被动或按需)18:43:39406 INFO[org.jboss.as.server](展开扫描程序线程-2)JBAS018559:已展开"FirstEJBProject.jar"
Persistence.xml:
<?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="FirstEJBProject">
<jta-data-source>java:/XE</jta-data-source>
<class>Persistance.Employee</class>
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.Oracle10gDialect"/>
<property name="hibernate.hbm2dll.auto" value="create"/>
</properties>
</persistence-unit>
</persistence>
员工POJO类:
package Persistance;
import java.io.Serializable;
import java.util.Date;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
@Entity
public class Employee implements Serializable {
public Employee() {
}
private int idEmployee;
private String nameEmployee;
private String lastNameEmployee;
private Date dateNaissance;
private String function;
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
public int getIdEmployee() {
return idEmployee;
}
public void setIdEmployee(int idEmployee) {
this.idEmployee = idEmployee;
}
public String getNameEmployee() {
return nameEmployee;
}
public void setNameEmployee(String nameEmployee) {
this.nameEmployee = nameEmployee;
}
public String getLastNameEmployee() {
return lastNameEmployee;
}
public void setLastNameEmployee(String lastNameEmployee) {
this.lastNameEmployee = lastNameEmployee;
}
@Temporal(TemporalType.DATE)
public Date getDateNaissance() {
return dateNaissance;
}
public void setDateNaissance(Date dateNaissance) {
this.dateNaissance = dateNaissance;
}
public String getFunction() {
return function;
}
public void setFunction(String function) {
this.function = function;
}
public Employee(String nameEmployee, String lastNameEmployee,
Date dateNaissance, String function) {
super();
this.nameEmployee = nameEmployee;
this.lastNameEmployee = lastNameEmployee;
this.dateNaissance = dateNaissance;
this.function = function;
}
}
我发现您的部署可能存在两个问题:
persistence.xml
文件使用JPA 2.1描述符。JBoss AS 7.1.1支持2.0及更低版本。如果你想要2.1,你应该使用WildFly- 该类对自动生成的Id使用
IDENTITY
策略,并对持久性单元使用Oracle10g方言。Oracle10g不支持SQLIDENTITY
的概念,因此您应该选择不同的策略,如SEQUENCE
或TABLE