Ir ao conteúdo
  • Cadastre-se

Erro de compilação


Ir à solução Resolvido por psykotico,

Posts recomendados

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á.

Link para o comentário
Compartilhar em outros sites

  • Solução

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
Link para o comentário
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ç

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades 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

×
×
  • Criar novo...