在Jboss 7.1上部署datasource.xml

6
我正在尝试添加一个名为oracle-ds.xml的数据源xml文件到我的JBoss 7.1文件夹中,以便在该服务器上部署的项目可以使用该数据源。
正如jboss.org所解释的那样,我需要将该文件放入部署文件夹中。
这就是我所做的。但与上面链接中所说的不同,我有我的Orcale驱动程序jar包在我的本地maven存储库中。无论如何,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个回答

7
oracle-ds.xml复制到standalone\deployments文件夹是正确的部署方式。虽然我建议在standalone.xml或管理控制台或CLI中定义数据源,而不是使用单独的xml文件。
问题在于oracle-ds.xml未通过XSD验证。如果查看数据源xml的XSD,您会发现XSD中没有local-tx-datasource元素。
要解决此问题,您需要确保XML文件通过XSD验证。或者,您可以通过管理控制台或CLI定义数据源,以避免手动创建并遇到这些类型的问题。

谢谢,我该如何对我的当前 XML 进行验证? - rapt
2
你可以使用Eclipse XSD验证工具。 - CoolBeans
这是一个很好的例子 - https://dev59.com/_Gct5IYBdhLWcg3wgNcy - Catfish

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接