部署持久性单元失败关闭所有工厂

时间:2013-11-06 05:38:18

标签: java mysql glassfish eclipselink ejb-3.1

非常喜欢Ur的好作品,我在部署我的ejb-jar时遇到了glassfish服务器4的问题。我安装了xampp,所以我从那里使用mysql。我也在使用netbeans。我使用connector / j驱动程序为mysql创建了一个数据源,然后我将它用作我的jta数据源。我似乎无法在网上找到任何解决方案。谢谢这是异常的堆栈跟踪:

INFO:   EclipseLink, version: Eclipse Persistence Services - 2.5.0.v20130507-3faac2b

WARNING:   Problem while unregistering MBean: javax.management.InstanceNotFoundException: TopLink:Name=Development-file_/C_/Users/FOO/Documents/NetBeansProjects/Project/Project-ejb/build/classes/_Project-ejbPU,Type=Configuration

WARNING:   Problem while unregistering MBean: javax.management.InstanceNotFoundException: TopLink:Name=Session(file_/C_/Users/FOO/Documents/NetBeansProjects/Project/Project-ejb/build/classes/_Project-ejbPU)

INFO:   file:/C:/Users/FOO/Documents/NetBeansProjects/Project/Project-ejb/build/classes/_Project-ejbPU logout successful

SEVERE:   java.lang.StackOverflowError
    at org.eclipse.persistence.internal.helper.DatabaseField.hashCode(DatabaseField.java:400)
    at java.util.HashMap.get(HashMap.java:317)
    at org.eclipse.persistence.mappings.OneToOneMapping.getFieldClassification(OneToOneMapping.java:874)
    at org.eclipse.persistence.mappings.OneToOneMapping.getFieldClassification(OneToOneMapping.java:882)
    at org.eclipse.persistence.mappings.OneToOneMapping.getFieldClassification(OneToOneMapping.java:882)
    at org.eclipse.persistence.mappings.OneToOneMapping.getFieldClassification(OneToOneMapping.java:882)
    at org.eclipse.persistence.mappings.OneToOneMapping.getFieldClassification(OneToOneMapping.java:882)
    at org.eclipse.persistence.mappings.OneToOneMapping.getFieldClassification(OneToOneMapping.java:882)
    at org.eclipse.persistence.mappings.OneToOneMapping.getFieldClassification(OneToOneMapping.java:882)
    at org.eclipse.persistence.mappings.OneToOneMapping.getFieldClassification(OneToOneMapping.java:882)
    at org.eclipse.persistence.mappings.OneToOneMapping.getFieldClassification(OneToOneMapping.java:882)
    at org.eclipse.persistence.mappings.OneToOneMapping.getFieldClassification(OneToOneMapping.java:882)
    at org.eclipse.persistence.mappings.OneToOneMapping.getFieldClassification(OneToOneMapping.java:882)
    at org.eclipse.persistence.mappings.OneToOneMapping.getFieldClassification(OneToOneMapping.java:882)
    at org.eclipse.persistence.mappings.OneToOneMapping.getFieldClassification(OneToOneMapping.java:882)
    at org.eclipse.persistence.mappings.OneToOneMapping.getFieldClassification(OneToOneMapping.java:882)
    at org.eclipse.persistence.mappings.OneToOneMapping.getFieldClassification(OneToOneMapping.java:882)
    at org.eclipse.persistence.mappings.OneToOneMapping.getFieldClassification(OneToOneMapping.java:882)
    at org.eclipse.persistence.mappings.OneToOneMapping.getFieldClassification(OneToOneMapping.java:882)
    at org.eclipse.persistence.mappings.OneToOneMapping.getFieldClassification(OneToOneMapping.java:882)
    at org.eclipse.persistence.mappings.OneToOneMapping.getFieldClassification(OneToOneMapping.java:882)
    at org.eclipse.persistence.mappings.OneToOneMapping.getFieldClassification(OneToOneMapping.java:882)
    at org.eclipse.persistence.mappings.OneToOneMapping.getFieldClassification(OneToOneMapping.java:882)
    at org.eclipse.persistence.mappings.OneToOneMapping.getFieldClassification(OneToOneMapping.java:882)
    at org.eclipse.persistence.mappings.OneToOneMapping.getFieldClassification(OneToOneMapping.java:882)
    at org.eclipse.persistence.mappings.OneToOneMapping.getFieldClassification(OneToOneMapping.java:882)

SEVERE:   Exception while deploying the app [Project-ejb]

SEVERE:   Exception during lifecycle processing

org.glassfish.deployment.common.DeploymentException: Exception [EclipseLink-28019] (Eclipse Persistence Services - 2.5.0.v20130507-3faac2b): org.eclipse.persistence.exceptions.EntityManagerSetupException
Exception Description: Deployment of PersistenceUnit [Project-ejbPU] failed. Close all factories for this PersistenceUnit.
Internal Exception: java.lang.StackOverflowError
    at org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.createDeployFailedPersistenceException(EntityManagerSetupImpl.java:816)
    at org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.deploy(EntityManagerSetupImpl.java:756)
    at org.eclipse.persistence.internal.jpa.EntityManagerFactoryDelegate.getAbstractSession(EntityManagerFactoryDelegate.java:204)
    at org.eclipse.persistence.internal.jpa.EntityManagerFactoryDelegate.createEntityManagerImpl(EntityManagerFactoryDelegate.java:304)
    at org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.createEntityManagerImpl(EntityManagerFactoryImpl.java:336)
    at org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:302)
    at org.glassfish.persistence.jpa.JPADeployer$2.visitPUD(JPADeployer.java:451)
    at org.glassfish.persistence.jpa.JPADeployer$PersistenceUnitDescriptorIterator.iteratePUDs(JPADeployer.java:510)
    at org.glassfish.persistence.jpa.JPADeployer.iterateInitializedPUsAtApplicationPrepare(JPADeployer.java:492)
    at org.glassfish.persistence.jpa.JPADeployer.event(JPADeployer.java:398)
    at org.glassfish.kernel.event.EventsImpl.send(EventsImpl.java:131)

2 个答案:

答案 0 :(得分:1)

在我的情况下,我跟踪了与我的代码相关的完整跟踪,直到达到......在我的情况下,我遇到了一个名为Query的问题:

Grave:Excepciónaldesplegarlaaplicación[segeca_restful]:Exception [EclipseLink-28019](Eclipse Persistence Services - 2.5.0.v20130507-3faac2b):org.eclipse.persistence.exceptions.EntityManagerSetupException 异常说明:PersistenceUnit [segeca_restfulPU]的部署失败。关闭此PersistenceUnit的所有工厂。 内部异常:异常[EclipseLink-0](Eclipse Persistence Services - 2.5.0.v20130507-3faac2b):org.eclipse.persistence.exceptions.JPQLException 异常说明:语法错误解析[SELECT p FROM Peticion p WHERE p.usuarioIdusuario.idusuario:= idusuario]。 [31,73]表达式不是有效的条件表达式。

也许在你的情况下根本原因可能是另一个,但我认为如果你检查glassfish的日志,你会发现它。

祝你好运,

此致

卡尔。

答案 1 :(得分:0)

你好我遇到了类似的问题,但根本原因是不同的。我正在为多个Web项目使用一个相同的持久性项目。因此,我的解决方案是从应用程序服务器取消部署所有项目。重建它们并仅部署我需要的项目。有一些缓存。