2013-03-09 69 views
1

我配置了,我使用Datanucleus JPA连接到MySQL。我用datanucleus-enhancer-plugin编译类和增强的实体。我可以使用mvn exec:java来运行我的应用程序,并且我也可以在使用lib(jar依赖项)创建存档后运行它。Datanucleus RDBMS JPA jar-with-dependencues

当我创建一个jar(jar-with-dependencies)时出现这个问题。我得到这个错误:

javax.persistence.PersistenceException: Explicit persistence provider error(s) occurred for "mysql" after trying the following discovered implementations: org.datanucleus.api.jpa.PersistenceProviderImpl from provider: org.datanucleus.api.jpa.PersistenceProviderImpl 
    at javax.persistence.Persistence.createPersistenceException(Persistence.java:244) 
    at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:186) 
    at cantina.crawler.util.JpaUtil.getRdbmsEntityManager(JpaUtil.java:29) 
    at cantina.crawler.bolt.SiteDetectorBolt.prepare(SiteDetectorBolt.java:32) 
    at backtype.storm.daemon.executor$fn__4050$fn__4059.invoke(executor.clj:610) 
    at backtype.storm.util$async_loop$fn__465.invoke(util.clj:375) 
    at clojure.lang.AFn.run(AFn.java:24) 
    at java.lang.Thread.run(Thread.java:722) 
Caused by: org.datanucleus.exceptions.NucleusException: Error creating handler of type "persistence" for metadata parsing : MetaData handler plugin "persistence" was not found. Please check your CLASSPATH and plugin specification. 
    at org.datanucleus.metadata.xml.MetaDataParser.parseMetaDataStream(MetaDataParser.java:269) 
    at org.datanucleus.metadata.xml.MetaDataParser.parseMetaDataURL(MetaDataParser.java:137) 
    at org.datanucleus.metadata.MetaDataUtils.parsePersistenceFiles(MetaDataUtils.java:956) 
    at org.datanucleus.api.jpa.JPAEntityManagerFactory.<init>(JPAEntityManagerFactory.java:342) 
at org.datanucleus.api.jpa.PersistenceProviderImpl.createEntityManagerFactory(PersistenceProviderImpl.java:91) 
    at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:152) 
... 6 more 
Caused by: org.datanucleus.exceptions.NucleusUserException: MetaData handler plugin "persistence" was not found. Please check your CLASSPATH and plugin specification. 
    at org.datanucleus.metadata.xml.MetaDataParser.parseMetaDataStream(MetaDataParser.java:263) 
... 11 more 

我unziped的jar和datanucleus核心文件在那里。我无法弄清楚发生了什么事。

+0

你会发现最终的解决方案? – Campa 2017-07-19 15:12:57

回答

1

当您更改jar时,您并没有打扰过MANIFEST.MF和plugin.xml文件。 DataNucleus jar被打包以允许基于(基于OSGi)的插件机制识别插件和功能。你已经通过玩弄这些罐子来禁用它,所以得到后果。

解决方案:要么使用的罐子所提供,或正确合并(在这种情况下,它是你的责任)

+0

嘿,我在这里得到同样的错误。我下载了[Access Platform](http://www.datanucleus.org/download.html)ZIP文件,然后将所有JAR文件放在'lib'和'deps'中放入我的CLASSPATH中。我错过了什么吗? – Campa 2017-07-19 15:06:03