2013-01-15 13 views
5

Sto tentando di aggiungere un file xml origine dati, denominato oracle-ds.xml, alla mia cartella JBoss 7.1 in modo che i progetti che distribuisco su quel server possano utilizzare tale origine dati.Distribuzione di datasource.xml su Jboss 7.1

Come è spiegato su jboss.org, ho bisogno di mettere quel file nella cartella deployments.

Quale è quello che ho fatto. Ma a differenza di quello che hanno detto nel link qui sopra, ho il mio jar del driver Orcale nel mio repository Maven locale. Ad ogni modo, Maven è in grado di costruire il progetto.

Ora, quando ricomincio Jboss, sembra che riguarda oracle-ds.xml come progetto (vaso) che deve essere schierato, non come un file di impostazione XML ...

Ecco alcune delle l'output della console durante Jboss 'restart:

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 

Perché succede e cosa devo fare per correggere questo comportamento?

risposta

6

La copia della cartella oracle-ds.xml su standalone\deployments è il modo corretto di distribuirlo. Sebbene raccomando di definire l'origine dati nel file standalone.xml o nella console di gestione o nella CLI anziché in un file xml separato.

Il problema qui è che oracle-ds.xml non riesce la convalida XSD. Se si guarda lo XSD per l'origine dati xml, si scoprirà che non esiste alcun elemento local-tx-datasource nell'XSD.

Per risolvere questo problema è necessario assicurarsi che il file XML superi la convalida XSD. In alternativa, è possibile definire l'origine dati nella console di gestione o tramite CLI per evitare di crearlo manualmente e l'esecuzione di questi tipi di problemi.

+0

Grazie, come posso eseguire una convalida sul mio attuale xml? – rapt

+2

È possibile utilizzare lo strumento di convalida XSD di Eclipse. – CoolBeans

+1

@rapt Se la risposta ti ha aiutato a revocare la richiesta e accettare. Grazie! – CoolBeans

Problemi correlati