打包一个可运行的JPA jar,将persistence.xml放在外面

时间:2013-11-16 21:50:32

标签: java jpa jar

我想将我的jpa / swing项目导出到一个可运行的jar中。但我希望persistence.xml不在包装里面的jar之外,所以我可以在不需要在每次配置后再次导出jar的情况下更改它。

2 个答案:

答案 0 :(得分:3)

根据JPA规范,在定义持久性单元的JAR文件之外无法检测到persistence.xml文件。按照惯例,它应该放在META-INF目录中。

阅读JSR-317第8.2.1段了解更多详情(http://download.oracle.com/otndocs/jcp/persistence-2.0-fr-eval-oth-JSpec/)。

尽管如此,您可以尝试这个人提出的提示here并以爆炸形式部署您的档案。

答案 1 :(得分:1)

我遇到了同样的问题,但我只需要更改服务器,数据库,用户和密码。所以这对我来说是这样的:

在JBoss AS中,您甚至可以将属性值作为占位符,例如:

<property name="javax.persistence.jdbc.url" value="jdbc:sqlserver://${DbServer}:1234;databaseName=${DbName}" />
<property name="javax.persistence.jdbc.user" value="${DbUser}" />
<property name="javax.persistence.jdbc.password" value="${DbPassword}" />

然后传递&#34; DbServer&#34;,&#34; DbName&#34;,&#34; DbUser&#34;和&#34; DbPassword&#34; value作为Java系统属性:

-DDbServer=sql99 -DDbName=db_Name -DDbUser=USER -DDbPassword=pw

在Eclipse中:

vm args in eclipse