Ainda não tem acesso? Estude com a gente! Matricule-se
Ainda não tem acesso? Estude com a gente! Matricule-se

O projeto funciona normal, mas quando gera o target não funciona

estou fazendo o projeto no IntelliJ, com o Maven, e consegui efetuar todas as importações inclusive a do JSTL, no pom.xml e no plugin do Maven, javax.servlet. Porém, quando ele vai executar server, gera uma pasta target com espelho de todos os arquivos, e as paginas que precisam do JSTL não funcionam.

inseri ele aqui: github

em: gerencia\src\main\webapp\listaEmpresas.jsp as importações funcionam

e em: gerencia\target\gerencia\listaEmpresas.jsp as importações não funcionam

5 respostas

Olá, Dara! Tudo bem contigo?

Desculpe a demora em dar um retorno!

Tentei acessar seu link e até mesmo busquei nos seus repositórios e não encontrei o projeto.

Queria dar uma olhada na estrutura para ver o que está ocorrendo!

Fico no aguardo!

vou deixa-lo público agora mesmo para que o encontre, acabei privando de la pra cá.

https://github.com/darakimberlys/aluragerenciador

Perfeito, Dara!

Baixei seu projeto e vou dar uma olhada nele =D

Se quiser torná-lo privado, fique a vontade pois já baixei ;-)

Te darei um retorno, sem falta!

Obrigada, fico no aguardo.

Oi Dara, tudo bem? Já faz muito tempo que você abriu esse tópico, então é provável que você nem esteja mais (talvez) esperando a resposta.

Eu também estou fazendo a carreira Java, e essa semana eu terminei o Servlets parte 1. Peguei o seu projeto para dar uma olhada e fazer funcionar. A diferença é que eu utilizei o Eclipse para isso, mas você pode importar de volta no IntelliJ.

Vamos lá, o que eu fiz:

Logo de cara eu apaguei todas as bibliotecas e removi a pasta libs. Retirei o .jar do JSTL das pastas onde você tinha colocado também. Ah, e removi as dependências (como Junit).

Eu não queria fazer o deploy para o Tomcat, então decidi o usar o Jetty como plugin e adicionar o contexto /gerenciador nele; Então se você ver no pom.xml vai estar lá as configurações.

Nessa parte eu fui resolver os problemas do JSTL + JSP. Parecia que você estava usando as taglibs da versão 1.0, e não as da 1.2.

<!--Tava assim:-->
<%-- <%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %> --%>
<!-- Ai mudei para: -->
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

Logo após, eu também reparei que na hora de fazer o for das empresas, você estava chamando o atributo com 'E' maiúsculo:

<ul>
    <c:forEach items="${empresas}" var="empresa">
     <li>${empresa.nome}</li> <%-- esse "empresa.nome" estava com E maiúsculo" --%>
    </c:forEach>
</ul>

Outra coisa também, eu adicionei o campo de adicionar a data no seu formNovaEmpresa.html

<label for="data">Data de abertura:</label>
<input type="text" id="data" name="data" required placeholder="dd/MM/yyyy">

Nesse próximo passo, eu coloquei de volta as dependências no pom.xml: Repara que o JSTL e o Servlet estão como provided, pois acredito eu que Jetty adiciona essas livrarias pra gente na hora em que se utilizamos ele com o 'mvn jetty:run' Eu até deixei como compile uma vez, mas vinha um monte de Warning na hora de compilar dizendo que as bibliotecas eram ambíguas (?) Com o tomcat isso não ocorre, então se você for usar ele deixa como 'compile'.

    <dependencies>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
            <version>1.2</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>4.0.1</version>
            <scope>provided</scope>
        </dependency>        
    </dependencies>

E, por último e talvez de mais importância: Dependendo do Archetype que você usa, o maven utiliza o compilador do Java 7 (1.7) ou até do 1.5. Eu deixei comentado a parte de configuração em que o Java 1.7 é chamado e utilizei um plugin para utilizar o Java 11, versão da JDK que eu tenho na minha máquina local:

                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>3.8.0</version>
                    <configuration>
                        <release>11</release>
                        <target>11</target>
                    </configuration>
                </plugin>

Pelo o que eu vi no Stackoverflow, esse tipo de configuração é suportada a partir do Java 9. Se você tiver o Java 8, é um pouco diferente.

Por fim, é isso. Eu consegui cadastrar uma empresa e listar elas como o instrutor mostra. Coloquei o projeto aqui, depois eu tiro quando você baixar. Foi um exercício legal para treinar um pouco. Então, obrigado por ter postado essa dúvida aqui. No geral, sobre o que ocorreram com as bibliotecas, eu não sei o que dizer em específico. Acho que os problemas eram esses listados acima mesmo. Gerei o package e fiz o deploy tanto no Jetty quanto no Tomcat

(Se depois de importar ele der algum Warning que o JSP 'if' e 'c' não foram encontrados, só tira e poe a linha <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> no listaEmpresas.jsp e dê CTRL+S pra salvar. E então atualize o projeto maven com CTRL+3 se for necessário, pelo menos no Eclipse foi assim)