【问题标题】:IllegalStateException: ArchiveDescriptor reused; can URLs be processed multiple times using WildFly Java 8IllegalStateException:ArchiveDescriptor 被重用;可以使用 WildFly Java 8 多次处理 URL
【发布时间】:2015-06-22 10:01:22
【问题描述】:

我们正在将 Java 7 和 JBoss 7 迁移到 Wildfly 和 Java 8。

我已经添加了所有可用的 Weld Libs,因为错误提示 WeldClass 缺失。

在处理过程中出现错误。

    2015-06-22 10:16:56,694 ERROR [org.jboss.msc.service.fail] (ServerService Thread Pool -- 59) MSC000001: Failed to start service jboss.persistenceunit."foo_all.ear/foo_sb.jar#foo": org.jboss.msc.service.StartException in service jboss.persistenceunit."foo_all.ear/foo_sb.jar#foo": java.lang.IllegalStateException: ArchiveDescriptor reused; can URLs be processed multiple times?
    at org.jboss.as.jpa.service.PersistenceUnitServiceImpl$1$1.run(PersistenceUnitServiceImpl.java:172) [wildfly-jpa-8.2.0.Final.jar:8.2.0.Final]
    at org.jboss.as.jpa.service.PersistenceUnitServiceImpl$1$1.run(PersistenceUnitServiceImpl.java:117) [wildfly-jpa-8.2.0.Final.jar:8.2.0.Final]
    at java.security.AccessController.doPrivileged(Native Method) [rt.jar:1.8.0_45]
    at org.wildfly.security.manager.WildFlySecurityManager.doChecked(WildFlySecurityManager.java:474)
    at org.jboss.as.jpa.service.PersistenceUnitServiceImpl$1.run(PersistenceUnitServiceImpl.java:182) [wildfly-jpa-8.2.0.Final.jar:8.2.0.Final]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [rt.jar:1.8.0_45]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [rt.jar:1.8.0_45]
    at java.lang.Thread.run(Thread.java:745) [rt.jar:1.8.0_45]
    at org.jboss.threads.JBossThread.run(JBossThread.java:122)
Caused by: java.lang.IllegalStateException: ArchiveDescriptor reused; can URLs be processed multiple times?
    at org.hibernate.jpa.boot.scan.spi.AbstractScannerImpl.validateReuse(AbstractScannerImpl.java:223) [hibernate-entitymanager-4.3.7.Final.jar:4.3.7.Final]
    at org.hibernate.jpa.boot.scan.spi.AbstractScannerImpl.buildArchiveDescriptor(AbstractScannerImpl.java:102) [hibernate-entitymanager-4.3.7.Final.jar:4.3.7.Final]
    at org.hibernate.jpa.boot.scan.spi.AbstractScannerImpl.scan(AbstractScannerImpl.java:70) [hibernate-entitymanager-4.3.7.Final.jar:4.3.7.Final]
    at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.scan(EntityManagerFactoryBuilderImpl.java:725) [hibernate-entitymanager-4.3.7.Final.jar:4.3.7.Final]
    at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.<init>(EntityManagerFactoryBuilderImpl.java:221) [hibernate-entitymanager-4.3.7.Final.jar:4.3.7.Final]
    at org.hibernate.jpa.boot.spi.Bootstrap.getEntityManagerFactoryBuilder(Bootstrap.java:51) [hibernate-entitymanager-4.3.7.Final.jar:4.3.7.Final]
    at org.hibernate.jpa.HibernatePersistenceProvider.getEntityManagerFactoryBuilder(HibernatePersistenceProvider.java:182) [hibernate-entitymanager-4.3.7.Final.jar:4.3.7.Final]
    at org.hibernate.jpa.HibernatePersistenceProvider.getEntityManagerFactoryBuilder(HibernatePersistenceProvider.java:177) [hibernate-entitymanager-4.3.7.Final.jar:4.3.7.Final]
    at org.hibernate.jpa.HibernatePersistenceProvider.createContainerEntityManagerFactory(HibernatePersistenceProvider.java:152) [hibernate-entitymanager-4.3.7.Final.jar:4.3.7.Final]
    at de.foo.bbis.srv.persistenceprovider.fooHibernatePersistenceProvider.createContainerEntityManagerFactory(fooHibernatePersistenceProvider.java:94) [foo_sb.jar:]
    at org.jboss.as.jpa.service.PersistenceUnitServiceImpl.createContainerEntityManagerFactory(PersistenceUnitServiceImpl.java:318) [wildfly-jpa-8.2.0.Final.jar:8.2.0.Final]
    at org.jboss.as.jpa.service.PersistenceUnitServiceImpl.access$1100(PersistenceUnitServiceImpl.java:67) [wildfly-jpa-8.2.0.Final.jar:8.2.0.Final]
    at org.jboss.as.jpa.service.PersistenceUnitServiceImpl$1$1.run(PersistenceUnitServiceImpl.java:167) [wildfly-jpa-8.2.0.Final.jar:8.2.0.Final]
    ... 8 more

2015-06-22 10:16:56,923 ERROR [org.jboss.as.controller.management-operation] (Controller Boot Thread) JBAS014613: Operation ("deploy") failed - address: ([("deployment" => "foo_all.ear")]) - failure description: {
    "JBAS014671: Failed services" => {"jboss.persistenceunit.\"foo_all.ear/foo_sb.jar#foo\"" => "org.jboss.msc.service.StartException in service jboss.persistenceunit.\"foo_all.ear/foo_sb.jar#foo\": java.lang.IllegalStateException: ArchiveDescriptor reused; can URLs be processed multiple times?
    Caused by: java.lang.IllegalStateException: ArchiveDescriptor reused; can URLs be processed multiple times?"},
    "JBAS014771: Services with missing/unavailable dependencies" => ["jboss.deployment.unit.\"foo_all.ear\".weld.weldClassIntrospector is missing [jboss.deployment.unit.\"foo_all.ear\".beanmanager]"]
}

可以部署ear文件,可以启动服务器。但是在创建了 ear 文件之后,必须在主部署的根目录中部署一个子部署。我们使用自定义的 PersistenceProvider

持久化 xml 如下所示:

  <?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_1.xsd"
    version="2.1">
    <persistence-unit name="foo">
        <provider>de.foo.srv.persistenceprovider.fooHibernatePersistenceProvider</provider>
        <jta-data-source>java:/foo</jta-data-source>
        <jar-file>foo_sb.jar</jar-file>
        <properties>
            <property name="jboss.as.jpa.adapterModule" value="org.jboss.as.jpa.hibernate:4" />
        </properties>
    </persistence-unit>
</persistence>

【问题讨论】:

    标签: java jboss wildfly wildfly-8 illegalstateexception


    【解决方案1】:

    我解决了这个问题。我的问题是persistence.xml中的这一行。

     <jar-file>foo_sb.jar</jar-file>
    

    jar 文件标签在 JBoss AS7 中运行良好,但在使用 Hibernate 4.3.7 的 WildFly 8 中却不行。

    我无法解释为什么不。也许 Wildfly/JBoss 专家可以提供更多详细信息。希望它对某人有所帮助。

    您需要删除 Hibernate 属性,因为它是 WildFly 8 附带的。这一行:

    <property name="jboss.as.jpa.adapterModule" value="org.jboss.as.jpa.hibernate:4" />
    

    【讨论】:

    • 我遇到了同样的错误,但还没有修复!您是否删除了 foo_sb.jar 行或编辑了其他内容?
    • 这可能对其他人有帮助:就我而言;这是一个休眠冲突。 Wildfly 已经有自己的休眠 jar 文件,我的应用程序也有它们。我在 META-INF 中创建了一个 jboss-deployment-structure.xml 并排除了休眠模块。我不再收到此错误。
    猜你喜欢
    • 1970-01-01
    • 2019-04-29
    • 2011-04-28
    • 1970-01-01
    • 1970-01-01
    • 2019-09-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多