2016-01-16 4 views
0

Я пытаюсь запустить автономное приложение с реализацией Weld CDI, и в этом приложении мне нужен EntityManager для работы с базой данных Oracle.IllegalAccessError в приложении Java SE с реализацией Weld

Когда я запускаю мое приложение (через основной метод Weld), следуя показано в CMD линии:

Exception in thread "main" java.lang.IllegalAccessError: tried to access class javax.xml.parsers.FactoryFinder from class javax.xml.parsers.FactoryFinder$ConfigurationError 
    at java.lang.Class.getDeclaringClass0(Native Method) 
    at java.lang.Class.getDeclaringClass(Unknown Source) 
    at java.lang.Class.getEnclosingClass(Unknown Source) 
    at java.lang.Class.getSimpleBinaryName(Unknown Source) 
    at java.lang.Class.isMemberClass(Unknown Source) 
    at org.jboss.weld.util.reflection.Reflections.isNonStaticInnerClass(Reflections.java:139) 
    at org.jboss.weld.bootstrap.BeanDeployer.isBeanCandidate(BeanDeployer.java:98) 
    at org.jboss.weld.bootstrap.BeanDeployer.addClass(BeanDeployer.java:78) 
    at org.jboss.weld.bootstrap.BeanDeployer.addClasses(BeanDeployer.java:135) 
    at org.jboss.weld.bootstrap.BeanDeployment.createBeans(BeanDeployment.java:184) 
    at org.jboss.weld.bootstrap.WeldBootstrap.deployBeans(WeldBootstrap.java:349) 
    at org.jboss.weld.bootstrap.api.helpers.ForwardingBootstrap.deployBeans(ForwardingBootstrap.java:70) 
    at org.jboss.weld.environment.se.Weld.initialize(Weld.java:133) 
    at org.jboss.weld.environment.se.StartMain.go(StartMain.java:41) 
    at org.jboss.weld.environment.se.StartMain.main(StartMain.java:52) 

Что может вызвать такую ​​ошибку?

Вот мой persistence.xml:

<persistence-unit name="oracleUnit" 
        transaction-type="RESOURCE_LOCAL"> 
    <provider>org.hibernate.ejb.HibernatePersistence</provider> 

    <class>entities.MyEntity</class> 

    <properties> 
     <property name="javax.persistence.jdbc.driver" value="oracle.jdbc.driver.OracleDriver" /> 
     <property name="javax.persistence.jdbc.platform" 
        value="org.eclipse.persistence.platform.database.oracle.OraclePlatform" /> 

     <property name="javax.persistence.jdbc.url" 
        value="jdbc:oracle:thin:@localhost:1521:orcl" /> 
     <property name="javax.persistence.jdbc.user" value="TEST" /> 
     <property name="javax.persistence.jdbc.password" value="test" /> 

     <property name="hibernate.dialect" value="org.hibernate.dialect.Oracle10gDialect"/> 
    </properties> 
</persistence-unit> 

Вот зависимости:

<dependencies> 

    <dependency> 
     <groupId>org.jboss.weld.se</groupId> 
     <artifactId>weld-se-core</artifactId> 
     <version>1.1.10.Final</version> 
    </dependency> 
    <dependency> 
     <groupId>org.hibernate</groupId> 
     <artifactId>hibernate-core</artifactId> 
     <version>4.3.8.Final</version> 
    </dependency> 
    <dependency> 
     <groupId>org.hibernate</groupId> 
     <artifactId>hibernate-entitymanager</artifactId> 
     <version>4.3.8.Final</version> 
    </dependency> 
    <dependency> 
     <groupId>org.hibernate</groupId> 
     <artifactId>hibernate-validator</artifactId> 
     <version>5.1.3.Final</version> 
    </dependency> 
    <dependency> 
     <groupId>com.oracle</groupId> 
     <artifactId>ojdbc6</artifactId> 
     <version>11.2.0.3</version> 
    </dependency> 

Вот как я создаю Entity Manager, довольно стандартный:

EntityManagerFactory emf = Persistence.createEntityManagerFactory("oracleUnit"); 
    EntityManager em = emf.createEntityManager(); 

ответ

0

Обновление Weld зависимости к самой новой решена проблема.

Зависимости теперь выглядят следующим образом:

<dependency> 
     <groupId>org.jboss.weld.se</groupId> 
     <artifactId>weld-se-core</artifactId> 
     <version>3.0.0.Alpha14</version> 
    </dependency> 
    <dependency> 
     <groupId>org.jboss</groupId> 
     <artifactId>jandex</artifactId> 
     <version>1.2.2.Final</version> 
    </dependency> 
    <dependency> 
     <groupId>javax.servlet</groupId> 
     <artifactId>javax.servlet-api</artifactId> 
     <version>3.1.0</version> 
    </dependency> 
    <dependency> 
     <groupId>com.oracle</groupId> 
     <artifactId>ojdbc6</artifactId> 
     <version>11.2.0.3</version> 
    </dependency> 
    <dependency> 
     <groupId>org.hibernate</groupId> 
     <artifactId>hibernate-entitymanager</artifactId> 
     <version>4.3.8.Final</version> 
    </dependency> 
Смежные вопросы