4

我有以下 Maven 项目结构:

Example
-Persistence
-GWTApp

持久性在 中具有 persistence.xml src/main/resources/META-INF,它在单一测试中运行良好。

我需要在 GWTApp 项目中使用它。因此,我将其添加为依赖项。像这样:

<dependency>
    <groupId>com.example</groupId>
    <artifactId>Persistence</artifactId>
    <version>0.0.1</version>
</dependency>

有了这个,我可以在我的 webapp 中查看和使用持久性类,但是,当我在 eclipse 中运行 webproject 时,我得到了这个错误:

javax.persistence.PersistenceException:没有名为 exemplo 的 EntityManager 的持久性提供程序

我认为这是因为 eclipse 在引用 webapp 项目中的持久性项目的项目之间完成了这个“链接”,而不是使用 jar 文件。也许我错了,这只是一个猜测。

有人知道我该如何解决这个问题?提前致谢。

编辑

我做了更多的测试,现在我认为问题出在 GWT 开发模式和 JPA 或其他问题上。我试图手动将persistence.xml复制到weapp/META-INF和复制到target/project-webapp-0.0.1-SNAPSHOT/META-INF并且错误仍然存​​在。

任何的想法?

4

2 回答 2

1

我假设您使用的是 M2E。如果是,请打开 Persistence 项目的“配置构建路径”对话框(右键单击构建路径,然后选择“构建路径”子菜单)。

如果您查看“资源”文件夹,我怀疑您会看到“排除:**”;这可以防止 Eclipse 将文件复制到本地输出目录,也可以防止它们对依赖项目可用。选择该行并单击“删除”

我不知道为什么 M2E 会这样做,而且我知道有禁用它的偏好,但我只是手动执行。

于 2012-04-20T20:55:54.890 回答
1

您是否正确启动了应用程序?https://developers.google.com/eclipse/docs/faq#gwt_with_maven

特别注意,您必须“mvn war:exploded”复制您的依赖项 target/myapp-0.0.1-SNAPSHOT/WEB-INF/lib

于 2012-04-21T01:55:53.793 回答