>

Fórum

Fórum da RL System, voltado para analistas, programadores etc. Tudo sobre linguagem de programação e desenvolvimento Full Stack: Banco de Dados, Android, C#, Java, .NET, PHP, Node, Javascript, TypeScript, Front, HTML e muito mais.



Curso de JSP e Servlets Online (Java EE) - Não consigo acessar o banco:


Criei um banco no phpmyadmin do Xampp, chamado: "chamados". Porque no arquivo "mysql.exe" abre o monitor do MariaDB e não do MySQL. Código do arquivo NovoChamadoServlet.java.



import java.io.IOException;


import java.io.PrintWriter;

import java.sql.DriverManager;

import java.sql.SQLException;


import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;


//import com.mysql.jdbc.Connection;

//import com.mysql.jdbc.Statement;


/**

 * Servlet implementation class NovoChamadoServlet

 */

public class NovoChamadoServlet extends HttpServlet {

private static final long serialVersionUID = 1L;

private java.sql.Statement stm;

private String sQL;

       

    /**

     * @see HttpServlet#HttpServlet()

     */

/*

    public NovoChamadoServlet() {

        super();

        // TODO Auto-generated constructor stub

    }

*/

/**

* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)

*/

protected void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {

// TODO Auto-generated method stub

try {

PrintWriter out = res.getWriter();

out.println("<html>");

out.println("<head>");

out.println("<title>Novo Chamado</title>");

out.println("</head>");

out.println("<body>");

out.println("<h1>Preencha as Informaçoes do chamado</h1>");

out.println("</hr>"); 

out.println("<form method='POST'>");

out.println("Titulo: <br><input type='text' name='txtTitulo'");

out.println("<br>");

out.println("<br>");

out.println("Conteudo: <br><textarea name='txtConteudo' rows='10' cols='40'></textarea>");

 

out.println("<br>");

out.println("<input type='submit' value='Abrir Chamado'>");

out.println("</form>");

out.println("<br>");

out.println("<a href='http://localhost:8080/Chamados/ListarChamados'>Listar Chamados</a>");

out.println("<br>");

out.println("<a href='http://localhost:8080/Chamados/Logoff'>Sair</a>");

out.println("</body>");

out.println("</html>");

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

 

}


/**

* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)

*/

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

// TODO Auto-generated method stub

PrintWriter out = response.getWriter();

String titulo = request.getParameter("txtTitulo");

String conteudo = request.getParameter("txtConteudo");

if(titulo.trim().length()<4) {

out.println("Preencha nome do Titulo");

}else if(conteudo.trim().length()<4) {

out.println("Preencha o campo Conteudo");

}else {

try {

Class.forName("com.mysql.jdbc.Driver");

sQL = "INSERT INTO chamados (titulo, conteudo) VALUES(";

sQL += "'"+titulo+"', '"+conteudo+"')";

try {

java.sql.Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/chamados", "root", "");

stm = conn.createStatement();

stm.execute(sQL);

stm.close();

conn.close();

}catch(SQLException e) {

e.printStackTrace();

out.println("Problema na conexao com o banco");

}

}catch(ClassNotFoundException ex) {

out.println("Problema ao carregar o driver de conexao");

}

}

}

ERRO:

The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.

at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)

at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)

at java.lang.reflect.Constructor.newInstance(Unknown Source)

at com.mysql.jdbc.Util.handleNewInstance(Util.java:425)

at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:990)

at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:342)

at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2188)

at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2221)

at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2016)

at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:776)

at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:47)

at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)

at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)

at java.lang.reflect.Constructor.newInstance(Unknown Source)

at com.mysql.jdbc.Util.handleNewInstance(Util.java:425)

at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:386)

at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:330)

at java.sql.DriverManager.getConnection(Unknown Source)

at java.sql.DriverManager.getConnection(Unknown Source)

at NovoChamadoServlet.doPost(NovoChamadoServlet.java:88)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:650)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)

at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:110)

at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:498)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169)

at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)

at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:1025)

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)

at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:445)

at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1115)

at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:637)

at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:318)

at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)

at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)

at java.lang.Thread.run(Unknown Source)

Caused by: java.net.SocketException: Permission denied: connect

at java.net.DualStackPlainSocketImpl.connect0(Native Method)

at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source)

at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source)

at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)

at java.net.AbstractPlainSocketImpl.connect(Unknown Source)

at java.net.PlainSocketImpl.connect(Unknown Source)

at java.net.SocksSocketImpl.connect(Unknown Source)

at java.net.Socket.connect(Unknown Source)

at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:211)

at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:301)

Preciso de ajuda para fazer essa conexão funcionar para continuar o curso.

Obrigado.



2 Respostas


Tem que rodar o Xampp porquê o banco está nele.




Testa esse código: Obs.:Modifique o nome da tabela e dos campos, que eu coloquei diferente.



import java.io.IOException;

import java.io.PrintWriter;

import java.sql.Connection;

import java.sql.Date;

import java.sql.DriverManager;

import java.sql.PreparedStatement;

import java.sql.Statement;

import java.text.SimpleDateFormat;



import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;


/**

 * Servlet implementation class NovoChamadoServlet

 */

public class NovoChamadoServlet extends HttpServlet {

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

try {

PrintWriter out = response.getWriter();

out.println(\"<html>\");

out.println(\"<head>\");

out.println(\"<title>Novo Chamado</title>\");

out.println(\"</head>\");

out.println(\"<body>\");

out.println(\"<h1>Preencha as informações do Chamado</h1>\");

out.println(\"<hr/>\");

out.println(\"<form method=\'POST\'>\");

out.println(\"Título:<br> <input type=\'text\' name=\'txtTitulo\'>\");

out.println(\"<br>\");

out.println(\"Conteúdo:<br> <textarea name=\'txtConteudo\' rows=\'10\' cols=\'40\'></textarea>\");

out.println(\"<br>\");

out.println(\"<input type=\'submit\' value=\'Abrir Camado\'>\");

out.println(\"</form>\");

out.println(\"<br>\");

out.println(\"<a href=\'http://localhost:8080/Chamados/ListarChamado\'>Listar Chamados<a/>\");

out.println(\"<br>\");

out.println(\"<a href=\'http://localhost:8080/Chamados/Logoff\'>Sair<a/>\");

out.println(\"</body>\");

out.println(\"</html>\");

} catch (IOException e) {

}

}


protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

PrintWriter out = response.getWriter();

String titulo = request.getParameter(\"txtTitulo\");

String conteudo = request.getParameter(\"txtConteudo\");

if(titulo.trim().length() < 4) {

out.println(\"Preencha o título\");

} else if(conteudo.trim().length() < 4) {

out.println(\"Preencha o conteúdo\");

} else {

try {

//Class.forName(\"com.mysql.cj.jdbc.Driver\");

    Class.forName(\"com.mysql.jdbc.Driver\");//Caminho do driver de conexão

    String SQL = \"INSERT INTO tbl_chamado(titulo, conteudo, data) VALUES(?, ?, ?)\";

   

   try {    

Connection conn = DriverManager.getConnection(\"jdbc:mysql://localhost:3306/chamados\", \"root\", \"\");

PreparedStatement pstm = conn.prepareStatement(SQL);

Date dataSQL = new Date(new java.util.Date().getTime());

//SimpleDateFormat dt = new SimpleDateFormat(\"yyy-MM-dd\");//\"yyy-MM-dd\" padrão da data no mysql

//dt.format(data);

pstm.setString(1, titulo);

pstm.setString(2, conteudo);

pstm.setDate(3, dataSQL);

pstm.execute();

pstm.close();

conn.close();

response.sendRedirect(\"http://localhost:8080/Chamados/ListarChamado\");

} catch (Exception e) {

out.println(\"Problema no banco de dados! \" + e.getMessage());

}

   

} catch (ClassNotFoundException e) {

out.println(\"Problema ao carregar o driver de conexão! \" + e.getMessage());

}

}

}

}