java - 如果在 Jboss AS 7 中将 jdbc 部署为 Web 应用程序,模块名称是什么

标签 java jakarta-ee jdbc jboss ejb

从此post从 Jboss AS7 开始,jdbc 驱动程序能够作为常规应用程序进行部署。但问题是,其他应用程序如何引用这个jdbc jar?

这是我尝试过的,但它不起作用

<?xml version="1.0" encoding="UTF-8"?>
<jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.0">
......
<deployment>
    <dependencies>
        <module name="ojdbc6.jar" />
    </dependencies>
</deployment>
.....
</jboss-deployment-structure>

更新

当我部署 ojdbc.jar 时,控制台有一段日志:

10:56:20,416 INFO  [org.jboss.as.server.deployment] (MSC service thread 1-8) JBAS015876: Starting deployment of "ojdbc6.jar"
10:56:21,487 INFO  [org.jboss.as.connector.deployers.jdbc] (MSC service thread 1-2) JBAS010403: Deploying JDBC-compliant driver class oracle.jdbc.OracleDriver (version 11.2)
10:56:21,489 INFO  [org.jboss.as.osgi] (MSC service thread 1-7) JBAS011907: Register module: Module "deployment.ojdbc6.jar:main" from Service Module Loader
10:56:21,499 INFO  [org.jboss.as.server] (HttpManagementService-threads - 6) JBAS018559: Deployed "ojdbc6.jar"

每个日志 jdbc 模块的名称为 deployment.ojdbc6.jar:main,但在我更新 jboss-deployment-struct.xml 后

<?xml version="1.0" encoding="UTF-8"?>
<jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.0">
......
<deployment>
    <dependencies>
        <module name="deployment.ojdbc6.jar:main" />
    </dependencies>
</deployment>
.....
</jboss-deployment-structure>

还是不行。带有以下消息:

10:59:34,448 INFO  [org.jboss.as.server] (HttpManagementService-threads - 7) JBAS015870: Deploy of deployment "MyApp.war" was rolled back with failure message {"JBAS014771: Services with missing/unavailable dependencies" => ["jboss.deployment.unit.\"MyApp.war.war\".POST_MODULE Missing[JBAS014861: <one or more transitive dependencies>]","jboss.module.service.\"deployment.MyApp.war.war\".main Missing[jboss.module.spec.service.\"deployment.ojdbc6.jar:main\".main]"]}
10:59:35,198 INFO  [org.jboss.as.server.deployment] (MSC service thread 1-7) JBAS015877: Stopped deployment MyApp.war.war in 749ms

最佳答案

您可以通过以下方式引用其他部署中的 jar:

  <module name="deployment.YourEarOrWar.YourJar.jar" />

其中,部署是对已部署应用程序的引用的通用前缀。 但是,对于像 jdbc-driver 这样的库,我建议将其放在 JBoss 的模块文件夹中

 <module xmlns="urn:jboss:module:1.1" name="driver.ojdbc">

<resources>
    <resource-root path="ojdbc6.jar"/>      
</resources>

 </module>

然后引用它

  <module name="driver.ojdbc"/>

另请参阅 https://community.jboss.org/thread/169894http://www.mastertheboss.com/jboss-as-7/how-to-install-a-module-on-jboss-as-7

关于java - 如果在 Jboss AS 7 中将 jdbc 部署为 Web 应用程序,模块名称是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18478811/

相关文章:

java - 在 XML 中按类型指定 spring 引用

java - Java 中冒泡排序的 Null Ptr 异常

java - OpenShift 状态 404 - Tomcat 本地工作正常

java - 如何访问tomcat中的 session 并终止其中一个 session

java - REST api 中的版本控制资源

Java开源帮助台+工作流项目

java.sql.SQLException : ORA-00917: missing comma 异常

java - 池错误等待空闲对象超时(Java JDBC)

java - Android 搜索列表,字符串

java - 连接到 SQL Server 导致错误 "The driver received an unexpected pre-login response"