Estou tentando exibir uma consulta de um Banco de Dados em um WebService, a titulo de estudo.
Desenvolvi a classe e arquivo de propriedade abaixo:
import java.io.IOException;
import java.io.InputStream;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Properties;
import java.sql.Connection;
import java.sql.Statement;
public class Principal {
class Propriedade {
Properties props = new Properties();
InputStream in = this.getClass().getResourceAsStream("conexao.properties");
public Propriedade(){
try{
props.load(in);
in.close();
}catch(IOException e){
e.printStackTrace();
}
}
public String getUuario(){
return props.getProperty("conexao.usuario");
}
public String getSenha(){
return props.getProperty("conexao.senha");
}
public String getDriver(){
return props.getProperty("conexao.driver");
}
public String getServidor(){
return props.getProperty("conexao.servidor");
}
public String getBancoDados(){
return props.getProperty("conexao.db");
}
public String getCaminho(String servidor, String db){
return "jdbc:jtds:sqlserver://" + servidor + ":1433/" + db;
}
public String getConsulta(){
return props.getProperty("consulta.principal");
}
}
public void ListaDados(){
String lista = null;
try
{
Propriedade p = new Propriedade();
Class.forName(p.getDriver()).newInstance();
Connection con = (Connection) DriverManager.getConnection(p.getCaminho(p.getServidor(), p.getBancoDados()),p.getUuario(),p.getSenha());
Statement stm = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
ResultSet rs = stm.executeQuery(p.getConsulta());
rs.beforeFirst();
while(rs.next()){
System.out.println("UsuarioID: "+rs.getInt("USUARIO_ID")+" Nome: "+rs.getString("NOME"));
}
} catch (final InstantiationException ex) {
ex.printStackTrace();
} catch (final ClassNotFoundException ex) {
ex.printStackTrace();
} catch (final IllegalAccessException ex) {
ex.printStackTrace();
} catch (final SQLException ex) {
ex.printStackTrace();
}
}
}
Arquivo de propriedades:
conexao.usuario=xxxxxxxx
conexao.senha=xxxxxxxxx
conexao.driver=net.sourceforge.jtds.jdbc.Driver
conexao.servidor=xxx.xxx.xxx.xxx
conexao.db=xxxxxxxxx
consulta.principal=select * from usuarios where (usuario is not null or usuario <> '') and (nome is not null or nome <> '')
Disponibilizei e gerei o WebService utilizando o tomcat e o axis2.
Gerei o cliente, os arquivos PrincipalCallbackHandler e PrincipalStub foram criados.
Para chamar o metodo criei a seguinte classe:
package org.apache.ws.axis2;
import java.rmi.RemoteException;
import org.apache.ws.axis2.PrincipalStub;
public class ChamaPrincipal {
public static void main(String[] args) throws RemoteException {
PrincipalStub p = new PrincipalStub();
p.ListaDados();
}
}
O problema é que quando eu executo a mesma, nenhuma informação é exibida no console.
Caso eu execute a classe original chamando apartir de outra classe, sem webservice, as informações são exibidas no console. Alguem pode ajudar?