2013-01-15 75 views
5

我想將一個名爲oracle-ds.xml的數據源xml文件添加到我的JBoss 7.1文件夾中,因此我在該服務器上部署的項目可以使用該數據源。在Jboss 7.1上部署datasource.xml

正如jboss.org所述,我需要將該文件放在deployments文件夾中。

這就是我所做的。但不像他們在上面的鏈接中說的,我在我的本地maven倉庫中有我的Orcale驅動程序jar。無論如何,maven能夠建立這個項目。

現在,當我重啓JBoss,好像它認爲oracle-ds.xml爲需要進行部署,而不是作爲一個XML設置文件的一個項目(JAR)...

下面是一些控制檯輸出的過程中的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 

它爲什麼會發生,我應該怎麼做才能解決此問題?

回答

6

oracle-ds.xml複製到standalone\deployments文件夾是部署它的正確方法。儘管我會建議在standalone.xml或管理控制檯或CLI中定義數據源,而不是單獨的xml文件。

這裏的問題是oracle-ds.xml未通過XSD驗證。如果您查看數據源xml的XSD,則會發現XSD中沒有local-tx-datasource元素。

要解決此問題,您需要確保您的XML文件通過了XSD驗證。或者,您可以在管理控制檯或CLI中定義數據源,以避免手動創建並運行這些類型的問題。

+0

謝謝,我該如何在當前的xml上運行驗證? – rapt

+2

您可以使用Eclipse XSD驗證工具。 – CoolBeans

+1

@rapt如果答案幫助你請upvote和接受。謝謝! – CoolBeans