Sempre o mesmo erro 404 com JSF?
08/11/2011
0
Estou louco pra aprender JSF, mas está osso configurar o web.xml, já segui a apostila da AlgaWorks e nada, tutorias na net, tenho até um bom livro Programação Java para Web, mas não saio to puto início..
Postarei o código aqui testem a vejam se vcs conseguem:
Obs: Postei o código todo para que fique de aprendizado pra galera!
eclipse indigo 3.7
mysql query-browser
tomcat 7.0
hibernate
majorra 2.1.2
jstl 1.1.2
standard 1.1.2
primefaces 2.2.1
hibernate
TABELA
CREATE TABLE `livro` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `autor` varchar(255) DEFAULT NULL, `avaliacao` int(11) NOT NULL, `editora` varchar(255) DEFAULT NULL, `isbn` varchar(255) DEFAULT NULL, `paginas` int(11) NOT NULL, `titulo` varchar(255) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=latin1;
Model
@Entity public class Livro implements Serializable { private static final long serialVersionUID = 1L; @Id @GeneratedValue private long id; private String titulo; private String autor; private int paginas; private String editora; private String isbn; private int avaliacao; public Livro () { } public Livro(long id, String titulo, String autor, int paginas, String editora, String isbn, int avaliacao) { this.id = id; this.titulo = titulo; this.autor = autor; this.paginas = paginas; this.editora = editora; this.isbn = isbn; this.avaliacao = avaliacao; } // gets and sets omitidos
Interface LivroDao
public interface LivroDao { public void save (Livro livro); public Livro getLivro (long id); public List<Livro> list(); public void remove (Livro livro); public void update (Livro livro); }
LivroDaoImpl
public class LivroDaoImp implements LivroDao { @Override public void save(Livro livro) { Session session = HibernateUtil.getSessionFactory().openSession(); Transaction t = session.beginTransaction(); session.save(livro); t.commit(); } @Override public Livro getLivro(long id) { Session session = HibernateUtil.getSessionFactory().openSession(); return (Livro) session.load(Livro.class, id); } @Override public List<Livro> list() { Session session = HibernateUtil.getSessionFactory().openSession(); Transaction t = session.beginTransaction(); List lista = session.createQuery(from livro).list(); t.commit(); return lista; } @Override public void remove(Livro livro) { Session session = HibernateUtil.getSessionFactory().openSession(); Transaction t = session.beginTransaction(); session.delete(livro); t.commit(); } @Override public void update(Livro livro) { Session session = HibernateUtil.getSessionFactory().openSession(); Transaction t = session.beginTransaction(); session.update(livro); t.commit(); } }
HibernateUtil
public class HibernateUtil { private static SessionFactory sessionFactory; private HibernateUtil () { } public static SessionFactory getSessionFactory () { if (sessionFactory == null) { try { AnnotationConfiguration ac = new AnnotationConfiguration(); ac.addAnnotatedClass(Livro.class); sessionFactory = ac.configure().buildSessionFactory(); } catch (Throwable e) { System.err.println(Initial Sessionfactory creation failed + e); throw new ExceptionInInitializerError(e); } return sessionFactory; } else { return sessionFactory; } } }
Controller
@ManagedBean @SessionScoped public class LivroController { private Livro livro; private DataModel listaLivros; public DataModel getListarLivros () { List<Livro> lista = new LivroDaoImp().list(); listaLivros = new ListDataModel(lista); return listaLivros; } public Livro getLivro() { return livro; } public void setLivro(Livro livro) { this.livro = livro; } public String prepararAdicionarLivro() { livro = new Livro(); return gerenciarLivro; } public String prepararAlterarLivro() { livro = (Livro) listaLivros.getRowData(); return gerenciarLivro; } public String excluirLivro() { Livro livroTemp = (Livro) listaLivros.getRowData(); LivroDao dao = new LivroDaoImp(); dao.remove(livroTemp); return index; } public String adicionarLivro() { LivroDao dao = new LivroDaoImp(); dao.save(livro); return index; } public String alteraLivro() { LivroDao dao = new LivroDaoImp(); dao.update(livro); return index; } }
View
index.html
<?xml version=1.0 encoding=UTF-8 ?> <!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:h=http://java.sun.com/jsf/html xmlns:f=http://java.sun.com/jsf/core> <h:head> <title>Gerenciador de Livros</title> </h:head> <h:body> <h1>Gerenciador de Livros</h1> <h:dataTable var=livro value=#{livroController.listarLivros}> <h:column> <f:facet name=header> <h:outputText value=Título/> </f:facet> <h:outputText value=#{livro.titulo} /> </h:column> <h:column> <f:facet name=header> <h:outputText value=Autor/> </f:facet> <h:outputText value=#{livro.autor}/> </h:column> <h:column> <f:facet name=header> <h:outputText value=Páginas/> </f:facet> <h:outputText value=#{livro.paginas}/> </h:column> <h:column> <f:facet name=header> <h:outputText value=Editora/> </f:facet> <h:outputText value=#{livro.editora}/> </h:column> <h:column> <f:facet name=header> <h:outputText value=Isbn/> </f:facet> <h:outputText value=#{livro.isbn}/> </h:column> <h:column> <f:facet name=header> <h:outputText value=Avaliação/> </f:facet> <h:outputText value=#{livro.avaliacao}/> </h:column> <h:column> <f:facet name=header> <h:outputText value=Alterar/> </f:facet> <h:form> <h:commandButton action=#{livroController.prepararAlterarLivro} value=Alterar/> </h:form> </h:column> <h:column> <f:facet name=header> <h:outputText value=Excluir/> </f:facet> <h:form> <h:commandButton action=#{livroController.excluirLivro} value=Excluir/> </h:form> </h:column> </h:dataTable> <br/> <h:form> <h:commandLink value=Novo Livro action=#{livroController.prepararAdicionarLivro}/> </h:form> </h:body> </html>
gerenciadorLivro.xhtml
<?xml version=1.0 encoding=UTF-8 ?> <!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:h=http://java.sun.com/jsf/html xmlns:f=http://java.sun.com/jsf/core> <h:head> <title>Gerenciador de Livros</title> </h:head> <h:body> <h1>Gerenciador de Livros</h1> <h:form> Título <h:inputText value=#{livroController.livro.titulo}/><br/> Autor: <h:inputText value=#{livroController.livro.autor}/><br/> Paginas: <h:inputText value=#{livroController.livro.paginas}/><br/> Editora: <h:inputText value=#{livroController.livro.editora}/><br/> ISBN: <h:inputText value=#{livroController.livro.isbn}/><br/> Avaliação: <h:selectOneMenu value=#{livroController.livro.avaliacao}> <f:selectItem itemLabel=1 itemValue=1/> <f:selectItem itemLabel=2 itemValue=2/> <f:selectItem itemLabel=3 itemValue=3/> <f:selectItem itemLabel=4 itemValue=4/> <f:selectItem itemLabel=5 itemValue=5/> </h:selectOneMenu><br/> <h:commandButton action=#{livroController.adicionarLivro} value=Inserir Novo Livro/> <h:commandButton action=#{livroController.alterarLivro} value=Alterar Livro/> <br/> <h:commandLink action=index value=Voltar/> </h:form> </h:body> </html>
Web.xml
<?xml version=1.0 encoding=UTF-8?> <web-app version=2.5 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_2_5.xsd> <context-param> <param-name>javax.faces.PROJECT_STAGE</param-name> <param-value>Development</param-value> </context-param> <servlet> <servlet-name>Faces Servlet</servlet-name> <servlet-class>javax.faces.webapp.FacesServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>Faces Servlet</servlet-name> <url-pattern>*.jsf</url-pattern> </servlet-mapping> <session-config> <session-timeout> 30 </session-timeout> </session-config> <welcome-file-list> <welcome-file>index.html</welcome-file> </welcome-file-list> </web-app>
Rafael Jesus
Posts
08/11/2011
Rafael Jesus
estou louco pra aprender jsf, mas está osso configurar o web.xml, já segui a apostila da algaworks e nada, tutorias na net, tenho até um bom livro programação java para web, mas não saio to puto início..
postarei o código aqui testem a vejam se vcs conseguem:
obs: postei o código todo para que fique de aprendizado pra galera!
eclipse indigo 3.7
mysql query-browser
tomcat 7.0
hibernate
majorra 2.1.2
jstl 1.1.2
standard 1.1.2
primefaces 2.2.1
hibernate
tabela
create table `livro` (
`id` bigint(20) not null auto_increment,
`autor` varchar(255) default null,
`avaliacao` int(11) not null,
`editora` varchar(255) default null,
`isbn` varchar(255) default null,
`paginas` int(11) not null,
`titulo` varchar(255) default null,
primary key (`id`)
) engine=innodb auto_increment=4 default charset=latin1;
model
@entity
public class livro implements serializable {
private static final long serialversionuid = 1l;
@id
@generatedvalue
private long id;
private string titulo;
private string autor;
private int paginas;
private string editora;
private string isbn;
private int avaliacao;
public livro () { }
public livro(long id, string titulo, string autor, int paginas,
string editora, string isbn, int avaliacao) {
this.id = id;
this.titulo = titulo;
this.autor = autor;
this.paginas = paginas;
this.editora = editora;
this.isbn = isbn;
this.avaliacao = avaliacao;
}
// gets and sets omitidos
interface livrodao
public interface livrodao {
public void save (livro livro);
public livro getlivro (long id);
public list<livro> list();
public void remove (livro livro);
public void update (livro livro);
}
livrodaoimpl
public class livrodaoimp implements livrodao {
@override
public void save(livro livro) {
session session = hibernateutil.getsessionfactory().opensession();
transaction t = session.begintransaction();
session.save(livro);
t.commit();
}
@override
public livro getlivro(long id) {
session session = hibernateutil.getsessionfactory().opensession();
return (livro) session.load(livro.class, id);
}
@override
public list<livro> list() {
session session = hibernateutil.getsessionfactory().opensession();
transaction t = session.begintransaction();
list lista = session.createquery(from livro).list();
t.commit();
return lista;
}
@override
public void remove(livro livro) {
session session = hibernateutil.getsessionfactory().opensession();
transaction t = session.begintransaction();
session.delete(livro);
t.commit();
}
@override
public void update(livro livro) {
session session = hibernateutil.getsessionfactory().opensession();
transaction t = session.begintransaction();
session.update(livro);
t.commit();
}
}
hibernateutil
public class hibernateutil {
private static sessionfactory sessionfactory;
private hibernateutil () { }
public static sessionfactory getsessionfactory () {
if (sessionfactory == null) {
try {
annotationconfiguration ac = new annotationconfiguration();
ac.addannotatedclass(livro.class);
sessionfactory = ac.configure().buildsessionfactory();
} catch (throwable e) {
system.err.println(initial sessionfactory creation failed + e);
throw new exceptionininitializererror(e);
}
return sessionfactory;
} else {
return sessionfactory;
}
}
}
controller
@managedbean
@sessionscoped
public class livrocontroller {
private livro livro;
private datamodel listalivros;
public datamodel getlistarlivros () {
list<livro> lista = new livrodaoimp().list();
listalivros = new listdatamodel(lista);
return listalivros;
}
public livro getlivro() {
return livro;
}
public void setlivro(livro livro) {
this.livro = livro;
}
public string prepararadicionarlivro() {
livro = new livro();
return gerenciarlivro;
}
public string prepararalterarlivro() {
livro = (livro) listalivros.getrowdata();
return gerenciarlivro;
}
public string excluirlivro() {
livro livrotemp = (livro) listalivros.getrowdata();
livrodao dao = new livrodaoimp();
dao.remove(livrotemp);
return index;
}
public string adicionarlivro() {
livrodao dao = new livrodaoimp();
dao.save(livro);
return index;
}
public string alteralivro() {
livrodao dao = new livrodaoimp();
dao.update(livro);
return index;
}
}
aqui é index.xhtml
view
index.html
<?xml version=1.0 encoding=utf-8 ?>
<!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:h=http://java.sun.com/jsf/html
xmlns:f=http://java.sun.com/jsf/core>
<h:head>
<title>gerenciador de livros</title>
</h:head>
<h:body>
<h1>gerenciador de livros</h1>
<h:datatable var=livro value=#{livrocontroller.listarlivros}>
<h:column>
<f:facet name=header>
<h:outputtext value=título/>
</f:facet>
<h:outputtext value=#{livro.titulo} />
</h:column>
<h:column>
<f:facet name=header>
<h:outputtext value=autor/>
</f:facet>
<h:outputtext value=#{livro.autor}/>
</h:column>
<h:column>
<f:facet name=header>
<h:outputtext value=páginas/>
</f:facet>
<h:outputtext value=#{livro.paginas}/>
</h:column>
<h:column>
<f:facet name=header>
<h:outputtext value=editora/>
</f:facet>
<h:outputtext value=#{livro.editora}/>
</h:column>
<h:column>
<f:facet name=header>
<h:outputtext value=isbn/>
</f:facet>
<h:outputtext value=#{livro.isbn}/>
</h:column>
<h:column>
<f:facet name=header>
<h:outputtext value=avaliação/>
</f:facet>
<h:outputtext value=#{livro.avaliacao}/>
</h:column>
<h:column>
<f:facet name=header>
<h:outputtext value=alterar/>
</f:facet>
<h:form>
<h:commandbutton action=#{livrocontroller.prepararalterarlivro} value=alterar/>
</h:form>
</h:column>
<h:column>
<f:facet name=header>
<h:outputtext value=excluir/>
</f:facet>
<h:form>
<h:commandbutton action=#{livrocontroller.excluirlivro} value=excluir/>
</h:form>
</h:column>
</h:datatable>
<br/>
<h:form>
<h:commandlink value=novo livro action=#{livrocontroller.prepararadicionarlivro}/>
</h:form>
</h:body>
</html>
gerenciadorlivro.xhtml
<?xml version=1.0 encoding=utf-8 ?>
<!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:h=http://java.sun.com/jsf/html
xmlns:f=http://java.sun.com/jsf/core>
<h:head>
<title>gerenciador de livros</title>
</h:head>
<h:body>
<h1>gerenciador de livros</h1>
<h:form>
título <h:inputtext value=#{livrocontroller.livro.titulo}/><br/>
autor: <h:inputtext value=#{livrocontroller.livro.autor}/><br/>
paginas: <h:inputtext value=#{livrocontroller.livro.paginas}/><br/>
editora: <h:inputtext value=#{livrocontroller.livro.editora}/><br/>
isbn: <h:inputtext value=#{livrocontroller.livro.isbn}/><br/>
avaliação: <h:selectonemenu value=#{livrocontroller.livro.avaliacao}>
<f:selectitem itemlabel=1 itemvalue=1/>
<f:selectitem itemlabel=2 itemvalue=2/>
<f:selectitem itemlabel=3 itemvalue=3/>
<f:selectitem itemlabel=4 itemvalue=4/>
<f:selectitem itemlabel=5 itemvalue=5/>
</h:selectonemenu><br/>
<h:commandbutton action=#{livrocontroller.adicionarlivro} value=inserir novo livro/>
<h:commandbutton action=#{livrocontroller.alterarlivro} value=alterar livro/>
<br/>
<h:commandlink action=index value=voltar/>
</h:form>
</h:body>
</html>
web.xml
<?xml version=1.0 encoding=utf-8?>
<web-app version=2.5 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_2_5.xsd>
<context-param>
<param-name>javax.faces.project_stage</param-name>
<param-value>development</param-value>
</context-param>
<servlet>
<servlet-name>faces servlet</servlet-name>
<servlet-class>javax.faces.webapp.facesservlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>faces servlet</servlet-name>
<url-pattern>*.jsf</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>
30
</session-timeout>
</session-config>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
</web-app>
08/11/2011
Rafael Jesus
09/11/2011
Dyego Carmo
09/11/2011
Rafael Jesus
Cara não aparece nada no console, absolutamente nada, o pior é que já faz um tempo que eu tenho programar com jsf e não estou conseguindo, por esse bendito erro...vc tem alguma sugestão?
Eu já estou começando a importar projeto pronto pelo Maven, pra ver o que rola, eu vi que o Web.xml do projeto que importei pelo Maven, está muito parecido com esse ai...
Sem querer mudar o assunto do tópico, man eu estava vendo um video introdução seu sobre maven, mas não sei como faço para subir a app no servidor, como eu faço???
Obrigado..
10/11/2011
Rafael Jesus
10/11/2011
Robson Teixeira
att
robson
18/11/2011
Dyego Carmo
Conseguiu resolver o problema ?
Se sim , poderia fechar o chamado ?
Valeu !
Clique aqui para fazer login e interagir na Comunidade :)