- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有两个几乎相同的项目(都是用maven创建的,都非常简单),其中一个部署没有任何问题,另一个给我一个PersistenceException:
javax.persistence.PersistenceException: JBAS011466: PersistenceProvider 'com.objectdb.jpa.Provider' not found
我只是不明白我在这里缺少什么。
工作项目是网络应用程序。我从 JPA Java EE 6 Tutorial 得到的。我有一个简单的 jsp
页面、servlet、一个数据库实体和一个实体的无状态 bean。
当我部署它时,我可以调用jsp,输入一些示例数据,这些数据将传递给servlet,然后servlet再次使用bean和相应的实体将数据写入ObjectDB数据库。简单的。
不工作项目应该是一个ejb模块,仅包含实体
和无状态bean
.
但是当我尝试将其部署到本地 WildFly 服务器上时,出现上述错误。我还注意到,编译后的 ejb.jar 只有几千字节,而 Web 应用程序 war 文件则使用 1.4 MB。所以我猜它包含必要的 objectdb.jar
库。但我可以让 ejb.jar 包含该库。
这是我的 Maven pom.xml 工作 Web 应用程序(抱歉它很长):
<groupId>com.me</groupId>
<artifactId>ObjectDBMavenTest</artifactId>
<version>2.01.1-00001</version>
<packaging>war</packaging>
<name>ObjectDBMavenTest</name>
<properties>
<endorsed.dir>${project.build.directory}/endorsed</endorsed.dir>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>com.objectdb</groupId>
<artifactId>objectdb</artifactId>
<version>2.6.1_06</version>
</dependency>
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-web-api</artifactId>
<version>7.0</version>
<scope>provided</scope>
</dependency>
</dependencies>
<repositories>
<repository>
<id>objectdb</id>
<name>ObjectDB Repository</name>
<url>http://m2.objectdb.com</url>
</repository>
</repositories>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
<compilerArguments>
<endorseddirs>${endorsed.dir}</endorseddirs>
</compilerArguments>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.3</version>
<configuration>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.6</version>
<executions>
<execution>
<phase>validate</phase>
<goals>
<goal>copy</goal>
</goals>
<configuration>
<outputDirectory>${endorsed.dir}</outputDirectory>
<silent>true</silent>
<artifactItems>
<artifactItem>
<groupId>javax</groupId>
<artifactId>javaee-endorsed-api</artifactId>
<version>7.0</version>
<type>jar</type>
</artifactItem>
</artifactItems>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
作为比较,不工作的 ejb 项目的 pom.xml:
<groupId>com.me</groupId>
<artifactId>Database</artifactId>
<version>2.01.1-00001</version>
<packaging>ejb</packaging>
<name>Database</name>
<properties>
<endorsed.dir>${project.build.directory}/endorsed</endorsed.dir>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>com.objectdb</groupId>
<artifactId>objectdb</artifactId>
<version>2.6.1_06</version>
</dependency>
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-web-api</artifactId>
<version>7.0</version>
<scope>provided</scope>
</dependency>
</dependencies>
<repositories>
<repository>
<id>objectdb</id>
<name>ObjectDB Repository</name>
<url>http://m2.objectdb.com</url>
</repository>
</repositories>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
<compilerArguments>
<endorseddirs>${endorsed.dir}</endorseddirs>
</compilerArguments>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-ejb-plugin</artifactId>
<version>2.3</version>
<configuration>
<ejbVersion>3.1</ejbVersion>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.6</version>
<executions>
<execution>
<phase>validate</phase>
<goals>
<goal>copy</goal>
</goals>
<configuration>
<outputDirectory>${endorsed.dir}</outputDirectory>
<silent>true</silent>
<artifactItems>
<artifactItem>
<groupId>javax</groupId>
<artifactId>javaee-endorsed-api</artifactId>
<version>7.0</version>
<type>jar</type>
</artifactItem>
</artifactItems>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
坦率地说,我没有看到太大的区别,只是一个是 war 文件,另一个是 jar。
如果有什么区别,这是我的两个 persistence.xml 文件。
工作
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.1" xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">
<persistence-unit name="ObjectDBMavenTestPU" transaction-type="JTA">
<provider>com.objectdb.jpa.Provider</provider>
<properties>
<property name="javax.persistence.jdbc.url" value="$objectdb/db/guests.odb"/>
<property name="javax.persistence.jdbc.user" value="user"/>
<property name="javax.persistence.jdbc.password" value="password"/>
</properties>
</persistence-unit>
</persistence>
并且不工作
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.1" xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">
<persistence-unit name="MyDatabase" transaction-type="JTA">
<provider>com.objectdb.jpa.Provider</provider>
<properties>
<property name="javax.persistence.jdbc.url" value="$objectdb/db/myDatabase.odb"/>
<property name="javax.persistence.jdbc.user" value="user"/>
<property name="javax.persistence.jdbc.password" value="password"/>
<property name="javax.persistence.schema-generation.database.action" value="create"/>
</properties>
</persistence-unit>
</persistence>
有人能看到我在这里做错了什么吗?
最佳答案
哇,只是在这里写下它,帮助我找到了我的错误:)我只需要强制 Maven 包含所有依赖项。这可以通过将以下插件包含到 pom.xml
中来完成:
<plugins>
...
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
</plugin>
</plugins>
现在所需的 objectdb.jar
库作为 ejb.jar 的依赖项包含在内,我终于可以毫无错误地部署它。谢谢大家的关心:)
关于java - 为 ObjectDB 部署 ejb 模块失败 : PersistenceProvider not found,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30854468/
在这个基准测试中,ObjectDB 是最快的 DB: http://www.jpab.org/All/All/All.html 但我看不到来自 ObjectDB 的任何其他基准测试结果。有人在使用 O
在学习本教程时: http://www.objectdb.com/tutorial/jpa/eclipse 我收到以下错误: Exception in thread "main" [ObjectDB
我正在尝试创建一个应用程序,可以在 ObjectDB 数据库(嵌入)中存储包含文件和文件夹的树结构,但即使进行简单的测试,我仍然会收到错误... 实体类 Node.java @MappedSuperc
我正在使用 Tomcat、Eclipse 和 Maven。我将 ObjectDB 添加到项目中(库 > 添加外部 jar)。 在 Eclipse 中,一切似乎都很好。它不显示任何“未找到”错误并且自动
我需要一个带有 ObjectDB 的原子计数器,但以下代码无法按我的预期工作: final EntityManagerFactory emf = Persistence.createEntit
我正在尝试设置 ObjectDB。我能够创建一个数据库并使用资源管理器查看它,使用嵌入式服务器模式能够在运行我的程序时保持资源管理器打开。当我的数据库位于 $objectdb/db/目录中时,这一切都
以下代码: EntityManagerFactory emf = Persistence.createEntityManagerFactory("test.odb"); EntityM
我正在创建一个使用 ObjectDB 来创建和维护一组数据库的 Java 应用程序。我目前正在尝试实现一个数据库来存储由用户名和密码字符串组成的用户对象。在 JFrame/swing 类上,我有一个用
我正在使用 ObjectDB 构建 Spring MVC 应用程序。我的目标是使用 Java 8 日期和时间作为查询参数,以便在 where 子句中进行比较。 假设我有以下具有测量日期时间对象的实体:
我对 ObjectDB 非常陌生。我尝试使用它的原因是使用嵌入式数据库创建桌面java应用程序。换句话说,我最终想给我的 friend 一个单独的可运行的 jar 文件,这样他就可以访问 javaFX
我正在尝试根据传递给它的参数来填充 tsp 页面。目前我正在使用博客文章的标题,我不喜欢这个,但我想要概念证明,并且在获取对象 ID 时遇到困难。因此,我暂时传入标题字符串,以便稍后更改它。 我的查询
我有一个 DaoService,它在应用程序启动时被初始化。 public DaoService() { Map properties = new HashMap(); propert
我的 Java 应用程序中使用了一个 ObjectDB 数据库,它只包含一种类的负载,我们称它为 Record。 我希望我的程序是开放的/可扩展的,假设有人修改了 Record 类,并添加了另一个字段
假设我在 java 中创建了一个名为 Point 的对象,具有 2 个属性(int x 和 int y),并将一些实例存储在 objectdb 文件中。我知道如何从该文件中检索所有项目(作为对象),但
我面临着通过某些(子)字符串搜索实体的简单问题,它们可能包含这些字符串。例如。我有 u_name 为“rags”、“mechrags”、“meragsch”的用户,我将进入搜索窗口“rags”,然后我
我正在尝试使用 JPA 创建一个 objectdb。下面的代码是我所做的,但不确定我是否正确完成。实体是学生,属性是名字、姓氏等。有人知道我是否设置正确或错误吗? package Student;
我最近完成了本教程, http://www.objectdb.com/tutorial/jpa/eclipse/spring/run 它说在Tomcat目录下创建了.odb文件,但是我找不到Tomca
我想知道是否可以在可运行的 JAR 中包含 ObjectDB 数据库文件 .odb。 方法: EntityManagerFactory emf = Persistence.createEntityMa
我对 Spring JPA 与 ObjectDB 数据库配合是一个新手,但我遇到了一个无法解决的问题。 我有一个使用上述技术编写的应用程序,它工作正常,它保留新实体等(因此我认为配置 bean 没有问
文件 .vscode/.ropeproject/objectdb 在对一些 python 代码应用重构后(使用 DonJayamanne 的 pythonVSCode 扩展)被修改(创建)。 obje
我是一名优秀的程序员,十分优秀!