6
respostas

Erro de library

Estou com problemas para imprimir a mensagem usando o endereço /oi, no console apareceu a seguinte mensagem para mim

INFO: The Apache Tomcat Native library which allows using OpenSSL was not found on the java.library.path: [C:\Program Files\Java\jdk-11.0.12\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:\Program Files\Common Files\Oracle\Java\javapath;C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\ProgramData\Oracle\Java\javapath;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0;C:\Windows\System32\OpenSSH;C:\Program Files\PuTTY;C:\Program Files\Git\cmd;C:\Program Files\dotnet;C:\Program Files\MySQL\MySQL Shell 8.0\bin;C:\Users\ianff\AppData\Local\Microsoft\WindowsApps;C:\Users\ianff\AppData\Local\Programs\Microsoft VS Code\bin;C:\Users\ianff\AppData\Local\GitHubDesktop\bin;C:\Users\ianff.dotnet\tools;.]

6 respostas

Olá, Ian!

Vou tentar te ajudar. Por favor, gostaria de obter algumas informações.

1- Funcionou a parte do bemvindo.html?

2- Você modificou algo nas variáveis de ambiente referente a JDK? Se sim, descreva o caminho de instalação da JDK até a pasta Bin.

3- Efetue o Clean no Tomcat. Vá até a aba Servers, pause o Tomcat. Clique com o botão direito no Tomcat e selecione "Clean" e "Clean Tomcat Work Directory...". Inicie o tomcat e tente novamente.

4- Caso o item 3 não resolva, apague o Server do Tomcat na aba Server. Apague a pasta do Tomcat do disco, baixe novamente o Tomcat v9.0, adicione o servidor e atribua o projeto "gerenciador" ao Tomcat 9.

5- Se for possível, poste o seu código.

Segue abaixo o código realizado em aula.

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * @author miguel
 *
 */

@WebServlet(urlPatterns = "/oi")
public class OiMundo extends HttpServlet {

    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        PrintWriter out = resp.getWriter();
        out.println("<html>");
        out.println("<body>");
        out.println("<h3>Olá Mundo! Acesso realizado pelo Oi...</h3>");
        out.println("</body>");
        out.println("</html>");
        System.out.println("O servlet Oi foi chamdo");
    }

    /**
     * 
     */
    public OiMundo() {
        // TODO Auto-generated constructor stub
    }

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub

    }

}

Opa, Obrigado por tentar me ajudar Miguel.

1-Sim, sem nenhum problema.

2- Modifiquei sim, veio por padrão como se estivesse no Java 17, ai alterei para a versão do meu jdk(java 11) no project facets. O caminho de instalação é C:\Program Files\Java\jdk -11.0.12\bin

3 e 4- Tentei fazer os 2 passos, porem fui ver o console e o erro aparentemente mudou, agora é esse java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/gerenciador]]

5 - Segue o código :

import javax.servlet.http.HttpServlet;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;






@WebServlet(urlPatterns = "oii")

public class OiMundoServlet extends HttpServlet {

    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws IOException {

        PrintWriter out = resp.getWriter();
        out.println("<html>");
        out.println("<body>");
        out.println("oi mundo, parabens vc escreveu o primeiro servlets. Caralho arrombado bora porra");
        out.println("</body>");
        out.println("</html>");
    }

}

O serviço do Tomcat "levantou"?

Notei no seu código que a atribuição de dois "i" para o "oi" no urlPatterns: @WebServlet(urlPatterns = "oii") a chamada tem de ser igual (com dois "i"s): http://localhost:8080/gerenciador/oii

Estou com a JDK 17 + Tomcat 9. Consideraria baixar novamente o ZIP do Tomcat 9, descompactaria em outro diretório e criaria novamente o servidor para garantir que pegou de uma instalação "limpa". Segue o link do Tomcat 9 (64bits): https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.56/bin/apache-tomcat-9.0.56-windows-x64.zip

Opa, desculpe a demora para responder.

Quando você perguntou se "levantou" era se iniciou?, se sim antes de o server entrar no ar já da erro. Inclusive fiz a alteração que você sugeriu do TomCat porém o erro continua o mesmo

SEVERE: A child container failed during start java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/gerenciador]]

Se quiser, posso mandar o erro todo aqui caso te ajude

Por favor, envie o erro completo e um print do web.xml

  1. Modifique a linha do seu código, de @WebServlet(urlPatterns = "oii") para @WebServlet(urlPatterns = "/oi"). ATENÇÃO para a barra "/"
  2. Start o Tomcat
  3. Através do navegador Google Chrome, acesse o endereço: http://localhost:8080/gerenciador/oi

Acredito que vai funcionar.