当前位置: 首页 > 面试题库 >

在Web应用程序的jpa persistence.xml中引用jar文件的正确路径是什么?

和嘉澍
2023-03-14
问题内容

persistence.xml看起来像这样:

<persistence-unit name="testPU" transaction-type="RESOURCE_LOCAL">
    <provider>org.hibernate.ejb.HibernatePersistence</provider>
    <non-jta-data-source>jdbc/test</non-jta-data-source>
    <jar-file>../../lib/app-services-1.0.jar</jar-file>
    <exclude-unlisted-classes>false</exclude-unlisted-classes>
</persistence-unit>

这是一个Web项目,因此部署单元是一个war文件。我尝试引用的jar文件位于 WEB-INF / lib / 文件夹中,
persistence.xml 位于 WEB-INF / classes / META-INF 文件夹中。部署时,它只是告诉我

“警告:无法找到文件(忽略):file:… / .. / lib / app-services-1.0.jar”。

我也试过,我能想到的,即每一个可能的路径 ../lib/app-services-1.0.jarLIB /应用服务-1.0.jar

正确的做法是什么?


问题答案:

以防万一有人偶然发现:jar-file-statement仅有效。当将持久性单元部署为企业归档文件(.ear)的一部分时-
在其他所有情况下(.war),persistence.xml必须驻留在/ META-INF
/中,并且不能引用持久性单元外部的类(请参阅:http : //javahowto.blogspot.com/2007/06/where-
to-put-persistencexml-in-web-
app.html)。因此,据我所知,没有办法在WEB-INF / classes / META-
INF中创建一个persistence.xml来引用不存在于WEB-INF / classs中的类。



 类似资料:
  • 我将app.jar作为运行,并看到下一个错误: app.jar结构: 在中,将声明为: libthrift-0.9.3.jar结构: 正如您所看到的,类存在并且必须在运行时可访问。但不要。为什么这样?

  • 问题内容: 我想从Java Web应用程序读取文件。我不想提供文件的绝对路径。我只想将文件放在Web应用程序的某个目录中。 要么 可以将其与.war文件(打包的Web应用程序)一起放置。 给文件的相对路径。我试过了,但是没有用。 ======== 更新 ======== 我将向客户交付文件(打包的Web应用程序)。该Web应用程序将读取一个文件(让我们说),该文件将由客户端复制到服务器。因此,我需

  • 我已经通过安装插件准备了我的第一个vaadin应用程序,并创建了vaadin项目。构建成功并部署到wildFly后,尝试使用下面的localhost:port/myapp/和localhost:port//myapp/myuiservlet运行应用程序时也不起作用

  • 问题内容: 我试图在我的Java独立代码中使用来加载位于我的类路径中的jar文件内部的。 applicationContext.xml条目如下, 而且,当我尝试以这种方式加载bean时,我得到了。不能通过这种方式加载bean吗? jar文件作为maven依赖项添加到我的类路径中。当我在该项目的Eclipse中看到Java Build Path时,看到该jar链接为M2_REPO /…/.。 我以为

  • 云课堂直播中的画板组件sdk // css文件 <link rel="stylesheet" href="https://class.csslcloud.net/static/SDK/docSDK/draw.css" /> // js 文件 <script src="https://class.csslcloud.net/static/SDK/docSDK/drawSdk_3.0.js"

  • 我正在尝试找到一种方法来显式指定部署到Glassfish的Web应用程序的上下文路径3.1.2.2但到目前为止我还没有运气。有人能对此提供指导吗?背景如下: 我有一个Web应用程序,它由两个单独的Netbean(7.0)项目组成。第一个是Web服务,称为FOWS。第二个是使用FOWS网络服务的面向用户的Web应用程序。它被称为FooApp。 我最近将glassfish升级到3.1.2.2,希望解决