Corrigindo New missing/unsatisfied Dependencies non JDBC 4 Compliant no JBoss AS 7.1.2
Olá amigos,
No JBoss AS 7 podemos configurar o driver JDBC criando um módulo ou realizando o deploy do arquivo. Esse arquivo deve ser compátivel com a especificação JDBC 4 para que tudo funcione perfeitamente.
Qualquer JDBC 4 compliant driver será automaticamente reconhecido e instalado no sistema pelo nome e pela versão do Java service provider. Um JDBC 4 compliant driver possui um arquivo no META-INF/services/java.sql.Driver contendo o fully qualified class name do driver JDBC em questão.
Vamos fazer alguns testes utilizando o driver JDBC do SQLServer.
Inicie o JBoss AS 7 e faça o deploy do arquivo jtds-1.2.6.jar. Você verá algo nos logs como abaixo:
19:06:548,419 INFO [org.jboss.as.controller] (Controller Boot Thread) JBAS014774: Service status r JBAS014775: New missing/unsatisfied dependencies: jboss.jdbc-driver.jtds-1_2_6_jar (missing) dependents [service jboss.data-source.java:jboss/datasources/mydatasource]
Para corrigir siga os procedimentos abaixo.
1° – Utilize um diretório qualquer (tmp) e dentro crie um diretório chamado META-INF.
2° – Dentro do META-INF crie um diretório chamado services.
3° – No diretório services crie um arquivo chamado java.sql.Driver e adicione o fully qualified class name do driver.
net.sourceforge.jtds.jdbc.Driver
4° – Agora copie o driver jtds-1.2.6.jar para o diretório temporário onde criamos toda essa estrutura e execute o seguinte comando:
jar -uf jtds-1.2.6.jar META-INF/services/java.sql.Driver
Isso adiciona a estrutura criada ao arquivo jtds-1.2.6.jar. Observe a estrutura final.
jtds-1.2.6.jar
├──META-INF
│ ├──MANIFEST.MF
│ └──services
│ └──java.sql.Driver
Realize novamente o deploy no JBoss AS 7 e seja feliz.
Só por curiosidade vou deixar aqui a configuração do Datatasource que utilizei e o driver já alterado.
<subsystem xmlns="urn:jboss:domain:datasources:1.1"> <datasources> <datasource jta="false" jndi-name="java:jboss/datasources/mydatasource" pool-name="My_Pool" enabled="true" use-ccm="false"> <connection-url>jdbc:jtds:sqlserver://192.168.10.20:1433/DBTeste</connection-url> <driver-class>net.sourceforge.jtds.jdbc.Driver</driver-class> <driver>jtds-1.2.6.jar</driver> <security> <user-name>username</user-name> <password>senha</password> </security> <validation> <validate-on-match>false</validate-on-match> <background-validation>false</background-validation> </validation> <statement> <share-prepared-statements>false</share-prepared-statements> </statement> </datasource> <drivers> <driver name="mssqlNonXA" module="net.sourceforge.jtds"> <driver-class>net.sourceforge.jtds.jdbc.Driver</driver-class> </driver> </drivers> </datasources> </subsystem>
Espero que tenha ajudado.
Abraços
24 de setembro de 2012 às 8:51
grande Mauricio! bom dia!
legal o post! acredito que vá ajudar muita (muita) gente! =D hehe
24 de setembro de 2012 às 9:40
E ai Victor Blz 😀
Bom dia…
Espero que ajude mesmo hehehe
Abraços