@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/
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.
Você pode me ajudar?
Cara isso está me impedindo de programar...
Agradeço desde já!
Abç