在 Jboss 7.1 上部署 datasource.xml

Posted

技术标签:

【中文标题】在 Jboss 7.1 上部署 datasource.xml【英文标题】:Deploying datasource.xml on Jboss 7.1 【发布时间】:2012-12-30 03:14:55 【问题描述】:

我正在尝试将名为 oracle-ds.xml 的数据源 xml 文件添加到我的 JBoss 7.1 文件夹中,以便我在该服务器上部署的项目可以使用该数据源。

正如jboss.org 中解释的那样,我需要将该文件放在部署文件夹中。

我就是这么做的。但与他们在上面的链接中所说的不同,我在本地 maven 存储库中有我的 Orcale 驱动程序 jar。无论如何,maven 能够构建项目。

现在重启Jboss时,好像把oracle-ds.xml看作是需要部署的项目(jar),而不是xml设置文件……

以下是 Jboss 重启期间的一些控制台输出:

15:58:16,666 INFO  [org.jboss.as.server.deployment] (MSC service thread 1-3) JBAS015876: Starting deployment of "oracle-ds.xml"
15:58:16,728 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-8) MSC00001: Failed to start service jboss.deployment.unit."oracle-ds.xml".PARSE: org.jboss.msc.se
rvice.StartException in service jboss.deployment.unit."oracle-ds.xml".PARSE: Failed to process phase PARSE of deployment "oracle-ds.xml"
        at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:119) [jboss-as-server-7.1.0.Final.jar:7.1.0.Final]
        at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1811) [jboss-msc-1.0.2.GA.jar:1.0.2.GA]
        at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1746) [jboss-msc-1.0.2.GA.jar:1.0.2.GA]
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) [rt.jar:1.6.0_29]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) [rt.jar:1.6.0_29]
        at java.lang.Thread.run(Thread.java:662) [rt.jar:1.6.0_29]
Caused by: org.jboss.as.server.deployment.DeploymentUnitProcessingException: IJ010061: Unexpected element: local-tx-datasource
        at org.jboss.as.connector.deployers.processors.DsXmlDeploymentParsingProcessor.deploy(DsXmlDeploymentParsingProcessor.java:85)
        at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:113) [jboss-as-server-7.1.0.Final.jar:7.1.0.Final]
        ... 5 more
Caused by: org.jboss.jca.common.metadata.ParserException: IJ010061: Unexpected element: local-tx-datasource
        at org.jboss.jca.common.metadata.ds.DsParser.parseDataSources(DsParser.java:183)
        at org.jboss.jca.common.metadata.ds.DsParser.parse(DsParser.java:119)
        at org.jboss.jca.common.metadata.ds.DsParser.parse(DsParser.java:82)
        at org.jboss.as.connector.deployers.processors.DsXmlDeploymentParsingProcessor.deploy(DsXmlDeploymentParsingProcessor.java:80)
        ... 6 more

为什么会发生这种情况,我应该怎么做才能纠正这种行为?

【问题讨论】:

【参考方案1】:

oracle-ds.xml 复制到standalone\deployments 文件夹是部署它的正确方法。虽然我建议在standalone.xml 或管理控制台或CLI 中定义数据源,而不是单独的xml 文件。

这里的问题是oracle-ds.xml 未通过 XSD 验证。如果您查看数据源 xml 的 XSD,您会发现 XSD 中没有 local-tx-datasource 元素。

要解决此问题,您需要确保您的 XML 文件通过 XSD 验证。或者,您可以在管理控制台或通过 CLI 定义数据源,以避免手动创建它并遇到这些类型的问题。

【讨论】:

谢谢,如何在我当前的 xml 上运行验证? 可以使用Eclipse XSD验证工具。 这是一个很好的例子 - ***.com/questions/12049882/…

以上是关于在 Jboss 7.1 上部署 datasource.xml的主要内容,如果未能解决你的问题,请参考以下文章

windows下JBOSS 7.1 安装部署

部署到 jboss EAP 7.1 时,此 URL 不支持 HTTP Post 方法

Springboot项目部署在Jboss上的一些问题

从 JBoss 7.1 引用依赖 Jar 文件时出错

部署数据源失败,因为 JBoss 认为它​​已经存在

如何修改 JBoss AS 7.1 上内置的 h2 数据库?