Ir ao conteúdo
  • Cadastre-se
Gabriel Hipólito de Souza

RESOLVIDO Erro de compilação

Recommended Posts

Bom dia, 

 

Pessoal estou com uma dúvida sobre minha aplicação não estar compilando. Já mexi no servers meu Apache tomcat 8 está normal, mas uma coisa que acontece toda vez que eu clico no Run ele da esse erro:

erro status 404.jpg

Ele só puxa o nome da pasta que é 13-JSF-JPA(exercício em sala de aula), porém ao rodar uma página xhtml no eclipse aqui em casa da esse erro, já até levei para professor ver rs mas ele não achou o erro. Por exemplo essa página:

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
    xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
    xmlns:h="http://xmlns.jcp.org/jsf/html"
    xmlns:f="http://xmlns.jcp.org/jsf/core">
<ui:composition template="_template.xhtml">
    <ui:define name="title">Cadastro de PetShop</ui:define>
    <ui:define name="content">
        <div class="container">
            <h2>Cadastro de PetShop</h2>
            <h:messages />
            <h:form>
                <div class="form-group">
                    <h:outputLabel value="Nome" for="nome" />
                    <h:inputText id="nome" styleClass="form-control" required="true"
                        validator="#{petShopMB.validarNome}"
                        requiredMessage="Nome é obrigatório" value="#{petShopMB.pet.nome}" />
                    <h:message for="nome" />
                </div>
                <div class="form-group">
                    <h:outputLabel value="Endereço" for="end" />
                    <h:inputText id="end" styleClass="form-control" required="true"
                        value="#{petShopMB.pet.endereco}">
                        <f:validator validatorId="endereco" />
                    </h:inputText>
                    <h:message for="end" />
                </div>
                <div class="form-group">
                    <h:outputLabel value="Data" for="data" />
                    <h:inputText id="data" styleClass="form-control"
                        value="#{petShopMB.pet.dataAbertura.time}">
                        <f:convertDateTime timeZone="GMT-3" pattern="dd/MM/yyyy" />
                    </h:inputText>
                </div>
                <div class="form-group">
                    <h:selectBooleanCheckbox id="estac"
                        value="#{petShopMB.pet.estacionamento}" />
                    <h:outputLabel value=" Possui estacionamento" for="estac" />
                </div>
                <div class="form-group">
                    <h:commandButton value="Cadastrar"
                        actionListener="#{petShopMB.cadastrar}"
                        styleClass="btn btn-primary" />
                </div>
            </h:form>
        </div>
    </ui:define>
</ui:composition>
</html>



Em vez de aparecer na url http://localhost:8080/13-JSF-JPA/faces/cadastro-petshop.xhtml ele só aparece até aqui http://localhost:8080/13-JSF-JPA/ e mesmo colocado manualmente faces/cadastro-petshop.xhtml ele não roda. 
Vocês podem dar um help? 

Agradeço desde já.

Editado por Gabriel Hipólito de Souza

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bem ... depende de como você instalou o Tomcat ... você baixou automaticamente pelo eclipse, ou está utilizando um outro servidor instalado e apontando o eclipse para essa instância???

Se for a segunda, é mais fácil ... Mande o sistema exportar o war do projeto ... (ou na linha de comando, entre na pasta do projeto e digite "jar cfv .war ." ... Depois coloque dentro da pasta "webapps" do tomcat ... ao reiniciar o tomcat, ele deve descompactar os arquivos do war e criar uma pasta com todas as class e views lá ...

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@psykotico então eu cheguei a fazer isso mas não deu certo :/ 
Fui no projeto Export >War File>Destination>(pasta do tomcat8)>webapps e depois parei o server no eclipse e restartei e não foi, apareceu o mesmo erro. 
Vou tentar explicar melhor o caso e com outro exercício 

Toda vez que eu tento compilar uma página xhtml na primeira vez que clico em Run o server da o start normal ele roda e sobe a página, mas da o mesmo erro HTTP Status - 404 basta eu clicar em stop server e  rodar novamente a página que ela não sobe porque o server aparece com a mensagem Tomcat v8.0 Server at localhost [Stopped, Synchronized] e ai pra rodar tenho que clicar em start e depois fazer todo processo Run e compilar.

 

A página captura.xhtml...

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml"
	xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
	xmlns:h="http://xmlns.jcp.org/jsf/html"
	xmlns:f="http://xmlns.jcp.org/jsf/core"
	xmlns:p="http://primefaces.org/ui">

<ui:composition template="_template.xhtml">
	<ui:define name="content">

		<h1>Captura de Pokemon</h1>

		<p:panel header="Captura" toggleable="true">

			<h:form>
				<p:messages id="msg" />
				<p:growl autoUpdate="true" />
				<h:inputHidden value="#{pokemonBean.pokemon.codigo}"/>
				<h:panelGrid columns="2">

					<p:outputLabel value="Nome" for="nome" />
					<p:inputText id="nome" value="#{pokemonBean.pokemon.nome}" />

					<p:outputLabel value="Data" for="data" />
					<p:calendar id="data" pattern="dd/MM/yyyy"
						value="#{pokemonBean.pokemon.dataCaptura.time}" />

					<p:outputLabel value="Nível" for="nivel" />
					<p:rating id="nivel" stars="5" value="#{pokemonBean.pokemon.nivel}" />

					<p:outputLabel value="CP" for="cp" />
					<p:inputMask mask="9999" id="cp" value="#{pokemonBean.pokemon.cp}" />

					<p:outputLabel value="Lendario" for="lenda" />
					<p:selectBooleanCheckbox id="lenda"
						value="#{pokemonBean.pokemon.lendario}" />

					<p:commandButton value="#{pokemonBean.pokemon.codigo==0?'Capturar':'Atualizar'}" update="msg"
						actionListener="#{pokemonBean.capturar}" />

				</h:panelGrid>

			</h:form>
		</p:panel>

	</ui:define>
</ui:composition>
</html>


A classe PokemonBean...

package br.com.fiap.bean;

import java.util.Calendar;

import javax.annotation.PostConstruct;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.context.FacesContext;
import javax.persistence.EntityManager;

import br.com.fiap.dao.PokemonDAO;
import br.com.fiap.dao.impl.PokemonDAOImpl;
import br.com.fiap.entity.Pokemon;
import br.com.fiap.exception.DBException;
import br.com.fiap.singleton.EntityManagerFactorySingleton;

@ManagedBean
@RequestScoped
public class PokemonBean {

	private Pokemon pokemon;
	private PokemonDAO dao;
	
	//Método de inicialização
	@PostConstruct
	private void init(){
		pokemon = new Pokemon();
		pokemon.setDataCaptura(Calendar.getInstance());
		
		EntityManager em = 
				EntityManagerFactorySingleton
				.getInstance();
		dao = new PokemonDAOImpl(em);
	}

	public void capturar(){
		FacesMessage msg;
		try {
			//para verificar se já existe cadastro
			if(pokemon.getCodigo() == 0){
			dao.inserir(pokemon);
			msg = new FacesMessage("Pokemon adicionado "
					+ "à Pokedex");
			}else{
				dao.alterar(pokemon);
				msg = new FacesMessage("Pokemon atualizado");
			}
		} catch (DBException e) {
			e.printStackTrace();
			msg = new FacesMessage("Pokebola falhou");
		}
		FacesContext
			.getCurrentInstance().addMessage(null, msg);
	}
	
	public Pokemon getPokemon() {
		return pokemon;
	}

	public void setPokemon(Pokemon pokemon) {
		this.pokemon = pokemon;
	}
	
}

A persistence.xml

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
	<persistence-unit name="CLIENTE_ORACLE" transaction-type="RESOURCE_LOCAL">	
		<provider>org.hibernate.ejb.HibernatePersistence</provider>		
		<properties>
			<property name="hibernate.show_sql" value="true"/>
			<!-- create : apaga e cria as tabelas
				validate : valida as classes com as tabelas
				update : tenta atualizar as tabelas
			 -->
			<property name="hibernate.hbm2ddl.auto" value="update"/>
			<property name="hibernate.dialect" value="org.hibernate.dialect.Oracle10gDialect"/>
			<property name="javax.persistence.jdbc.driver" value="oracle.jdbc.OracleDriver"/>
			<property name="javax.persistence.jdbc.user" value=""/>
			<property name="javax.persistence.jdbc.password" value=""/>
			<property name="javax.persistence.jdbc.url" value="jdbc:oracle:thin:@ 192.168.60.15:1521:ORCL"/>
		</properties>	
	</persistence-unit>


</persistence>

E a web.xml
 

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">
	<display-name>01-Primefaces</display-name>
	<servlet>
		<servlet-name>Faces Servlet</servlet-name>
		<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
		<load-on-startup>1</load-on-startup>
		<enabled>true</enabled>
		<async-supported>false</async-supported>
	</servlet>
	<servlet-mapping>
		<servlet-name>Faces Servlet</servlet-name>
		<url-pattern>
		/faces/*</url-pattern>
	</servlet-mapping>
	<!-- alterar o tema do primefaces-->
	<context-param>	
	<param-name>primefaces.THEME</param-name>
	<param-value>midnight</param-value>
	</context-param>
</web-app>


Ai subiu a página aparece o erro e a url fica assim incomleta http://localhost:8081/01-Primefaces/

erro1.png.7c6f9a01c6087cc5353abfe86880217d.png

 

Mas era pra rodar com a url completa e não roda e tenho que por na mão o final http://localhost:8081/01-Primefaces/faces/captura.xhtml, daí atualizo a página e da esse erro.erro2.png


Você pode me ajudar?
Cara isso está me impedindo de programar...

Agradeço desde já!
Abç

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×