Fórum Sempre o mesmo erro 404 com JSF? #409178
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
Curtir tópico
+ 0Posts
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>
Gostei + 0
08/11/2011
Rafael Jesus
Gostei + 0
09/11/2011
Dyego Carmo
Gostei + 0
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..
Gostei + 0
10/11/2011
Rafael Jesus
Gostei + 0
10/11/2011
Robson Teixeira
att
robson
Gostei + 0
18/11/2011
Dyego Carmo
Conseguiu resolver o problema ?
Se sim , poderia fechar o chamado ?
Valeu !
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)