Página Inicial do Fórum > Java Básico

SQL Server 2008 - Drive JDBC - Conectividade - ClassNotFoundException: com.microsoft.sqlserver.jdgc.SqlServerDriver


Goto page 1


New Topic    Reply Message


  1. R_Luiz_F
    Offline
    Posts: 25

    Comment Arrow

    Publicado em: 06/07/2012 13:01:07

    Pessoal, bom dia. Alguém pode me ajudar.
    Estou tentando há 2 dias fazer conexão de Java com SQL Server 2008 R2 da Microsoft e estou tendo problemas com conexão. Montei um código simples para ver se era problema de código e o problema/erro no sistema é o mesmo.
    Usei este código simples para testar, com as mesmas configurações que estou usando no código que estou montando e o problema é o mesmo:



    Segue o erro abaixo.
    0

    Estou usando o drive sqljdc4.jar da Microsoft. Também já testei o drive sqljdc4.jar e também testei como jtds-1.2.5.jar, separado e em conjunto e também não funcionou.

    Já lí uma quantidade enorme de tutoriais, visitei vários foruns com problemas semelhantes, segui várias instruções, alterei/habilitei as portas de acessos - 1433 no Sql server, incluí no Windows\System32 a dll sqljdbc_auth.dll, alterei várias vezes a classpath e ainda não consigo conectividade.

    Consigo conectar-me normalmente pelo Microsoft Sql Server Management Studio com o servidor/banco de dados que preciso utilizar, sem nenhum problema.

    A classpath depois de várias tentativas deixei assim:
    .;%CLASSPATH%;%JAVA_HOME%;%JAVA_HOME%\lib;%JAVA_HOME%\lib\*.jar;%JAVA_HOME%\jre\lib;%JAVA_HOME%\jre\lib\ext\sqljdbc4.jar.

    Também seguí os tutoriais da própria Microsoft e o problema persiste.
    Quando altero conectividade para o Mysql, com outro drive funciona direito, porém com o Sql Server não conecta.

    Poderiam me orientar sobre algum detalhe que ainda não encontrei para solução?

    Agradeço antecipadamente qualquer colaboração. Uma boa tarde para todos.
    Obrigado,
    Roberto.



    Download:  java_conexaosql.jpg
    Size:  49 KB




  1. martinellip
    Offline
    Posts: 12

    Comment Arrow

    Publicado em: 06/07/2012 14:08:27

    Cara da uma olhada pq se eu não estou enganado existem 2 drivers JDBC da propria microsoft para o SQL um é usado até a versão 1.6 do java e o outro para 1.7 (p/ frente dicerto) pode ser isso o problema. Pq se for pelo stacktrace ali é pq o driver("jar") não está no classpath do projeto.




  1. R_Luiz_F
    Offline
    Posts: 25

    Comment Arrow

    Publicado em: 06/07/2012 15:39:11

    martinellip:
    Cara da uma olhada pq se eu não estou enganado existem 2 drivers JDBC da propria microsoft para o SQL um é usado até a versão 1.6 do java e o outro para 1.7 (p/ frente dicerto) pode ser isso o problema. Pq se for pelo stacktrace ali é pq o driver("jar") não está no classpath do projeto.




    martinellip, obrigado pela sua colocação. Estou usando tudo na versão 1.7.0.5 (a mais atual) do java. O driver recomendado pela MS é o sqljdbc4.jar que estou usando e o problema persiste. Obrigado e abs.




  1. martinellip
    Offline
    Posts: 12

    Comment Arrow

    Publicado em: 06/07/2012 16:10:20

    R_Luiz_F:
    martinellip:
    Cara da uma olhada pq se eu não estou enganado existem 2 drivers JDBC da propria microsoft para o SQL um é usado até a versão 1.6 do java e o outro para 1.7 (p/ frente dicerto) pode ser isso o problema. Pq se for pelo stacktrace ali é pq o driver("jar") não está no classpath do projeto.




    martinellip, obrigado pela sua colocação. Estou usando tudo na versão 1.7.0.5 (a mais atual) do java. O driver recomendado pela MS é o sqljdbc4.jar que estou usando e o problema persiste. Obrigado e abs.



    Tenta assim cara:

    OU

    Pelo o que estou vendo no site do Microsoft JDBC Driver(http://msdn.microsoft.com/en-us/data/aa937724.aspx) tais com a string errada.




  1. R_Luiz_F
    Offline
    Posts: 25

    Comment Arrow

    Publicado em: 06/07/2012 20:11:20

    martinellip:
    R_Luiz_F:
    martinellip:
    Cara da uma olhada pq se eu não estou enganado existem 2 drivers JDBC da propria microsoft para o SQL um é usado até a versão 1.6 do java e o outro para 1.7 (p/ frente dicerto) pode ser isso o problema. Pq se for pelo stacktrace ali é pq o driver("jar") não está no classpath do projeto.


    1.7.0.5 (a mais atual) do java. O driver recomendado pela MS é o sqljdbc4.jar que estou usando e o problema persiste. Obrigado e abs.




    martinellip, obrigado pela sua colocação. Estou usando tudo na versão
    Tenta assim cara:

    OU

    Pelo o que estou vendo no site do Microsoft JDBC Driver(http://msdn.microsoft.com/en-us/data/aa937724.aspx) tais com a string errada.



    martinellip, mais uma vez obrigado. Tentei também com sua sugestão e ainda persiste o mesmo erro. Já teitei trocar o nome da instância e também não deu certo ainda. Obrigado e abs.




  1. simu
    Offline
    Posts: 9410

    Comment Arrow

    Publicado em: 07/07/2012 04:35:29

    Pela mensagem do erro

    quote:

    ClassNotFoundException: com.microsoft.sqlserver.jdgc.SqlServerDriver


    a classe em questão não foi encontrada, portanto não se encontra no classpath usado para executar o programa!
    Como está fazendo para executar?
    - java <nome-classe>
    - java -jar <arquivo-jar>
    - duplo clique no arquivo-jar
    - IDE
    - ... ?
    _________________
      Nome real: Carlos F. Heuberger

    Removeram os meus direitos de administrador e moderador - sem aviso, pela segunda vez - contate o ombudsman (?), a equipejavafree ou a "alta gerência" se necessário - Que pena... que terminou dessa maneira!

    "The mod javafree deserves, but not the one it needs right now."
    --------------------
    Não leio nem respondo MPs!
    This posting is provided AS IS with no warranties and confers no rights.




  1. R_Luiz_F
    Offline
    Posts: 25

    Comment Arrow

    Publicado em: 07/07/2012 08:41:27

    simu:
    Pela mensagem do erro
    quote:

    ClassNotFoundException: com.microsoft.sqlserver.jdgc.SqlServerDriver


    a classe em questão não foi encontrada, portanto não se encontra no classpath usado para executar o programa!
    Como está fazendo para executar?
    - java <nome-classe>
    - java -jar <arquivo-jar>
    - duplo clique no arquivo-jar
    - IDE
    - ... ?



    Carlos, obrigado pela sua atenção. Estou executando :
    java classe assim:

    java fazConexao

    Fiz teste com Mysql, alterando o arquivo jar para mysql-connector-java-5.1.20-bin.jar no classpath e passa normalmente.

    A instalação que fiz do Sql Server Microsoft gerou 2 servidores:
    SQL Server (MSSMLBIZ) e SQL Server (SQLEXPRESS).
    O MMSMLBIZ se encontra em permanente estado de execução, com início automátivo e o SQLEXPRESS constantemente parado também com início automátivo. O Banco de dados que estou tentando acessar se encontra no MMSMLBIZ, que acesso normalmente pelo SQL Manager Studio.

    Já averiguei vários caminhos na URL e o problema aparece sempre com o mesmo erro.

    Já incluí o drive sqljdbc4.jar da Microsoft no IDE Netbeans e o mesmo se encontra na biblioteca, ou seja, consigo incluído automaticamente no código como import, compila normalmente mas persiste o mesmo erro. Não tenho expertise para saber se o problema é do endereçamento da URL ou do drive chamado na linha Class.forName(STR_DRIVER); do código, cujo STR_DRIVER é STR_DRIVER = "com.microsoft.sqlserver.jdbc.SQLServerDriver"; , onde o código para.

    Lí muitas orientações dos tutoriais do SQL Server e ainda não encontrei nada que acrescentasse algo para conseguir passar deste ponto.

    Agradeço muito sua atenção e sua orientação é mais do que promissora.
    Obrigado e abraços.




  1. simu
    Offline
    Posts: 9410

    Comment Arrow

    Publicado em: 07/07/2012 16:15:39

    acredite ou não, o problema é que não está encontrando/carregando o Driver no/do CLASSPATH - (ainda) não tem nada a ver com a URL, com o banco estar rodando, com o nome da instância...

    Parece que você instalou o sqljdbc4.jar dentro do jre\lib\ext do Java - não penso que o Driver seja uma extensão válida do Java... não deve ter influência, mas não é assim que consta nas instruções de instalação do driver...

    Seria interessante saber como fez para obter o sqljdbc4.jar .
    ou melhor, já olhou dentro do JAR para ver se o driver está lá e se o download veio sem defeito? Use WinZip ou o comando "jar -tvf sqljdbc4.jar"...

    Faz um teste simples:
    copia o sqljdbc4.jar no mesmo diretório onde está executando o java.exe e onde tem a classe tentando carregar o driver - fazConexao. Lá executa "java -cp .;sqljdbc4.jar fazConexao" (assumindo que fazConexao não faz parte de um package).

    _________________
      Nome real: Carlos F. Heuberger

    Removeram os meus direitos de administrador e moderador - sem aviso, pela segunda vez - contate o ombudsman (?), a equipejavafree ou a "alta gerência" se necessário - Que pena... que terminou dessa maneira!

    "The mod javafree deserves, but not the one it needs right now."
    --------------------
    Não leio nem respondo MPs!
    This posting is provided AS IS with no warranties and confers no rights.




  1. R_Luiz_F
    Offline
    Posts: 25

    Comment Arrow

    Publicado em: 10/07/2012 17:34:07

    simu:
    acredite ou não, o problema é que não está encontrando/carregando o Driver no/do CLASSPATH - (ainda) não tem nada a ver com a URL, com o banco estar rodando, com o nome da instância...

    Parece que você instalou o sqljdbc4.jar dentro do jre\lib\ext do Java - não penso que o Driver seja uma extensão válida do Java... não deve ter influência, mas não é assim que consta nas instruções de instalação do driver...

    Seria interessante saber como fez para obter o sqljdbc4.jar .
    ou melhor, já olhou dentro do JAR para ver se o driver está lá e se o download veio sem defeito? Use WinZip ou o comando "jar -tvf sqljdbc4.jar"...


    Faz um teste simples:
    copia o sqljdbc4.jar no mesmo diretório onde está executando o java.exe e onde tem a classe tentando carregar o driver - fazConexao. Lá executa "java -cp .;sqljdbc4.jar fazConexao" (assumindo que fazConexao não faz parte de um package).




    Carlos, boa tarde.
    Mais uma vez obrigado pela sua atenção. Desculpe a demora de resposta. Segui suas instruções e ainda não consegui passar o código.

    Quanto ao drive sqljdbc4.jar eu obtive na própria Microsoft.

    Também providenciei a instalação do Java num notebook que possuo, em conjunto com o NetBeans IDE 7.1.1, assim como também o mesmo drive sqljdbc4.jar no notebook.

    Alterei a URL do código para o endereço de rede, com todas as portas habilitadas.

    Ainda, processei o código compilado de acordo com sua orientação:

    java -cp .;sqljdbc4.jar"fazConexao" e aí surgiu uma série e informações que peço sua orientação para seguir e ver se consigo solucionar este problema de conexão com SQL, pois toda a base do trabalho que estou fazendo baseia-se em SQL Server da Microsoft.

    Como o problema persiste e ainda é o mesmo, também em outra máquina, acho que há incompatibilidade do Drive do Java. Estou postando a seguir o código anterior com as modificações que fiz em relação à URL e consulta para obter a conexão, ainda sem êxito.
    Também estou postando as figuras referentes aos problemas encontrados quando do processamento do código compilado.

    Desculpe a extensão de informações, mas além de ser de extrema importância para mim, acredito que a comunidade também poderá a ter o mesmo problema.
    Seque o código com as alterações:


    A seguir as mensagems de falha de processamento, bem como do arquivo sqljdbc.jar aberto no Winzip, mostrando no arquivo a pasta
    com microsoft sqlserver jdbc java.sql.Driver

    0
    0

    O CLASSPATH deste notebook está assim:
    .;%CLASSPATH%,%JAVA_HOME%;C:\Program Files\Java\jdk1.7.0_05\jre\lib\ext\QTJava.zip\C:\Ms_SQL\sqljdbc4.jar

    O drive da Microsoft foi "unzipado" na pasta:
    C:\Ms_SQL\Microsoft JDBC Driver 4.0 for SQL Server\sqljdbc_4.0\ptb\sqljdbc4.jar
    e o drive sqljdbc4.jar, além da pasta acima também foi colocado na pasta na pasta C:\MS_SQL\sqljdbc4.jar, a qual consta na CLASSPATH.

    Vou "chutar" - o drive está instalado numa pasta versão ptb (portugês Brasil). Será incompatível com versão americana?

    Também seria interessante a alternativa de um outro drive adequado para realizar esta conexão.

    Agradeço muito suas observações e orientações. Espero poder sanar esta dificuldade o mais breve possível e também poder colaborar para que a comunidade não incorra em semelhante situação.

    Mais uma vez, antecipadamente muito obrigado.
    Roberto.




  1. simu
    Offline
    Posts: 9410

    Comment Arrow

    Publicado em: 11/07/2012 06:27:59

    R_Luiz_F:
    simu:

    [...]




    Carlos, boa tarde.
    Mais uma vez obrigado pela sua atenção. Desculpe a demora de resposta. Segui suas instruções e ainda não consegui passar o código.

    Quanto ao drive sqljdbc4.jar eu obtive na própria Microsoft.

    Também providenciei a instalação do Java num notebook que possuo, em conjunto com o NetBeans IDE 7.1.1, assim como também o mesmo drive sqljdbc4.jar no notebook.

    Alterei a URL do código para o endereço de rede, com todas as portas habilitadas.

    Ainda, processei o código compilado de acordo com sua orientação:

    java -cp .;sqljdbc4.jar"fazConexao" e aí surgiu uma série e informações que peço sua orientação para seguir e ver se consigo solucionar este problema de conexão com SQL, pois toda a base do trabalho que estou fazendo baseia-se em SQL Server da Microsoft.

    Como o problema persiste e ainda é o mesmo, também em outra máquina, acho que há incompatibilidade do Drive do Java. Estou postando a seguir o código anterior com as modificações que fiz em relação à URL e consulta para obter a conexão, ainda sem êxito.
    Também estou postando as figuras referentes aos problemas encontrados quando do processamento do código compilado.

    Desculpe a extensão de informações, mas além de ser de extrema importância para mim, acredito que a comunidade também poderá a ter o mesmo problema.
    Seque o código com as alterações:


    A seguir as mensagems de falha de processamento, bem como do arquivo sqljdbc.jar aberto no Winzip, mostrando no arquivo a pasta
    com microsoft sqlserver jdbc java.sql.Driver

    [img]http://www.image-share.com/upload/1609/205.jpg[/img]
    [img]http://www.image-share.com/upload/1609/206.jpg[/img]

    O CLASSPATH deste notebook está assim:
    .;%CLASSPATH%,%JAVA_HOME%;C:\Program Files\Java\jdk1.7.0_05\jre\lib\ext\QTJava.zip\C:\Ms_SQL\sqljdbc4.jar

    O drive da Microsoft foi "unzipado" na pasta:
    C:\Ms_SQL\Microsoft JDBC Driver 4.0 for SQL Server\sqljdbc_4.0\ptb\sqljdbc4.jar
    e o drive sqljdbc4.jar, além da pasta acima também foi colocado na pasta na pasta C:\MS_SQL\sqljdbc4.jar, a qual consta na CLASSPATH.

    Vou "chutar" - o drive está instalado numa pasta versão ptb (portugês Brasil). Será incompatível com versão americana?

    Também seria interessante a alternativa de um outro drive adequado para realizar esta conexão.

    Agradeço muito suas observações e orientações. Espero poder sanar esta dificuldade o mais breve possível e também poder colaborar para que a comunidade não incorra em semelhante situação.

    Mais uma vez, antecipadamente muito obrigado.
    Roberto.



    Tudo no mesmo diretório:
    o comando correto é (não era para copiar as aspas e faltou espaço entre os termos - bons tempos do DOS...):


    ou usando o JAR do diretório Ms_SQL



    ou usando o CLASSPATH:
    a pasta C:\MS_SQL\sqljdbc4.jar NÃO está (corretamente) no CLASSPATH.
    Tenta com o seguinte (separado por ponto-e-vírgula, não por barra inversa):

    mesmo assim não é muito recomendado, pelo menos não faz sentido ter o JAVA_HOME nele (e nem o próprio CLASSPATH, a não ser que esteja declarando um para o usuário, não para o sistema). E por motivo de desconfiança eu não deixaria o QuickTime nele...
    Portanto, se for para usar o CLASSPATH, tenta setar o CLASSPATH assim (escrevendo corretamente o caminho do sqljdbc4.jar):
    (no fundo é o mesmo que usar a opção "-cp" ou "-classpath")





    Obs: o provável motivo de não funcionar com o Netbeans é que lá também tem que configurar qual o CLASSPATH (Run-time Libraries) usado pelo projeto para a execução e não somente as usadas pelo compilador (Compile-time Libraries)
    Project -> Properties -> Libraries -> Run
    _________________
      Nome real: Carlos F. Heuberger

    Removeram os meus direitos de administrador e moderador - sem aviso, pela segunda vez - contate o ombudsman (?), a equipejavafree ou a "alta gerência" se necessário - Que pena... que terminou dessa maneira!

    "The mod javafree deserves, but not the one it needs right now."
    --------------------
    Não leio nem respondo MPs!
    This posting is provided AS IS with no warranties and confers no rights.




  1. R_Luiz_F
    Offline
    Posts: 25

    Comment Arrow

    Publicado em: 11/07/2012 12:12:14

    simu:
    R_Luiz_F:
    simu:

    [...]




    Carlos, boa tarde.
    Mais uma vez obrigado pela sua atenção. Desculpe a demora de resposta. Segui suas instruções e ainda não consegui passar o código.

    Quanto ao drive sqljdbc4.jar eu obtive na própria Microsoft.

    Também providenciei a instalação do Java num notebook que possuo, em conjunto com o NetBeans IDE 7.1.1, assim como também o mesmo drive sqljdbc4.jar no notebook.

    Alterei a URL do código para o endereço de rede, com todas as portas habilitadas.

    Ainda, processei o código compilado de acordo com sua orientação:

    java -cp .;sqljdbc4.jar"fazConexao" e aí surgiu uma série e informações que peço sua orientação para seguir e ver se consigo solucionar este problema de conexão com SQL, pois toda a base do trabalho que estou fazendo baseia-se em SQL Server da Microsoft.

    Como o problema persiste e ainda é o mesmo, também em outra máquina, acho que há incompatibilidade do Drive do Java. Estou postando a seguir o código anterior com as modificações que fiz em relação à URL e consulta para obter a conexão, ainda sem êxito.
    Também estou postando as figuras referentes aos problemas encontrados quando do processamento do código compilado.

    Desculpe a extensão de informações, mas além de ser de extrema importância para mim, acredito que a comunidade também poderá a ter o mesmo problema.
    Seque o código com as alterações:


    A seguir as mensagems de falha de processamento, bem como do arquivo sqljdbc.jar aberto no Winzip, mostrando no arquivo a pasta
    com microsoft sqlserver jdbc java.sql.Driver

    [img]http://www.image-share.com/upload/1609/205.jpg[/img]
    [img]http://www.image-share.com/upload/1609/206.jpg[/img]

    O CLASSPATH deste notebook está assim:
    .;%CLASSPATH%,%JAVA_HOME%;C:\Program Files\Java\jdk1.7.0_05\jre\lib\ext\QTJava.zip\C:\Ms_SQL\sqljdbc4.jar

    O drive da Microsoft foi "unzipado" na pasta:
    C:\Ms_SQL\Microsoft JDBC Driver 4.0 for SQL Server\sqljdbc_4.0\ptb\sqljdbc4.jar
    e o drive sqljdbc4.jar, além da pasta acima também foi colocado na pasta na pasta C:\MS_SQL\sqljdbc4.jar, a qual consta na CLASSPATH.

    Vou "chutar" - o drive está instalado numa pasta versão ptb (portugês Brasil). Será incompatível com versão americana?

    Também seria interessante a alternativa de um outro drive adequado para realizar esta conexão.

    Agradeço muito suas observações e orientações. Espero poder sanar esta dificuldade o mais breve possível e também poder colaborar para que a comunidade não incorra em semelhante situação.

    Mais uma vez, antecipadamente muito obrigado.
    Roberto.



    Tudo no mesmo diretório:
    o comando correto é (não era para copiar as aspas e faltou espaço entre os termos - bons tempos do DOS...):


    ou usando o JAR do diretório Ms_SQL



    ou usando o CLASSPATH:
    a pasta C:\MS_SQL\sqljdbc4.jar NÃO está (corretamente) no CLASSPATH.
    Tenta com o seguinte (separado por ponto-e-vírgula, não por barra inversa):

    mesmo assim não é muito recomendado, pelo menos não faz sentido ter o JAVA_HOME nele (e nem o próprio CLASSPATH, a não ser que esteja declarando um para o usuário, não para o sistema). E por motivo de desconfiança eu não deixaria o QuickTime nele...
    Portanto, se for para usar o CLASSPATH, tenta setar o CLASSPATH assim (escrevendo corretamente o caminho do sqljdbc4.jar):
    (no fundo é o mesmo que usar a opção "-cp" ou "-classpath")





    Obs: o provável motivo de não funcionar com o Netbeans é que lá também tem que configurar qual o CLASSPATH (Run-time Libraries) usado pelo projeto para a execução e não somente as usadas pelo compilador (Compile-time Libraries)
    Project -> Properties -> Libraries -> Run




    Carlos, bom dia.

    Mais uma vez e antecipadamente obrigado pela sua atenção.

    Memo após seguir suas orientações, infelizmente ainda há a persistência do problema de conexão.

    Reeditei o CLASSPATH e acertei a falta do ponto e vírgula conforme sua observação.

    Fiz mais alguns testes e achei meio estranho o seguinte:

    Acrescentei na biblioteca do NetBeans o arquivo jar sqljdbc4.jar. Quando da incorporação, aparece drive como Microsoft SQL Server 2005, conforme consta na figura abaixo.

    0

    Por achar que tratava-se de um engano, fui à homepage da Microsoft para obter o drive para SQL Server 2008. Acessei a mesma página que usei anteriormente e baixei novamente o drive, estranho, é o mesmo drive que caracteriza SQL Server 2005. Página da Microsoft conforme figura abaixo.

    0


    Reinstalei, refiz todos os procedimentos anteriores, inclusive atualização do CLASSPATH, como também novamente segui todas suas orientações e ainda há persistência do problema de conexão.

    Após todo este procedimento, voltei a incorporar o arquivo sqljdbc4.jar na biblioteca do NetBeans e acrescentei na 2a linha do código a importação da classe/package da Microsoft do arquivo jdbc:
    import com.microsoft.sqlserver.jdbc.SQLServerDriver;
    que foi aceito normalmente, incluindo por auto implementação e disponibilização das subclasses ao começar a digitar com.microsoft.

    Executei o processamento e na lâmina de saída do NetBeans aparece o erro:
    SQL Exception .... Erro na contulta: (consulta - sai no NetBeans contulta)
    Exception in thread "main" java.lang.NullPointerException
    at fazConexao.main(fazConexao.java:36)
    ou seja, o código tentou fechar alguma conexão que não estava aberta.

    Tentei compilar o código via prompt de comando e o mesmo não compilou por não encontrar o package com.microsoft.sqlserver.jdbc -2a linha do código.

    Voltei ao código e deixei comentada a 2a linha e reexecutei o processamento e o resultado é o mesmo acima citado.

    A figura abaixo mostra a face do NetBeans com a inclusão do drive jar, código com a 2ª linha inclusa/comentada e abaixo a saída do resultado de exceução com o erro.

    0

    Em seguida, após deixar comentada a 2ª linha no código, voltei ao prompt de comando e compilei, que passou normalmente.

    Processei e aparece a inconsistência já enviada anteriormente.

    Em seguida, reprocessei no prompt de comando o código conforme sua orientação e aparece o mesmo problema apontado no NetBeans, ou seja, erro de processamento por tentativa de fechar algo que não estava aberto.

    A figura abaixo mostra o prompt de comando com os procedimentos que acima descreví.


    0

    Pelo que acima exposto estou achando que há extrema incompatibilidade do drive jdbc da Microsoft com o Java ? versões empregadas a partir da jdk1.7.0 - já estamos na versão 1.7.0.5.

    É muito importante seu parecer/análise do exposto, bem como uma reorientação sobre busca de um drive jdbc compatível para que eu possa dar sequencia ao trabalho que estou desenvolvendo, já com muito atraso em função deste bug, bem como referenciar à comunidade alternativas para não incorrerem em semelhante situação.

    Novamente agradeço sua preciosa atenção e importantes orientações.

    Obrigado,

    Roberto.




  1. simu
    Offline
    Posts: 9410

    Comment Arrow

    Publicado em: 11/07/2012 13:10:57

    R_Luiz_F:
    simu:

    [...]




    Carlos, bom dia.

    Mais uma vez e antecipadamente obrigado pela sua atenção.

    Memo após seguir suas orientações, infelizmente ainda há a persistência do problema de conexão.

    Reeditei o CLASSPATH e acertei a falta do ponto e vírgula conforme sua observação.

    Fiz mais alguns testes e achei meio estranho o seguinte:

    Acrescentei na biblioteca do NetBeans o arquivo jar sqljdbc4.jar. Quando da incorporação, aparece drive como Microsoft SQL Server 2005, conforme consta na figura abaixo.

    [img]http://www.image-share.com/upload/1611/31.jpg[/img]

    Por achar que tratava-se de um engano, fui à homepage da Microsoft para obter o drive para SQL Server 2008. Acessei a mesma página que usei anteriormente e baixei novamente o drive, estranho, é o mesmo drive que caracteriza SQL Server 2005. Página da Microsoft conforme figura abaixo.

    [img]http://www.image-share.com/upload/1611/24.jpg[/img]


    Reinstalei, refiz todos os procedimentos anteriores, inclusive atualização do CLASSPATH, como também novamente segui todas suas orientações e ainda há persistência do problema de conexão.

    Após todo este procedimento, voltei a incorporar o arquivo sqljdbc4.jar na biblioteca do NetBeans e acrescentei na 2a linha do código a importação da classe/package da Microsoft do arquivo jdbc:
    import com.microsoft.sqlserver.jdbc.SQLServerDriver;
    que foi aceito normalmente, incluindo por auto implementação e disponibilização das subclasses ao começar a digitar com.microsoft.

    Executei o processamento e na lâmina de saída do NetBeans aparece o erro:
    SQL Exception .... Erro na contulta: (consulta - sai no NetBeans contulta)
    Exception in thread "main" java.lang.NullPointerException
    at fazConexao.main(fazConexao.java:36)
    ou seja, o código tentou fechar alguma conexão que não estava aberta.

    Tentei compilar o código via prompt de comando e o mesmo não compilou por não encontrar o package com.microsoft.sqlserver.jdbc -2a linha do código.

    Voltei ao código e deixei comentada a 2a linha e reexecutei o processamento e o resultado é o mesmo acima citado.

    A figura abaixo mostra a face do NetBeans com a inclusão do drive jar, código com a 2ª linha inclusa/comentada e abaixo a saída do resultado de exceução com o erro.

    [img]http://www.image-share.com/upload/1611/25.jpg[/img]

    Em seguida, após deixar comentada a 2ª linha no código, voltei ao prompt de comando e compilei, que passou normalmente.

    Processei e aparece a inconsistência já enviada anteriormente.

    Em seguida, reprocessei no prompt de comando o código conforme sua orientação e aparece o mesmo problema apontado no NetBeans, ou seja, erro de processamento por tentativa de fechar algo que não estava aberto.

    A figura abaixo mostra o prompt de comando com os procedimentos que acima descreví.


    [img]http://www.image-share.com/upload/1611/27.jpg[/img]

    Pelo que acima exposto estou achando que há extrema incompatibilidade do drive jdbc da Microsoft com o Java ? versões empregadas a partir da jdk1.7.0 - já estamos na versão 1.7.0.5.

    É muito importante seu parecer/análise do exposto, bem como uma reorientação sobre busca de um drive jdbc compatível para que eu possa dar sequencia ao trabalho que estou desenvolvendo, já com muito atraso em função deste bug, bem como referenciar à comunidade alternativas para não incorrerem em semelhante situação.

    Novamente agradeço sua preciosa atenção e importantes orientações.

    Obrigado,

    Roberto.



    você diz que mudou o CLASSPATH mas não mostra como ficou?
    fez o teste com "java -cp ..." (sem aspas, e como descrevi na mensagem anterior) e recebe um erro DIFERENTE!

    não é problema de compatibilidade - quando usou "java -cp ..." o sistema encontrou e carregou a classe -
    é outro erro que está aparecendo - provavelmente erro no comando SQL
    veja a linha azul da minha assinatura - não está lá para enfeitar...

    _________________
      Nome real: Carlos F. Heuberger

    Removeram os meus direitos de administrador e moderador - sem aviso, pela segunda vez - contate o ombudsman (?), a equipejavafree ou a "alta gerência" se necessário - Que pena... que terminou dessa maneira!

    "The mod javafree deserves, but not the one it needs right now."
    --------------------
    Não leio nem respondo MPs!
    This posting is provided AS IS with no warranties and confers no rights.




  1. R_Luiz_F
    Offline
    Posts: 25

    Comment Arrow

    Publicado em: 11/07/2012 18:36:49

    simu:
    R_Luiz_F:
    simu:

    [...]




    Carlos, bom dia.

    Mais uma vez e antecipadamente obrigado pela sua atenção.

    Memo após seguir suas orientações, infelizmente ainda há a persistência do problema de conexão.

    Reeditei o CLASSPATH e acertei a falta do ponto e vírgula conforme sua observação.

    Fiz mais alguns testes e achei meio estranho o seguinte:

    Acrescentei na biblioteca do NetBeans o arquivo jar sqljdbc4.jar. Quando da incorporação, aparece drive como Microsoft SQL Server 2005, conforme consta na figura abaixo.

    [img]http://www.image-share.com/upload/1611/31.jpg[/img]

    Por achar que tratava-se de um engano, fui à homepage da Microsoft para obter o drive para SQL Server 2008. Acessei a mesma página que usei anteriormente e baixei novamente o drive, estranho, é o mesmo drive que caracteriza SQL Server 2005. Página da Microsoft conforme figura abaixo.

    [img]http://www.image-share.com/upload/1611/24.jpg[/img]


    Reinstalei, refiz todos os procedimentos anteriores, inclusive atualização do CLASSPATH, como também novamente segui todas suas orientações e ainda há persistência do problema de conexão.

    Após todo este procedimento, voltei a incorporar o arquivo sqljdbc4.jar na biblioteca do NetBeans e acrescentei na 2a linha do código a importação da classe/package da Microsoft do arquivo jdbc:
    import com.microsoft.sqlserver.jdbc.SQLServerDriver;
    que foi aceito normalmente, incluindo por auto implementação e disponibilização das subclasses ao começar a digitar com.microsoft.

    Executei o processamento e na lâmina de saída do NetBeans aparece o erro:
    SQL Exception .... Erro na contulta: (consulta - sai no NetBeans contulta)
    Exception in thread "main" java.lang.NullPointerException
    at fazConexao.main(fazConexao.java:36)
    ou seja, o código tentou fechar alguma conexão que não estava aberta.

    Tentei compilar o código via prompt de comando e o mesmo não compilou por não encontrar o package com.microsoft.sqlserver.jdbc -2a linha do código.

    Voltei ao código e deixei comentada a 2a linha e reexecutei o processamento e o resultado é o mesmo acima citado.

    A figura abaixo mostra a face do NetBeans com a inclusão do drive jar, código com a 2ª linha inclusa/comentada e abaixo a saída do resultado de exceução com o erro.

    [img]http://www.image-share.com/upload/1611/25.jpg[/img]

    Em seguida, após deixar comentada a 2ª linha no código, voltei ao prompt de comando e compilei, que passou normalmente.

    Processei e aparece a inconsistência já enviada anteriormente.

    Em seguida, reprocessei no prompt de comando o código conforme sua orientação e aparece o mesmo problema apontado no NetBeans, ou seja, erro de processamento por tentativa de fechar algo que não estava aberto.

    A figura abaixo mostra o prompt de comando com os procedimentos que acima descreví.


    [img]http://www.image-share.com/upload/1611/27.jpg[/img]

    Pelo que acima exposto estou achando que há extrema incompatibilidade do drive jdbc da Microsoft com o Java ? versões empregadas a partir da jdk1.7.0 - já estamos na versão 1.7.0.5.

    É muito importante seu parecer/análise do exposto, bem como uma reorientação sobre busca de um drive jdbc compatível para que eu possa dar sequencia ao trabalho que estou desenvolvendo, já com muito atraso em função deste bug, bem como referenciar à comunidade alternativas para não incorrerem em semelhante situação.

    Novamente agradeço sua preciosa atenção e importantes orientações.

    Obrigado,

    Roberto.



    você diz que mudou o CLASSPATH mas não mostra como ficou?
    fez o teste com "java -cp ..." (sem aspas, e como descrevi na mensagem anterior) e recebe um erro DIFERENTE!

    não é problema de compatibilidade - quando usou "java -cp ..." o sistema encontrou e carregou a classe -
    é outro erro que está aparecendo - provavelmente erro no comando SQL
    veja a linha azul da minha assinatura - não está lá para enfeitar...



    Boa tarde Carlos.

    Sobre suas perguntas acima:
    mudei o CLASSPATH que ficou assim:
    .;%CLASSPATH%,%JAVA_HOME%;C:\Ms_SQL\sqljdbc4.jar

    o teste com java -cp sem aspas na classe está demonstrado na última figura que postei, prompt de comando. Nessa figura consta 4 processos seguidos que fiz:

    primeiro: compilação que mostra erro pois o compilador não encontra o package com.microsoft.sqlserver.jdbc;

    segundo: deixei comentado no código o import com.microsoft.sqlserver.jdbc.SQLServerDriver; e voltei a compilar. Acompilação passou sem problemas;

    terceiro: o processamento da nova compilação apenas com java fazConexao que apresentou como resultado do processamento o mesmo problema mostrado anteriormente de classe não encontrada obtida no printstackTrace: java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLServerDriver;

    quarto: refere-se ao processamento conforme sua orientação:
    java -cp .;C:\MS_SQL\sqljdbc4.jar fazConexao, cujo resultado do processo
    SQL Exception ... Erro na consulta:
    Exception in trhread "main" java.lang.NullPointerException
    at fazConexao.main(fazConexao.java:36)
    resultado este igual ao apresentado na execução via NetBeans conforme mostra a figura 3 que postei anteriormente.

    Os erros de processamentos apresentados me leva a concluir incompatibilidade do driver jdbc, por isso escrevi anteriormente, uma vez que o código ao processar a linha Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver") trunca e vai direto para o catch e faz um printstackTrace mostrando falhas de conexão e novo erro pois tenta fechar uma conexão que não abriu - linha 36 do código, conforme figura 3.

    Peço sua gentileza de dar uma olhadinha nas figuras 3 e 4 que citei acima para você ter uma idéia dos processos que fiz, sem êxito de resultado.

    Procurei novamente outros drivers compatíveis e ainda não achei nenhum diferente daqueles que possuo, daí que subentendo que tais são incompativeis com o java a partir da versão 1.7.

    Acredito que até estou sendo prematuro com estas idéias, mas o problema persiste e o código compilado não consegue localizar o driver conector com o SQL Server.

    Você pode me enviar mais algumas orientações?

    Novamente fico muito agradecido com sua atenção e orientações.

    Obrigado.
    Roberto.

    Quote:

    Quote:




  1. simu
    Offline
    Posts: 9410

    Comment Arrow

    Publicado em: 12/07/2012 08:29:35

    R_Luiz_F:
    simu:

    R_Luiz_F:

    [...]



    você diz que mudou o CLASSPATH mas não mostra como ficou?
    fez o teste com "java -cp ..." (sem aspas, e como descrevi na mensagem anterior) e recebe um erro DIFERENTE!

    não é problema de compatibilidade - quando usou "java -cp ..." o sistema encontrou e carregou a classe -
    é outro erro que está aparecendo - provavelmente erro no comando SQL
    veja a linha azul da minha assinatura - não está lá para enfeitar...



    Boa tarde Carlos.

    Sobre suas perguntas acima:
    mudei o CLASSPATH que ficou assim:
    .;%CLASSPATH%,%JAVA_HOME%;C:\Ms_SQL\sqljdbc4.jar

    o teste com java -cp sem aspas na classe está demonstrado na última figura que postei, prompt de comando. Nessa figura consta 4 processos seguidos que fiz:

    primeiro: compilação que mostra erro pois o compilador não encontra o package com.microsoft.sqlserver.jdbc;

    segundo: deixei comentado no código o import com.microsoft.sqlserver.jdbc.SQLServerDriver; e voltei a compilar. Acompilação passou sem problemas;

    terceiro: o processamento da nova compilação apenas com java fazConexao que apresentou como resultado do processamento o mesmo problema mostrado anteriormente de classe não encontrada obtida no printstackTrace: java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLServerDriver;

    quarto: refere-se ao processamento conforme sua orientação:
    java -cp .;C:\MS_SQL\sqljdbc4.jar fazConexao, cujo resultado do processo
    SQL Exception ... Erro na consulta:
    Exception in trhread "main" java.lang.NullPointerException
    at fazConexao.main(fazConexao.java:36)
    resultado este igual ao apresentado na execução via NetBeans conforme mostra a figura 3 que postei anteriormente.

    Os erros de processamentos apresentados me leva a concluir incompatibilidade do driver jdbc, por isso escrevi anteriormente, uma vez que o código ao processar a linha Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver") trunca e vai direto para o catch e faz um printstackTrace mostrando falhas de conexão e novo erro pois tenta fechar uma conexão que não abriu - linha 36 do código, conforme figura 3.

    Peço sua gentileza de dar uma olhadinha nas figuras 3 e 4 que citei acima para você ter uma idéia dos processos que fiz, sem êxito de resultado.

    Procurei novamente outros drivers compatíveis e ainda não achei nenhum diferente daqueles que possuo, daí que subentendo que tais são incompativeis com o java a partir da versão 1.7.

    Acredito que até estou sendo prematuro com estas idéias, mas o problema persiste e o código compilado não consegue localizar o driver conector com o SQL Server.

    Você pode me enviar mais algumas orientações?

    Novamente fico muito agradecido com sua atenção e orientações.

    Obrigado.
    Roberto.

    Quote:

    Quote:



    penso que não leu tudo/corretamente o que eu escrevi!

    R_Luiz_F:

    .;%CLASSPATH%,%JAVA_HOME%;C:\Ms_SQL\sqljdbc4.jar


    O CLASSPATH continua com erro - separador entre os caminhos em Windows é ponto-e-vírgula (provavelmente não vai mudar nada).
    E tentou sem "%CLASSPATH%" e "%JAVA_HOME%"?


    R_Luiz_F:

    o teste com java -cp sem aspas na classe está demonstrado na última figura que postei, prompt de comando.


    Eu sei e por isso que escrevi/afirmei (talvez mal formulado):

    simu:


    [...] fez o teste com "java -cp ..." ([...]) e recebe um erro DIFERENTE! [...]

    [...] é outro erro que está aparecendo - [...] veja a linha azul da minha assinatura [...]


    ou seja, ADICIONA printStackTrace() EM TODOS OS catch's PRINCIPALMENTE naquele que tem a mensagem "[...] Erro na consulta: "!

    como a "conection" é null, o erro pode também ser na URL de conexão. Ela ficou um pouco estranha, principalmente como adicionou o DATABASE,
    deveria vir separado por barra inversa '\' (duas em Java), depois de ";" normalmente só vem pares "<chave>=<valor>"... não seria a primeira vez que errou os caracteres de separação [:-|

    Building the Connection URL

    talvez


    MAS SEM O STACKTRACE EU NÃO VOU ARRISCAR MAIS NENHUM PALPITE!
    Não entendo porque não adicionar o printStackTrace nesse [b]catch
    ... [/b]
    (já chutei mais do que deveria...)


    _________________
      Nome real: Carlos F. Heuberger

    Removeram os meus direitos de administrador e moderador - sem aviso, pela segunda vez - contate o ombudsman (?), a equipejavafree ou a "alta gerência" se necessário - Que pena... que terminou dessa maneira!

    "The mod javafree deserves, but not the one it needs right now."
    --------------------
    Não leio nem respondo MPs!
    This posting is provided AS IS with no warranties and confers no rights.




  1. R_Luiz_F
    Offline
    Posts: 25

    Comment Arrow

    Publicado em: 17/07/2012 15:23:57

    simu:
    R_Luiz_F:
    simu:

    R_Luiz_F:

    [...]



    você diz que mudou o CLASSPATH mas não mostra como ficou?
    fez o teste com "java -cp ..." (sem aspas, e como descrevi na mensagem anterior) e recebe um erro DIFERENTE!

    não é problema de compatibilidade - quando usou "java -cp ..." o sistema encontrou e carregou a classe -
    é outro erro que está aparecendo - provavelmente erro no comando SQL
    veja a linha azul da minha assinatura - não está lá para enfeitar...



    Boa tarde Carlos.

    Sobre suas perguntas acima:
    mudei o CLASSPATH que ficou assim:
    .;%CLASSPATH%,%JAVA_HOME%;C:\Ms_SQL\sqljdbc4.jar

    o teste com java -cp sem aspas na classe está demonstrado na última figura que postei, prompt de comando. Nessa figura consta 4 processos seguidos que fiz:

    primeiro: compilação que mostra erro pois o compilador não encontra o package com.microsoft.sqlserver.jdbc;

    segundo: deixei comentado no código o import com.microsoft.sqlserver.jdbc.SQLServerDriver; e voltei a compilar. Acompilação passou sem problemas;

    terceiro: o processamento da nova compilação apenas com java fazConexao que apresentou como resultado do processamento o mesmo problema mostrado anteriormente de classe não encontrada obtida no printstackTrace: java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLServerDriver;

    quarto: refere-se ao processamento conforme sua orientação:
    java -cp .;C:\MS_SQL\sqljdbc4.jar fazConexao, cujo resultado do processo
    SQL Exception ... Erro na consulta:
    Exception in trhread "main" java.lang.NullPointerException
    at fazConexao.main(fazConexao.java:36)
    resultado este igual ao apresentado na execução via NetBeans conforme mostra a figura 3 que postei anteriormente.

    Os erros de processamentos apresentados me leva a concluir incompatibilidade do driver jdbc, por isso escrevi anteriormente, uma vez que o código ao processar a linha Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver") trunca e vai direto para o catch e faz um printstackTrace mostrando falhas de conexão e novo erro pois tenta fechar uma conexão que não abriu - linha 36 do código, conforme figura 3.

    Peço sua gentileza de dar uma olhadinha nas figuras 3 e 4 que citei acima para você ter uma idéia dos processos que fiz, sem êxito de resultado.

    Procurei novamente outros drivers compatíveis e ainda não achei nenhum diferente daqueles que possuo, daí que subentendo que tais são incompativeis com o java a partir da versão 1.7.

    Acredito que até estou sendo prematuro com estas idéias, mas o problema persiste e o código compilado não consegue localizar o driver conector com o SQL Server.

    Você pode me enviar mais algumas orientações?

    Novamente fico muito agradecido com sua atenção e orientações.

    Obrigado.
    Roberto.

    Quote:

    Quote:



    penso que não leu tudo/corretamente o que eu escrevi!

    R_Luiz_F:

    .;%CLASSPATH%,%JAVA_HOME%;C:\Ms_SQL\sqljdbc4.jar


    O CLASSPATH continua com erro - separador entre os caminhos em Windows é ponto-e-vírgula (provavelmente não vai mudar nada).
    E tentou sem "%CLASSPATH%" e "%JAVA_HOME%"?


    R_Luiz_F:

    o teste com java -cp sem aspas na classe está demonstrado na última figura que postei, prompt de comando.


    Eu sei e por isso que escrevi/afirmei (talvez mal formulado):

    simu:


    [...] fez o teste com "java -cp ..." ([...]) e recebe um erro DIFERENTE! [...]

    [...] é outro erro que está aparecendo - [...] veja a linha azul da minha assinatura [...]


    ou seja, ADICIONA printStackTrace() EM TODOS OS catch's PRINCIPALMENTE naquele que tem a mensagem "[...] Erro na consulta: "!

    como a "conection" é null, o erro pode também ser na URL de conexão. Ela ficou um pouco estranha, principalmente como adicionou o DATABASE,
    deveria vir separado por barra inversa '\' (duas em Java), depois de ";" normalmente só vem pares "<chave>=<valor>"... não seria a primeira vez que errou os caracteres de separação [:-|

    Building the Connection URL

    talvez


    MAS SEM O STACKTRACE EU NÃO VOU ARRISCAR MAIS NENHUM PALPITE!
    Não entendo porque não adicionar o printStackTrace nesse [b]catch
    ... [/b]
    (já chutei mais do que deveria...)


    Quote:


    Carlos, boa tarde.

    Novamente agradeço a atenção e cordialidade.

    Primeiramente quero pedir desculpas pela demora de resposta. Precisei ausentar-me por uns dias.

    Seguindo sua orientação, ainda fiz várias tentativas de acesso no servidor via Java com sucessivos insucessos.

    Acabei por retornar a imagem de meu sistema em uma data anterior à instalação do SQL Server e novamente reinstalei o software/servidor, com a premissa de que não havia nenhum sinal do mesmo nas chaves de registros.

    A instalação também foi adequada e, nesta vez, foi reconhecido mais facilmente outros servidores que instalei além do que estava apresentando problemas de conexão (diga-se de passagem este encontra-se sem execução/desabilitado nesta nova instalação).

    Baixei novamente o drive Sqljdbc4.jar da Microsoft através do instalador sqljdbc_4.0.2206.100_ptb.exe. Descompactei o mesmo e deixei o drive dentro da pasta do código do Java para evitar caminhos extensos na chamada do código, bem como o deixei no descrito CLASSPATH.

    Refiz as tabelas do arquivo no novo servidor instalado (não consegui recuperar as mesmas do servidor anterior por problemas de acesso) , e também alterei no código Java a URL apontando para o novo servidor, com seus devidos usuário e password.

    A partir destes procedimentos comecei a obter sucesso de acesso e as referidas pesquisas no banco de dados.

    Ressalto que não consegui ainda processar com sucesso o código pela simples chamada de

    java fazConexao

    dentro do diretório/pasta que se encontra, que ainda retorna como mensagem

    java.lang.ClassNorFoundException: com.microsoft.sqlserver.jdbc.SQLServerDriver

    mesmo deixando apenas no CLASSPATH
    .;C:\MS_SQL\Sqljdbc4.jar

    Porém, conforme sua orientação, pela chamada dentro do diretório do código Java

    java -cp .;Sqljdbc4.jar fazConexao

    o código processa normalmente, tanto com sucesso de conexão como também as devidas consultas de inserção/alteração/exclusão nas tabelas que preparei para estes fins de testes.

    Também há acesso normal de consultas em algumas outras tabelas que estou utilizando normalmente.

    Quero novamente agradecer imensamente sua atenção e colaboração, e deixo aqui uma alternativa de solução para outros usuários que tiverem problemas semelhantes.

    Acredito que a solução foi o retorno da imagem do sistema anterior à instalação, sem sinais de registros do SQL nas chaves de registros, o que possibilitou uma reinstalação adequada do servidor.

    Muito obrigado e, em caso de mais dúvidas/insucessos voltarei ao forum com outro tópico.

    Uma boa tarde para você e a todos que participam do forum.

    Saudações,

    Roberto.




  1. simu
    Offline
    Posts: 9410

    Comment Arrow

    Publicado em: 18/07/2012 04:20:16

    R_Luiz_F:
    simu:

    [...]


    Quote:


    Carlos, boa tarde.

    Novamente agradeço a atenção e cordialidade.

    Primeiramente quero pedir desculpas pela demora de resposta. Precisei ausentar-me por uns dias.

    Seguindo sua orientação, ainda fiz várias tentativas de acesso no servidor via Java com sucessivos insucessos.

    Acabei por retornar a imagem de meu sistema em uma data anterior à instalação do SQL Server e novamente reinstalei o software/servidor, com a premissa de que não havia nenhum sinal do mesmo nas chaves de registros.

    A instalação também foi adequada e, nesta vez, foi reconhecido mais facilmente outros servidores que instalei além do que estava apresentando problemas de conexão (diga-se de passagem este encontra-se sem execução/desabilitado nesta nova instalação).

    Baixei novamente o drive Sqljdbc4.jar da Microsoft através do instalador sqljdbc_4.0.2206.100_ptb.exe. Descompactei o mesmo e deixei o drive dentro da pasta do código do Java para evitar caminhos extensos na chamada do código, bem como o deixei no descrito CLASSPATH.

    Refiz as tabelas do arquivo no novo servidor instalado (não consegui recuperar as mesmas do servidor anterior por problemas de acesso) , e também alterei no código Java a URL apontando para o novo servidor, com seus devidos usuário e password.

    A partir destes procedimentos comecei a obter sucesso de acesso e as referidas pesquisas no banco de dados.

    Ressalto que não consegui ainda processar com sucesso o código pela simples chamada de

    java fazConexao

    dentro do diretório/pasta que se encontra, que ainda retorna como mensagem

    java.lang.ClassNorFoundException: com.microsoft.sqlserver.jdbc.SQLServerDriver

    mesmo deixando apenas no CLASSPATH
    .;C:\MS_SQL\Sqljdbc4.jar

    Porém, conforme sua orientação, pela chamada dentro do diretório do código Java

    java -cp .;Sqljdbc4.jar fazConexao

    o código processa normalmente, tanto com sucesso de conexão como também as devidas consultas de inserção/alteração/exclusão nas tabelas que preparei para estes fins de testes.

    Também há acesso normal de consultas em algumas outras tabelas que estou utilizando normalmente.

    Quero novamente agradecer imensamente sua atenção e colaboração, e deixo aqui uma alternativa de solução para outros usuários que tiverem problemas semelhantes.

    Acredito que a solução foi o retorno da imagem do sistema anterior à instalação, sem sinais de registros do SQL nas chaves de registros, o que possibilitou uma reinstalação adequada do servidor.

    Muito obrigado e, em caso de mais dúvidas/insucessos voltarei ao forum com outro tópico.

    Uma boa tarde para você e a todos que participam do forum.

    Saudações,

    Roberto.



    realmente ficou meio estranho não funcionar com a variável de ambiente CLASSPATH, já que funcionou com o "-cp".
    Você ainda poderia tentar o seguinte comando na console DOS:

    agora é só verificar se o JAR realmente está no diretório indicado.

    Outro problema que pode estar ocorrendo é a falta de direitos de leitura do JAR (ou do diretório). Tenta:

    deve aparecer uma lista dos arquivos (classes) que estão dentro do JAR, inclusive o Driver.
    _________________
      Nome real: Carlos F. Heuberger

    Removeram os meus direitos de administrador e moderador - sem aviso, pela segunda vez - contate o ombudsman (?), a equipejavafree ou a "alta gerência" se necessário - Que pena... que terminou dessa maneira!

    "The mod javafree deserves, but not the one it needs right now."
    --------------------
    Não leio nem respondo MPs!
    This posting is provided AS IS with no warranties and confers no rights.




  1. R_Luiz_F
    Offline
    Posts: 25

    Comment Arrow

    Publicado em: 20/07/2012 09:35:05

    simu:
    R_Luiz_F:
    simu:

    [...]


    Quote:


    Carlos, boa tarde.

    Novamente agradeço a atenção e cordialidade.

    Primeiramente quero pedir desculpas pela demora de resposta. Precisei ausentar-me por uns dias.

    Seguindo sua orientação, ainda fiz várias tentativas de acesso no servidor via Java com sucessivos insucessos.

    Acabei por retornar a imagem de meu sistema em uma data anterior à instalação do SQL Server e novamente reinstalei o software/servidor, com a premissa de que não havia nenhum sinal do mesmo nas chaves de registros.

    A instalação também foi adequada e, nesta vez, foi reconhecido mais facilmente outros servidores que instalei além do que estava apresentando problemas de conexão (diga-se de passagem este encontra-se sem execução/desabilitado nesta nova instalação).

    Baixei novamente o drive Sqljdbc4.jar da Microsoft através do instalador sqljdbc_4.0.2206.100_ptb.exe. Descompactei o mesmo e deixei o drive dentro da pasta do código do Java para evitar caminhos extensos na chamada do código, bem como o deixei no descrito CLASSPATH.

    Refiz as tabelas do arquivo no novo servidor instalado (não consegui recuperar as mesmas do servidor anterior por problemas de acesso) , e também alterei no código Java a URL apontando para o novo servidor, com seus devidos usuário e password.

    A partir destes procedimentos comecei a obter sucesso de acesso e as referidas pesquisas no banco de dados.

    Ressalto que não consegui ainda processar com sucesso o código pela simples chamada de

    java fazConexao

    dentro do diretório/pasta que se encontra, que ainda retorna como mensagem

    java.lang.ClassNorFoundException: com.microsoft.sqlserver.jdbc.SQLServerDriver

    mesmo deixando apenas no CLASSPATH
    .;C:\MS_SQL\Sqljdbc4.jar

    Porém, conforme sua orientação, pela chamada dentro do diretório do código Java

    java -cp .;Sqljdbc4.jar fazConexao

    o código processa normalmente, tanto com sucesso de conexão como também as devidas consultas de inserção/alteração/exclusão nas tabelas que preparei para estes fins de testes.

    Também há acesso normal de consultas em algumas outras tabelas que estou utilizando normalmente.

    Quero novamente agradecer imensamente sua atenção e colaboração, e deixo aqui uma alternativa de solução para outros usuários que tiverem problemas semelhantes.

    Acredito que a solução foi o retorno da imagem do sistema anterior à instalação, sem sinais de registros do SQL nas chaves de registros, o que possibilitou uma reinstalação adequada do servidor.

    Muito obrigado e, em caso de mais dúvidas/insucessos voltarei ao forum com outro tópico.

    Uma boa tarde para você e a todos que participam do forum.

    Saudações,

    Roberto.



    realmente ficou meio estranho não funcionar com a variável de ambiente CLASSPATH, já que funcionou com o "-cp".
    Você ainda poderia tentar o seguinte comando na console DOS:

    agora é só verificar se o JAR realmente está no diretório indicado.

    Outro problema que pode estar ocorrendo é a falta de direitos de leitura do JAR (ou do diretório). Tenta:

    deve aparecer uma lista dos arquivos (classes) que estão dentro do JAR, inclusive o Driver.


    [quote]
    Carlos, bom dia. Mais uma vez obrigado pela sua atenção.

    Processei os comandos acima no DOS e para
    jar -tf C:\MS_SQL\Sqljdbc4.jar
    é mostrada todas as classes envolvidas no arquivo Sqljdbc4.jar.

    Entretanto, no comando

    além de não ser listado o arquivo Sqljdbc4.jar, é listado alguns diretórios no meio dos demais que não existem, tais como

    que pode ser visto na figura abaixo:
    0
    Peço sua costumeira gentileza de me orientar para poder arrumar as divergências, principalmente sobre Java, pois a versão do atual do Java que tenho instalado no notebook que estou rodando o código é:


    No desktop servidor que tenho o Ms Sql Server instalado também consta divergências em relação à versão do Java instalado, que também se encontra no Arquivo de Programas e não no Arquivo de Programas (x86).

    Acho que é isto que está gerando conflitos.

    Obrigado novamente.
    Roberto.




  1. simu
    Offline
    Posts: 9410

    Comment Arrow

    Publicado em: 23/07/2012 06:27:05

    R_Luiz_F:
    simu:

    [...]


    [quote]
    Carlos, bom dia. Mais uma vez obrigado pela sua atenção.

    Processei os comandos acima no DOS e para
    jar -tf C:\MS_SQL\Sqljdbc4.jar
    é mostrada todas as classes envolvidas no arquivo Sqljdbc4.jar.

    Entretanto, no comando

    além de não ser listado o arquivo Sqljdbc4.jar, é listado alguns diretórios no meio dos demais que não existem, tais como

    que pode ser visto na figura abaixo:
    0
    Peço sua costumeira gentileza de me orientar para poder arrumar as divergências, principalmente sobre Java, pois a versão do atual do Java que tenho instalado no notebook que estou rodando o código é:


    No desktop servidor que tenho o Ms Sql Server instalado também consta divergências em relação à versão do Java instalado, que também se encontra no Arquivo de Programas e não no Arquivo de Programas (x86).

    Acho que é isto que está gerando conflitos.

    Obrigado novamente.
    Roberto.



    1 - POR FAVOR pare de (tentar) citar o que VOCÊ está escrevendo - citação é usada para ressaltar textos de OUTRAS fontes (outros autores ou, pelo menos, outras mensagens) - assim só confunde!

    2 - pelo visto não "deixou" o CLASSPATH como afirmou... pelo menos o seu sistema parece não ter assumido o que você fez... Isso é mais problema de utilização/configuração do Windows.

    3 - o problema de ter outras versões instaladas do Java também não é problema de Java e sim do que foi instalado na respectiva máquina... O problema com o JDK1.1 pode ser uma java.exe mais velha que "sobrou" num dos diretórios do próprio Windows como "C:\WINDOWS" e "C:\WINDOWS\system32", ... OU, o instalador do Banco de Dados da Oracle vira e mexe instala uma versão bem antiga do Java, mas acho que era apenas o JRE...
    Se tiver várias versões de Java instalado na máquina é só configurar a variável de ambiente PATH do Windows deixando a versão a ser utilizada (a mais nova) no início do PATH... mais uma vez configuração do Windows, semelhante o problema com o CLASSPATH.

    _________________
      Nome real: Carlos F. Heuberger

    Removeram os meus direitos de administrador e moderador - sem aviso, pela segunda vez - contate o ombudsman (?), a equipejavafree ou a "alta gerência" se necessário - Que pena... que terminou dessa maneira!

    "The mod javafree deserves, but not the one it needs right now."
    --------------------
    Não leio nem respondo MPs!
    This posting is provided AS IS with no warranties and confers no rights.




  1. R_Luiz_F
    Offline
    Posts: 25

    Comment Arrow

    Publicado em: 23/07/2012 21:54:17

    Carlos, boa noite.

    Ajustei a Path e CLASSPATH de Usuário e Sistema. Ficou tudo OK.

    A classe está sendo chamada sem necessidade de-cp .;XXXXX

    apenas com java XXXX está ok.

    Muitíssimo obrigado pela sua orientação.

    Saudações,
    Roberto.




  1. Relacionados





New Topic    Reply Message     Forum Main Page -> Java Básico


Goto page 1