Hibernate ehcache glassfish 3.1.2死锁

Hibernate ehcache glassfish 3.1.2死锁,hibernate,glassfish-3,ehcache,Hibernate,Glassfish 3,Ehcache,我在将ehcache与jpa和hibernate一起使用时遇到问题。在这个项目中,我有两个实体:Country和Provider,它们与一个附加列有多个关系(我想知道是否为特定的国家/地区启用了一个Provider)。 我最初的方法是使用一个第三实体CountryProvider和一个组合的primaryKey,但由于安装程序的复杂性,并听取了这些家伙的意见()“为了简化您的生活,我建议向关联类添加一个生成的Id属性”。我添加了一个人工主键,并将这两个实体映射为onetomany。 只有当我想在

我在将ehcache与jpa和hibernate一起使用时遇到问题。在这个项目中,我有两个实体:Country和Provider,它们与一个附加列有多个关系(我想知道是否为特定的国家/地区启用了一个Provider)。
我最初的方法是使用一个第三实体CountryProvider和一个组合的primaryKey,但由于安装程序的复杂性,并听取了这些家伙的意见()“为了简化您的生活,我建议向关联类添加一个生成的Id属性”。我添加了一个人工主键,并将这两个实体映射为onetomany。
只有当我想在glassfish上部署时,才会出现以下死锁:

    Java stack information for the threads listed above:
===================================================
"net.sf.ehcache.CacheManager@72d47b5a":
    at org.glassfish.web.loader.WebappClassLoader.extractResources(WebappClassLoader.java:2267)
    - waiting to lock <0x00000000e2e6c8b0> (a org.glassfish.web.loader.WebappClassLoader)
    at org.glassfish.web.loader.WebappClassLoader.findResourceInternalFromJars(WebappClassLoader.java:2253)
    at org.glassfish.web.loader.WebappClassLoader.findResourceInternal(WebappClassLoader.java:2095)
    - locked <0x00000000e2f202a0> (a [Ljava.util.jar.JarFile;)
    at org.glassfish.web.loader.WebappClassLoader.findResource(WebappClassLoader.java:1036)
    at org.glassfish.web.loader.WebappClassLoader.findResource(WebappClassLoader.java:1020)
    at org.glassfish.web.loader.WebappClassLoader.getResourceAsStream(WebappClassLoader.java:1254)
    at java.lang.Class.getResourceAsStream(Class.java:2032)
    at net.sf.ehcache.util.ProductInfo.parseProductInfo(ProductInfo.java:67)
    at net.sf.ehcache.util.ProductInfo.<init>(ProductInfo.java:49)
    at net.sf.ehcache.util.ProductInfo.<init>(ProductInfo.java:40)
    at net.sf.ehcache.util.UpdateChecker.buildParamsString(UpdateChecker.java:125)
    at net.sf.ehcache.util.UpdateChecker.buildUpdateCheckUrl(UpdateChecker.java:121)
    at net.sf.ehcache.util.UpdateChecker.doCheck(UpdateChecker.java:69)
    at net.sf.ehcache.util.UpdateChecker.checkForUpdate(UpdateChecker.java:60)
    at net.sf.ehcache.util.UpdateChecker.run(UpdateChecker.java:51)
    at java.util.TimerThread.mainLoop(Timer.java:512)
    at java.util.TimerThread.run(Timer.java:462)
"admin-thread-pool-4848(5)":
    at org.glassfish.web.loader.WebappClassLoader.findResourceInternal(WebappClassLoader.java:2095)
    - waiting to lock <0x00000000e2f202a0> (a [Ljava.util.jar.JarFile;)
    at org.glassfish.web.loader.WebappClassLoader.findResourceInternal(WebappClassLoader.java:2066)
    at org.glassfish.web.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:1976)
    at org.glassfish.web.loader.WebappClassLoader.findClass(WebappClassLoader.java:901)
    at org.glassfish.web.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1476)
    at org.glassfish.web.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1359)
    at org.hibernate.hql.internal.ast.SqlASTFactory.initializeSqlNode(SqlASTFactory.java:242)
    at org.hibernate.hql.internal.ast.SqlASTFactory.create(SqlASTFactory.java:257)
    at antlr.ASTFactory.create(ASTFactory.java:153)
    at antlr.ASTFactory.create(ASTFactory.java:186)
    at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.query(HqlSqlBaseWalker.java:543)
    at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.selectStatement(HqlSqlBaseWalker.java:299)
    at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.statement(HqlSqlBaseWalker.java:247)
    at org.hibernate.hql.internal.ast.QueryTranslatorImpl.analyze(QueryTranslatorImpl.java:248)
    at org.hibernate.hql.internal.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:183)
    - locked <0x00000000f8044b10> (a org.hibernate.hql.internal.ast.QueryTranslatorImpl)
    at org.hibernate.hql.internal.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:136)
    at org.hibernate.engine.query.spi.HQLQueryPlan.<init>(HQLQueryPlan.java:105)
    at org.hibernate.engine.query.spi.HQLQueryPlan.<init>(HQLQueryPlan.java:80)
    at org.hibernate.engine.query.spi.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:168)
    at org.hibernate.internal.SessionFactoryImpl.checkNamedQueries(SessionFactoryImpl.java:1132)
    at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:525)
    at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1744)
    at org.hibernate.ejb.EntityManagerFactoryImpl.<init>(EntityManagerFactoryImpl.java:94)
    at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:905)
    at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:890)
    at org.hibernate.ejb.HibernatePersistence.createContainerEntityManagerFactory(HibernatePersistence.java:74)
    at org.glassfish.persistence.jpa.PersistenceUnitLoader.loadPU(PersistenceUnitLoader.java:206)
    at org.glassfish.persistence.jpa.PersistenceUnitLoader.<init>(PersistenceUnitLoader.java:120)
    at org.glassfish.persistence.jpa.JPADeployer$1.visitPUD(JPADeployer.java:224)
    at org.glassfish.persistence.jpa.JPADeployer$PersistenceUnitDescriptorIterator.iteratePUDs(JPADeployer.java:495)
    at org.glassfish.persistence.jpa.JPADeployer.createEMFs(JPADeployer.java:233)
    at org.glassfish.persistence.jpa.JPADeployer.prepare(JPADeployer.java:168)
    at com.sun.enterprise.v3.server.ApplicationLifecycle.prepareModule(ApplicationLifecycle.java:871)
    at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:410)
    at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:240)
    at org.glassfish.deployment.admin.DeployCommand.execute(DeployCommand.java:389)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl$1.execute(CommandRunnerImpl.java:348)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:363)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:1085)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl.access$1200(CommandRunnerImpl.java:95)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1291)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1259)
    at com.sun.enterprise.v3.admin.AdminAdapter.doCommand(AdminAdapter.java:461)
    at com.sun.enterprise.v3.admin.AdminAdapter.service(AdminAdapter.java:212)
    at com.sun.grizzly.tcp.http11.GrizzlyAdapter.service(GrizzlyAdapter.java:179)
    at com.sun.enterprise.v3.server.HK2Dispatcher.dispath(HK2Dispatcher.java:117)
    at com.sun.enterprise.v3.services.impl.ContainerMapper$Hk2DispatcherCallable.call(ContainerMapper.java:354)
    at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:195)
    at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:860)
    at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:757)
    at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1056)
    at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:229)
    at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)
    at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104)
    at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90)
    at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79)
    at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54)
    at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59)
    at com.sun.grizzly.ContextTask.run(ContextTask.java:71)
    at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532)
    at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513)
    at java.lang.Thread.run(Thread.java:662)

Found 1 deadlock.
上面列出的线程的Java堆栈信息: =================================================== “net.sf.ehcache。CacheManager@72d47b5a": 位于org.glassfish.web.loader.WebappClassLoader.extractResources(WebappClassLoader.java:2267) -等待锁定(org.glassfish.web.loader.WebappClassLoader) 位于org.glassfish.web.loader.WebappClassLoader.findResourceInternalFromJars(WebappClassLoader.java:2253) 位于org.glassfish.web.loader.WebappClassLoader.findResourceInternal(WebappClassLoader.java:2095) -锁定(一个[Ljava.util.jar.JarFile;) 位于org.glassfish.web.loader.WebappClassLoader.findResource(WebappClassLoader.java:1036) 位于org.glassfish.web.loader.WebappClassLoader.findResource(WebappClassLoader.java:1020) 位于org.glassfish.web.loader.WebappClassLoader.getResourceAsStream(WebappClassLoader.java:1254) 位于java.lang.Class.getResourceAsStream(Class.java:2032) 在net.sf.ehcache.util.ProductInfo.parseProductInfo(ProductInfo.java:67)上 位于net.sf.ehcache.util.ProductInfo。(ProductInfo.java:49) 位于net.sf.ehcache.util.ProductInfo。(ProductInfo.java:40) 位于net.sf.ehcache.util.UpdateChecker.buildParamssString(UpdateChecker.java:125) 位于net.sf.ehcache.util.UpdateChecker.buildUpdateCheckUrl(UpdateChecker.java:121) 位于net.sf.ehcache.util.UpdateChecker.doCheck(UpdateChecker.java:69) 位于net.sf.ehcache.util.UpdateChecker.checkForUpdate(UpdateChecker.java:60) 位于net.sf.ehcache.util.UpdateChecker.run(UpdateChecker.java:51) 位于java.util.TimerThread.mainLoop(Timer.java:512) 在java.util.TimerThread.run(Timer.java:462) “admin-thread-pool-4848(5)”: 位于org.glassfish.web.loader.WebappClassLoader.findResourceInternal(WebappClassLoader.java:2095) -等待锁定(一个[Ljava.util.jar.JarFile;) 位于org.glassfish.web.loader.WebappClassLoader.findResourceInternal(WebappClassLoader.java:2066) 位于org.glassfish.web.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:1976) 位于org.glassfish.web.loader.WebappClassLoader.findClass(WebappClassLoader.java:901) 位于org.glassfish.web.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1476) 位于org.glassfish.web.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1359) 位于org.hibernate.hql.internal.ast.SqlASTFactory.initializeSqlNode(SqlASTFactory.java:242) 位于org.hibernate.hql.internal.ast.SqlASTFactory.create(SqlASTFactory.java:257) 在antlr.ASTFactory.create(ASTFactory.java:153)中 创建(ASTFactory.java:186) 位于org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.query(HqlSqlBaseWalker.java:543) 位于org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.selectStatement(HqlSqlBaseWalker.java:299) 位于org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.statement(HqlSqlBaseWalker.java:247) 位于org.hibernate.hql.internal.ast.QueryTranslatorImpl.analyze(QueryTranslatorImpl.java:248) 位于org.hibernate.hql.internal.ast.QueryTranslatorImpl.docomFile(QueryTranslatorImpl.java:183) -锁定(org.hibernate.hql.internal.ast.QueryTranslatorImpl) 位于org.hibernate.hql.internal.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:136) 在org.hibernate.engine.query.spi.HQLQueryPlan.(HQLQueryPlan.java:105) 在org.hibernate.engine.query.spi.HQLQueryPlan.(HQLQueryPlan.java:80) 位于org.hibernate.engine.query.spi.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:168) 位于org.hibernate.internal.SessionFactoryImpl.checknamedquerys(SessionFactoryImpl.java:1132) 位于org.hibernate.internal.SessionFactoryImpl.(SessionFactoryImpl.java:525) 位于org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1744) 位于org.hibernate.ejb.EntityManagerFactoryImpl。(EntityManagerFactoryImpl.java:94) 位于org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:905) 位于org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:890) 位于org.hibernate.ejb.HibernatePersistence.createContainerEntityManager工厂(HibernatePersistence.java:74) 位于org.glassfish.persistence.jpa.PersistenceUnitLoader.loadPU(PersistenceUnitLoader.java:206) 位于org.glassfish.persistence.jpa.PersistenceUnitLoader(PersistenceUnitLoader.java:120) 位于org.glassfish.persistence.jpa.JPADeployer$1.visitPUD(JPADeployer.java:224) 位于org.glassfish.persistence.jpa.JPADeployer$PersistenceUnitDescriptorIterator.iteratePUDs(JPADeployer.java:495) 位于org.glassfish.persistence.jpa.JPADeployer.createEMFs(JPADeployer.java:233) 位于org.glassfish.persistence.jpa.JPADeployer.prepare(JPADeployer.java:168) 在com.sun.enterprise.v3.server.ApplicationLifecycle.prepareModule(ApplicationLifecycle.java:871)上 位于com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:410) 位于com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:240) 位于org.glassfish.deployment.admin.DeployCommand.execute(DeployCommand.java:389) 位于com.sun.enterprise.v3.admin.CommandRunnerImpl$1.execute(CommandRunnerImpl.java:348) 位于com.sun.enterprise.v3.admin.CommandRunnerImpl.docomand(CommandRunnerImpl.java:363) 位于com.sun.enterprise.v3.admin.CommandRunnerImpl.docomand(CommandRunnerImpl.java:1085) 位于com.sun.enterprise.v3.adm