Solucionado (ver solução)
Solucionado
(ver solução)
8
respostas

Problemas com Servlet. WEB

CDI

Prezados, Estou usando Tomcat 8.0.44 e o meu projeto se chama System (system). Ao "startar" o tomcat, quero que ele abra, como de costume, a minha aplicação. Automaticamente. Porém, não ocorre. E para que eu consiga abrir a aplicação, o caminho é localhost:8080/system/faces/index.xhtml. O correto, seria localhost:8080/system/index.xhtml ou localhost:8080/system/. Sem esses "faces" no meio. Já procurei no meu projeto e não sei o que eu fiz de errado :(

O que eu fiz de errado?

Grato, Bruno Y. Tiyoda.

8 respostas

Olá Bruno,

Posta aqui o seu arquivo web.xml pra gente dar uma olhada.

Olá, Jeferson.

<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
    version="3.1">

    <display-name>system</display-name>

    <welcome-file-list>
        <welcome-file>index.xhtml</welcome-file>
    </welcome-file-list>

    <servlet>
        <servlet-name>FacesServlet</servlet-name>
        <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>FacesServlet</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
 <!--ou *.xhtml -->


    <!-- Icon -->
    <context-param>
        <param-name>primefaces.FONT_AWESOME</param-name>
        <param-value>true</param-value>
    </context-param>



</web-app>

Estou usando Maven. Caminho do arquivo web.xml: src/main/wepapp/WEB-INF/web.xml

Olá Bruno,

O web.xml tá parecendo correto, como está organizada a estrutura das pastas do seu projeto? Por exemplo, onde você colocou o seu index.xhtml?

Olá, Jeferson. O meu index.xhtml se encontra dentro de src/main/wepapp/. Seguindo igual ao curso de CDI.

Obrigado.

Tava aqui fazendo uns testes com o WildFly e utilizei o mesmo arquivo web.xml que você passou e aqui funcionou. Você já tentou mudar o mapeamento da servlet para *.xhtml? Em teoria o mapeamento que está no seu xml deveria funcionar sem a necessidade do /faces...

Você sabe dizer qual a versão do Mojarra que você está utilizando?

Na verdade, estou até pensando em "tirar e colocar" o tomcat de novo. Vai que, né... :v Já tentei sim com o *.xhtml. Foi uma das primeiras coisas que me veio a cabeça kk

Segue o pom.xml

<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 http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>br.com.way</groupId>
    <artifactId>system</artifactId>
    <packaging>war</packaging>
    <version>0.0.1-SNAPSHOT</version>
    <name>system Maven Webapp</name>
    <url>http://maven.apache.org</url>
    <dependencies>

        <!-- JUnit -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>

        <!-- Hibernate -->
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-core</artifactId>
            <version>5.2.10.Final</version>
        </dependency>

        <!-- JBoss -->
        <dependency>
            <groupId>org.jboss.spec.javax.transaction</groupId>
            <artifactId>jboss-transaction-api_1.1_spec</artifactId>
            <version>1.0.1.Final</version>
        </dependency>

        <!-- MySQL Connector J -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.42</version>
        </dependency>

        <!-- JSF -->
        <dependency>
            <groupId>com.sun.faces</groupId>
            <artifactId>jsf-api</artifactId>
            <version>2.2.14</version>
        </dependency>

        <!-- Servlet -->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>3.1.0</version>
            <scope>provided</scope>
        </dependency>

        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
            <version>1.2</version>
        </dependency>

        <!-- JSF -->
        <dependency>
            <groupId>org.glassfish</groupId>
            <artifactId>javax.faces</artifactId>
            <version>2.2.14</version>
        </dependency>

        <!-- EJB -->
        <dependency>
            <groupId>javax.ejb</groupId>
            <artifactId>ejb-api</artifactId>
            <version>3.0</version>
            <scope>provided</scope>
        </dependency>

        <!-- CDI -->
        <dependency>
            <groupId>org.jboss.weld.servlet</groupId>
            <artifactId>weld-servlet</artifactId>
            <version>2.4.4.Final</version>
        </dependency>

        <!-- Primefaces -->
        <dependency>
            <groupId>org.primefaces</groupId>
            <artifactId>primefaces</artifactId>
            <version>6.1</version>
        </dependency>

        <!-- Bootstrap -->
        <dependency>
            <groupId>org.webjars</groupId>
            <artifactId>bootstrap</artifactId>
            <version>3.3.7-1</version>
        </dependency>

        <!-- Font Awesome -->
        <dependency>
            <groupId>org.webjars</groupId>
            <artifactId>font-awesome</artifactId>
            <version>4.7.0</version>
        </dependency>


    </dependencies>

    <repositories>
        <repository>
            <id>prime-repo</id>
            <name>PrimeFaces Maven Repository</name>
            <url>http://repository.primefaces.org</url>
            <layout>default</layout>
        </repository>
    </repositories>

    <build>
        <finalName>system</finalName>

        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
        </plugins>
    </build>

</project>

Segundo os logs, Mojarra 2.2.14 Algumas coisas ai eu tive que colocar algumas coisas ai seguindo dicas do stackoverflow.

solução!

Tá bem estranho mesmo isso Bruno. Eu tentaria criar um outro projeto só com um index.xhtml e o mesmo mapeamento pra ver se nesse outro projeto funciona.

No meu caso aqui, o /faces/ só é necessário quando eu omito o mapeamento já que esse mapeamento é o default. No seu caso parece que ele tá sempre ignorando o mapeamento e usando esse default.

Tudo bem então, Jeferson. Vou procurar fazer isso então. Se der certo eu posto aqui. E se eu encontrar uma outra solução... Também.

Obrigado pela força!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software