Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Silva Mateus

Erro ao testar o pool de conexões

Recommended Posts

Olá amigos do fórum. Hoje trago a seguinte questão: 
 

Estou iniciando os estudos sobre conexões JAVA/Postgres. E me deparei com o seguinte problema: 
Quando tento testar a minha classe chamada, "PoolDeConexoes", ela me retorna os seguintes erros: 


"Exception in thread "main" java.lang.NullPointerException
    at BDAccess.PoolDeConexoes.<init>(PoolDeConexoes.java:13)
    at BDAccess.PoolDeConexoes.getInstance(PoolDeConexoes.java:21)
    at BDAccess.Main.main(Main.java:9)" 

 

Porém, a IDE não me exibe nenhum erro semântico durante a digitação, então, o mais provável é que se trata de um erro lógico. 
Abaixo estão as minhas classes, todas comentadas com o devido processo do pool de conexões, nos moldes solicitados pelo meu professor. 

 

package BDAccess;

import java.util.ArrayList;

public class PoolDeConexoes {

	private static ArrayList<Conexao> conexoes;
	private static PoolDeConexoes pool;
	
	private PoolDeConexoes() {
		Conexao cn1 = new Conexao();
		Conexao cn2 = new Conexao();
		conexoes.add(cn1);
		conexoes.add(cn2);
		
		getConexao();
	}
	
	public static PoolDeConexoes getInstance() {
		if(pool == null) {
			 pool = new PoolDeConexoes();
		}
		return pool ;
	}
	
	public Conexao getConexao() {
		if(conexoes == null) {
			Conexao c = new Conexao();
			conexoes.add(c);
			return c;
		}else {
			for(Conexao s:conexoes) {
				if(s.isLivre()) {
					return s;
				}
			}
		}
		return null;
		
	}
}

Acima, a classe denominada: PoolDeConexoes.java

 

package BDAccess;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;

public class Conexao {

	private Connection cnx; 
	private boolean livre; 
	
	public Conexao() {
		this.livre = true; 
		
		Parametros prm = Parametros.getInstance();
		
		String driverJDBC = prm.getParametros("driverJdbc");
		
		String urlBanco = prm.getParametros("urlBanco");
		
		String nomeUsuario = prm.getParametros("nomeUsuario");
		
		String senha = prm.getParametros("senha");
		
		try {
			
			Class.forName(driverJDBC);
			System.out.println("Driver importado!");
			
			cnx = DriverManager.getConnection(urlBanco, nomeUsuario, senha);
			
			System.out.println("Conexão estabelecida");
			
		}catch (Exception e) {
			System.out.println("Conexão não estabelecida!");
		}
	}
	

	public Connection getConnection() {
		return cnx; 
	}
	
	public void reserva() {
		if(livre) {
			livre = false;
		}else {
			System.out.println("Esta conexão já está em uso!");
		}
	}
	
	public void libera() {
		livre = true; 
	}
	public boolean isLivre() {
		return livre;
	}
	
}

Acima, a classe com o objeto Conexão. 

package BDAccess;

import java.io.IOException;
import java.util.ArrayList;

public class Main {

	public static void main(String[] args) throws IOException{
 		PoolDeConexoes plc = PoolDeConexoes.getInstance();
 		
 		System.out.println(plc.getConexao());
	}
}

E aqui o meu método principal. 

Agradeço desde já pelo auxílio de vocês sobre a minha questão. 

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por ILR master
      Pessoal, pergunta bem simples. Abaixo tenho o seguinte código:
       
      <script>
      function alerta()
      {
        if (window.confirm("Você realmente quer sair?")) {
          window.open("sair.html");
      }
      }
      </script>
       
      Funciona perfeitamente, só que está abrindo em outra janela e quero que abra na mesma janela.
       
      Alguém pode me ajudar?
    • Por ckcesar
      Eu tenho uma aplicação no zend com a versão 5.6 e com o postgresql 9.6. Agora eu precisei mudar a versão do meu postgresql para o 16.1, a parte de conexão do bd e consultas sqls funciona perfeitamente, o meu problema está para acessar os meus controllers. Eles não são encontrados em nenhuma rota, quero ver se alguém já passou por esse problema para me ajudar. Obrigado.
    • Por Jack Oliveira
      Ola pessoal boa tarde
      estou tentando fazer um texto se mover dentro do input porem nao esta dando resultado que preciso
       
      Este é o codigo 
      <script type="text/javascript"> $(document).ready(function () { var frases = [{ 'elemento': $('input[name=search_string]'), 'frases': ["O que você está procurando?", "Buscar por: Academia, Barbearia, Churrascaria, Decoração, Escola, Farmácia, Gráfica, Imobiliaria, Lanchonete, Mecânica, Odontologia, Pizzaria...", "Faça sua busca por segmentos aqui.", "São mais de 3mil empresas para serem exploradas."] }]; animaInput(frases); }); </script>  
    • Por Rengavitp
      Boa noite pessoal!
       
      Estou fazendo um projeto web com spring boot e é a primeira vez que lido com imagens. Minha idéia é salvar imagens em uma pasta e depois recuperar essa imagem e mostrar, mas o problema que estou enfrentando é o seguinte, seu eu envio para o src do projeto na pasta imagens, eu até consigo acessar as imagens, mas preciso atualizar o projeto na IDE (isso vai acontecer em produção?) eu tentei salvar em uma pasta fora do source do projeto mas ai não consigo acessar. como devo fazer? fiz várias pesquisas, mas nenhuma me ajudou.
       
      Desde já agradeço.
    • Por Rengavitp
      Bom dia pessoal!

      Estou com o seguinte problema, tenho uma aplicação que funciona perfeitamente rodando na minha IDE (Spring Tool Suite) mas ao gerar o arquivo war e subir a aplicação no tom cat ele não funciona, mas apenas erro 404, abri o war e todos os arquivo estão lá, já tem seguir tudo quando e tutorial com problemas semelhantes mas nenhum resolveu. Abaixo mais informações,.

      Versão do java na aplicacao 11
      Versão do jva no servidor 11
      Versão do tomcat no servidor 8.5.55
       
      minha classe principal
      package br.com.masterplastfitas; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; @SpringBootApplication public class MasterApplication extends SpringBootServletInitializer { public static void main(String[] args) { SpringApplication.run(MasterApplication.class, args); } @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { return builder.sources(MasterApplication.class); } } meu pom.xml
      <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.7.2</version> <relativePath /> <!-- lookup parent from repository --> </parent> <groupId>masterplast</groupId> <artifactId>Master</artifactId> <version>2.0</version> <packaging>war</packaging> <name>Master</name> <description>Aplicação web </description> <properties> <java.version>11</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <scope>runtime</scope> <optional>true</optional> </dependency> <dependency> <groupId>com.microsoft.sqlserver</groupId> <artifactId>mssql-jdbc</artifactId> <scope>runtime</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency> <dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> <dependency> <groupId>org.thymeleaf.extras</groupId> <artifactId>thymeleaf-extras-springsecurity5</artifactId> </dependency> <dependency> <groupId>org.mindrot</groupId> <artifactId>jbcrypt</artifactId> <version>0.4</version> </dependency> <dependency> <groupId>com.itextpdf</groupId> <artifactId>itextpdf</artifactId> <version>5.5.0</version> </dependency> </dependencies> <build> <plugins> <!-- <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> --> </plugins> </build> </project>  
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.