我将Weblogic应用程序迁移到JBoss 7,并且需要我的迁移代码在这两个服务器上都可运行。 WebLogic数据源的JNDI名称为:
jdbc / powds
Jboss数据源的JNDI名称为:
java:/ powds
我已经知道JBOSS 7中的JNDI语法是另一种,并且以前缀“ java:”开头。在WebLogic应用程序中,我在不同的文件(例如web.xml和persistance.xml)中使用JNDI名称。 在代码中,我使用:
静态最终字符串dataSourceName =“ jdbc / powds”;
我阅读了本文JNDI path Tomcat vs. Jboss,并尝试配置我的xmls描述符文件。
最后,我遇到了未安装的必需服务错误:“ => [” jboss.naming.context.java.jdbc.powds“]。
如何避免此错误?如何配置persistance.xml文件以使用不同的JNDI名称取决于运行应用程序服务器。
我的web.xml文件是:
<resource-ref>
<res-ref-name>jdbc/powds</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
<res-sharing-scope>Shareable</res-sharing-scope>
</resource-ref>
我的jboss-web.xml文件是:
<resource-ref>
<res-ref-name>jdbc/powds</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<jndi-name>java:/powds</jndi-name>
</resource-ref>
我的weblogic.xml文件是:
<resource-description>
<res-ref-name>jdbc/powds</res-ref-name>
<jndi-name>jdbc/powds</jndi-name>
</resource-description>
我的weblogic.xml文件是:
<resource-description>
<res-ref-name>jdbc/powds</res-ref-name>
<jndi-name>jdbc/powds</jndi-name>
</resource-description>
我的persistance.xml文件是:
<persistence-unit name="powpu" transaction-type="JTA" >
<jta-data-source>jdbc/powds</jta-data-source>
<exclude-unlisted-classes>false</exclude-unlisted-classes>
<shared-cache-mode>ENABLE_SELECTIVE</shared-cache-mode>
</persistence-unit>