目前我的设置是:
在我耳边 META-INF / jboss-app.xml
<jboss-app>
<module>
<service>datasource-ds.xml</service>
</module>
</jboss-app>
和 datasource-ds.xml
<datasources>
<local-tx-datasource>
<jndi-name>jdbc/mydeployment</jndi-name>
<connection-url>jdbc:oracle:thin:@eir:myport:mydbname</connection-url>
<driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
<user-name>myuser</user-name>
<password>mypassword</password>
<exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.OracleExceptionSorter</exception-sorter-class-name>
<metadata>
<type-mapping>Oracle9i</type-mapping>
</metadata>
</local-tx-datasource>
</datasources>
当 ojdbc5.jar 位于我的 servername / lib 中时,它可以正常工作。
如何在我的.ear文件中配置我的oracle驱动程序信息,以便我可以有两个不同的ear部署,一个使用Oracle 10g,另一个使用oracle 11g?
编辑: 我说错了这个问题。我的意思是如何在ear文件中使用ojbc * .jar部署ear,而不是在server / lib目录中。在我的设置中,部署了多个不同的应用程序,我希望它们都是自包含的。其中一个应用程序使用11克,其余的使用10克。现在使用10g的是ear文件,使用11g的是war文件,所以它可以工作。现在我要将ear文件转换为war文件(我不需要耳功能)以测试使用了多少Permgen空间。 所以我想我的问题是: 我的意思是如何在ear文件中使用ojbc * .jar而不是在server / lib目录中部署ear?
答案 0 :(得分:0)
只需复制datasource.xml
胃内datasource-ds10g.xml
和datasource-ds11g.xml
正确connection-url
。从你的.ear到数据源的参考。
答案 1 :(得分:0)
在ojdbc.jar版本上,除非最新版本中不存在您需要的驱动程序的特定功能,否则始终只使用最新版本,因为它们将始终向后兼容。在那种情况下,那么使用服务器的中央lib repo是最好的...但是,据说我完全理解使每个Web应用程序独立且更容易部署的要求。
在部署时,如果您使用的是IDE,则可以将jdbc jar定义为“库”,然后在“部署”中将其设置为使用代码部署库。在JDeveloper中,当您定义用户库时,您可以选择“默认部署它”,这将自动将其分配为WAR或EAR文件构建,这些构建来自使用此库的项目。如果您没有将用户库设置为“默认部署”,或者您的IDE没有此选项,则通常“部署”参数(或IDE的任何部分管理WAR和EAR文件构建)将包含选择要包含的库。
如果您没有使用IDE,那么您可以手动将这些jar文件推送到warfile结构中的WEB-INF/lib
。