GVKun编程网logo

使用带有Datanucleus Maven插件的单独模块中的JDO Persistent类

18

在这里,我们将给大家分享关于使用带有DatanucleusMaven插件的单独模块中的JDOPersistent类的知识,同时也会涉及到如何更有效地c#–请求类型为“System.Data.SqlCl

在这里,我们将给大家分享关于使用带有Datanucleus Maven插件的单独模块中的JDO Persistent类的知识,同时也会涉及到如何更有效地c# – 请求类型为“System.Data.SqlClient.SqlClientPermission,System.Data,Version = 4.0.0.0”的权限、CDH报错:PersistenceException: [PersistenceUnit: cmf.server] Unable to build EntityManagerFactory、Datanucleus,JDO和可执行jar-怎么做?、Exception in thread "AWT-EventQueue-0" javax.persistence.PersistenceException: No Persi...的内容。

本文目录一览:

使用带有Datanucleus Maven插件的单独模块中的JDO Persistent类

使用带有Datanucleus Maven插件的单独模块中的JDO Persistent类

我有一个可以使用JDO持久保存到数据库的应用程序-
我想使用第二个Java模块中的PersistenceCapable类。尽管应用程序会编译一个简单的测试,但会出现以下错误:


com.hello.world.Foo”类不可持久。这意味着该类尚未增强,或者文件的增强版本不在CLASSPATH中(或被未增强的版本隐藏),或者Meta-
找不到该类的数据/注释。

好的,因此增强器插件未在第二个模块的类上运行。我不确定在构建过程中我需要做什么以将增强器指向该模块。

  • 父项目
  • 第二个模块:com.hello.world.Foo

ParentProject pom.xml及其相关部分-问题是如何将增强器指向包含我的持久性类的第二个模块?

    <dependencies>        <dependency>            <groupId>Second Module</groupId>            <artifactId>Second Module</artifactId>            <version>1.0-SNAPSHOT</version>            <scope>compile</scope>        </dependency>        <dependency>            <groupId>javax.jdo</groupId>            <artifactId>jdo-api</artifactId>            <version>3.0.1</version>        </dependency>        <dependency>            <groupId>org.datanucleus</groupId>            <artifactId>datanucleus-core</artifactId>            <version>[3.2.0, 3.2.99)</version>            <scope>runtime</scope>        </dependency>        <dependency>            <groupId>org.datanucleus</groupId>            <artifactId>datanucleus-api-jdo</artifactId>            <version>[3.2.0, 3.2.99)</version>        </dependency>        <dependency>            <groupId>org.datanucleus</groupId>            <artifactId>datanucleus-rdbms</artifactId>            <version>[3.2.0, 3.2.99)</version>            <scope>runtime</scope>        </dependency>    </dependencies>    <build>        <plugins>            <plugin>                <groupId>org.datanucleus</groupId>                <artifactId>datanucleus-maven-plugin</artifactId>                <version>3.3.0-release</version>                <configuration>                    <api>JDO</api>                    <props>${basedir}/datanucleus.properties</props>                    <log4jConfiguration>${basedir}/log4j.properties</log4jConfiguration>                    <verbose>true</verbose>                </configuration>                <executions>                    <execution>                        <phase>process-classes</phase>                        <goals>                            <goal>enhance</goal>                        </goals>                    </execution>                </executions>            </plugin>        </plugins>    </build></project>

答案1

小编典典

知道了-我不得不在问题中添加完全相同的pom.xml配置到第二个模块,并mvninstall在编译父模块之前执行使这些类增强的操作。同时从事Jetty和GAE。我错误地认为父模块会增强模块依赖项中包含的类。

感谢您的帮助DataNucleus!

c# – 请求类型为“System.Data.SqlClient.SqlClientPermission,System.Data,Version = 4.0.0.0”的权限

c# – 请求类型为“System.Data.SqlClient.SqlClientPermission,System.Data,Version = 4.0.0.0”的权限

我有一个 WPF Web应用程序,我“试图访问sql 2000数据库,但我收到以下错误:

Request for the permission of type ‘System.Data.sqlClient.sqlClientPermission,System.Data,Version=4.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089’ Failed.

任何想法如何解决这个问题?我可能需要一个例子,因为我是新的,这是我的第一个WPF应用程序.

解决方法

尝试切换到完全信任应用程序.

CDH报错:PersistenceException: [PersistenceUnit: cmf.server] Unable to build EntityManagerFactory

CDH报错:PersistenceException: [PersistenceUnit: cmf.server] Unable to build EntityManagerFactory

1.在启动CDH中master的服务cloudera-scm-server start并立刻挂掉了,提示如下错误

org.springframework.beans.factory.BeanCreationException: Error creating bean with name ''com.cloudera.server.cmf.TrialState'': Cannot resolve reference to bean ''entityManagerFactoryBean'' while setting constructor argument; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name ''entityManagerFactoryBean'': FactoryBean threw exception on object creation; nested exception is javax.persistence.PersistenceException: [PersistenceUnit: cmf.server] Unable to build EntityManagerFactory
    at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:328)
    at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:106)
    at org.springframework.beans.factory.support.ConstructorResolver.resolveConstructorArguments(ConstructorResolver.java:616)
    at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:148)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1003)

 

2.问题出现的原因,是因为连接到mysql的scm库出错了。

①首先查看连接到mysql的scm库的配置文件db.properties是否正常。

一般情况下位置在 /opt/cm-5.16.1/etc/cloudera-scm-server

②看看里面的配置是否正确

# The database type
# Currently ''mysql'', ''postgresql'' and ''oracle'' are valid databases.
com.cloudera.cmf.db.type=mysql

# The database host
# If a non standard port is needed, use ''hostname:port''
com.cloudera.cmf.db.host=localhost #ip和端口

# The database name
com.cloudera.cmf.db.name=scm #库名

# The database user
com.cloudera.cmf.db.user=scm #库用户,要在数据库中确认一下用户权限

# The database user''s password
com.cloudera.cmf.db.password=scm #库密码

# The db setup type
# By default, it is set to INIT
# If scm-server uses Embedded DB then it is set to EMBEDDED
# If scm-server uses External DB then it is set to EXTERNAL
com.cloudera.cmf.db.setupType=INIT #master为EXTERNAL,slave为INIT

③其实最好的测试办法,就是直接使用用户名和密码登录mysql看看是否能正常访问scm库。

 

3.重启master后可用了。

slave可能会出现下面报错:nested exception is java.lang.RuntimeException: ScmActive at bootup: Failed to validate the identity of Cloudera Manager.

在下一篇《CDH报错:ScmActive at bootup: Failed to validate the identity of Cloudera Manager.》中进行解决。

以上。

Datanucleus,JDO和可执行jar-怎么做?

Datanucleus,JDO和可执行jar-怎么做?

我正在使用Datanucleus和JDO开发用于嵌入式H2数据库的桌面应用程序。当我从Eclipse运行它时,一切正常,但是当我尝试用它制作可执行jar时,它将停止工作。我收到以下错误:

org.datanucleus.exceptions.NucleusUserException:已指定持久性进程使用名称为“
jdo”的ClassLoaderResolver,但DataNucleus插件机制尚未找到该持久化过程。 请检查您的CLASSPATH和插件规范。

当然,这表明我没有正确配置某些内容-
我缺少什么?如果我错过了一些大的东西,那根本就行不通,所以我假设它是一个有缺陷的可执行jar。我已经在其他应用程序中看到了该错误,例如JPOX,该错误已得到修复,但没有给出任何解决方案。

整个错误stacktrace:

Exception in thread "main" javax.jdo.JDOFatalInternalException: Unexpected exception caught.        at javax.jdo.JDOHelper.invokeGetPersistenceManagerFactoryOnImplementation(JDOHelper.java:1193)        at javax.jdo.JDOHelper.getPersistenceManagerFactory(JDOHelper.java:808)        at javax.jdo.JDOHelper.getPersistenceManagerFactory(JDOHelper.java:701)        at db.PersistenceManagerFilter.init(PersistenceManagerFilter.java:44)        at Main.main(Main.java:26)NestedThrowablesStackTrace:java.lang.reflect.InvocationTargetException        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)        at java.lang.reflect.Method.invoke(Unknown Source)        at javax.jdo.JDOHelper$16.run(JDOHelper.java:1965)        at java.security.AccessController.doPrivileged(Native Method)        at javax.jdo.JDOHelper.invoke(JDOHelper.java:1960)        at javax.jdo.JDOHelper.invokeGetPersistenceManagerFactoryOnImplementation(JDOHelper.java:1166)        at javax.jdo.JDOHelper.getPersistenceManagerFactory(JDOHelper.java:808)        at javax.jdo.JDOHelper.getPersistenceManagerFactory(JDOHelper.java:701)        at db.PersistenceManagerFilter.init(PersistenceManagerFilter.java:44)        at Main.main(Main.java:26)Caused by: org.datanucleus.exceptions.NucleusUserException: Persistence process has been specified to use a ClassLoaderResolver of name "jdo" yet this has not been found by the DataNucleus plugin mechanism. Please check your CLASSPATH and plugin specification.        at org.datanucleus.NucleusContext.<init>(NucleusContext.java:233)        at org.datanucleus.NucleusContext.<init>(NucleusContext.java:196)        at org.datanucleus.NucleusContext.<init>(NucleusContext.java:174)        at org.datanucleus.api.jdo.JDOPersistenceManagerFactory.<init>(JDOPersistenceManagerFactory.java:364)        at org.datanucleus.api.jdo.JDOPersistenceManagerFactory.createPersistenceManagerFactory(JDOPersistenceManagerFactory.java:294)        at org.datanucleus.api.jdo.JDOPersistenceManagerFactory.getPersistenceManagerFactory(JDOPersistenceManagerFactory.java:195)        ... 12 more

它指向的行是PersistenceManagerFilter初始化方法:

pmf = JDOHelper.getPersistenceManagerFactory(getProperties());

属性文件如下所示:

    javax.jdo.PersistenceManagerFactoryClass=org.datanucleus.api.jdo.JDOPersistenceManagerFactorydatanucleus.ConnectionDriverName=org.h2.Driverdatanucleus.ConnectionURL=jdbc:h2:datanucleusdatanucleus.ConnectionUserName=sadatanucleus.ConnectionPassword=

我拥有来自maven的所有依赖关系,目标是使用依赖关系进行部署。依赖性在datanucleus页面http://www.datanucleus.org/products/datanucleus/jdo/maven.html上说明

有任何想法吗?

答案1

小编典典

添加到DataNucleus答案。
为了满足您的需求,您应该使用 maven-dependency-plugin
并将以下内容添加到pom.xml中

<build>    <plugins>        <plugin>            <groupId>org.apache.maven.plugins</groupId>            <artifactId>maven-dependency-plugin</artifactId>            <version>2.4</version>            <executions>                <execution>                    <id>copy-dependencies</id>                    <phase>package</phase>                    <goals>                        <goal>copy-dependencies</goal>                    </goals>                    <configuration>                        <outputDirectory>${project.build.directory}/jars</outputDirectory>                        <overWriteReleases>false</overWriteReleases>                        <overWriteSnapshots>false</overWriteSnapshots>                        <overWriteIfNewer>true</overWriteIfNewer>                    </configuration>                </execution>            </executions>        </plugin>    </plugins></build>

然后,依赖项将位于 target / jars 目录中。

要执行您的应用程序,请使用以下命令:

Windows:
java -cp“ yourFile.jar; jars / *” package.className

Linux:
java -cp“ yourFile.jar:jars / *” package.className

注意:请勿使用jars / * .jar,这将无法正常工作

Exception in thread

Exception in thread "AWT-EventQueue-0" javax.persistence.PersistenceException: No Persi...

swing

Exception in thread "AWT-EventQueue-0" javax.persistence.PersistenceException: No Persistence provider for EntityManager named null
    at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:61)
    at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:39)
    at com.hs.selenium.MainFrame.initComponents(MainFrame.java:49)
    at com.hs.selenium.MainFrame.<init>(MainFrame.java:30)
    at com.hs.selenium.MainFrame$2.run(MainFrame.java:198)
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
    at java.awt.EventQueue.access$500(EventQueue.java:97)
    at java.awt.EventQueue$3.run(EventQueue.java:709)
    at java.awt.EventQueue$3.run(EventQueue.java:703)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

 

今天关于使用带有Datanucleus Maven插件的单独模块中的JDO Persistent类的分享就到这里,希望大家有所收获,若想了解更多关于c# – 请求类型为“System.Data.SqlClient.SqlClientPermission,System.Data,Version = 4.0.0.0”的权限、CDH报错:PersistenceException: [PersistenceUnit: cmf.server] Unable to build EntityManagerFactory、Datanucleus,JDO和可执行jar-怎么做?、Exception in thread "AWT-EventQueue-0" javax.persistence.PersistenceException: No Persi...等相关知识,可以在本站进行查询。

本文标签: