Ajuda JSF com anotações

Pessoal, preciso da ajuda de vcs. sou iniciante em desenvolvimento web com JSF e estou com o seguinte problema:
criei uma aplicação simples, apenas para testar a logica de funcionamento do JSF.
tenho um FORM com o botão submit, que ao ser clicado teria que chamar um determinado metodo e redireionar para a proxima pagina, mas isso não está acontecendo.
traz a seguinte mensagem de erro:

An Error Occurred:
javax.el.PropertyNotFoundException: /olamundo.xhtml @13,65 action="#{testeBean.salvar}": Target Unreachable, identifier 'testeBean' resolved to null
+ Stack Trace
+ Component Tree
+ Scoped Variables

vou colocar a classe, os xhtml, o xml e os jars q uso pra se alguem poder me ajudar:

vou colocar aqui os jars que coloquei no projeto:
commons-beanutils-1.8.3
commons-collections-3.2.1
commons-digester-2.1
commons-logging-1.1.1
jsf-api
jsf-impl
jstl-api-1.2
jstl-impl-1.2

vejam aí:

web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlnssi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
id="WebApp_ID" version="2.5">
<display-name>TesteJSF</display-name>

<servlet>
<display-name>FacesServlet</display-name>
<servlet-name>FacesServlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>FacesServlet</servlet-name>
<url-pattern>*.jsf</url-pattern>
</servlet-mapping>
<context-param>
<param-name>javax.faces.PROJECT_STAGE</param-name>
<param-value>Development</param-value>
</context-param>

<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>

</web-app>

classe TesteBean

package bean;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;


@ManagedBean(name="testeBean")
@RequestScoped
public class TesteBean {

private int i;

public int getI() {
return i;
}
public void setI(int i) {
this.i = i;
}

public String salvar(){
this.i =1;
if(this.i == 1){

return "sucesso-de-repasse";
}else{
return "erro-de-repasse";
}

}
}

pagina inicial

<?xml version="1.0" encoding="ISO-8859-1" ?>
<!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>Teste inicial</title>
</h:head>
<h:body>
<h:form>
<h:panelGrid>
<h:outputLabel value="Teste qualquer"/>
<h:commandButton action="#{testeBean.salvar}" value="executar"/>
</h:panelGrid>
</h:form>
</h:body>
</html>

pagina que deveria aparecer de nome sucesso-de-repasse.xhtml

<?xml version="1.0" encoding="ISO-8859-1" ?>
<!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>Teste inicial</title>
</h:head>
<h:body>
<h:outputText value="JSF Sucesso"/>
</h:body>
</html> 

Como você está acessando a URL?

Ps.: Utilize BBCode. Assim:

my code

Olá fabiozoroastro.

estou usando o tomcat 7 como servidor.
a pagina inicial é a index.xhtml

a URL que uso é a seguinte:

http://localhost:8080/TesteJSF/index.jsf

até aqui tudo vem, ela abre corretamente, mas qndo clico no botão pra executar o Bean ele dá o erro

[code]
[b]An Error Occurred:
javax.el.PropertyNotFoundException: /olamundo.xhtml @13,65 action="#{testeBean.salvar}": Target Unreachable, identifier ‘testeBean’ resolved to null

  • Stack Trace
  • Component Tree
  • Scoped Variables [/b][/code]

e vlw pela dica do CODE.

só uma dúvida, vc tem algum arquivo faces-config na sua aplicação?

Não, pois até onde eu sei, posso esta errado e pesso que me corrija se estiver, qndo uso anotações não precisa do arquivo faces-config.xml

tente sar o commandbutton assim


<h:commandButton actionListener="#{testeBean.salvar}" value="executar"/> 

Nunca testei mas acho que precisa sim…

Maviaelro,

Só pra eu ter certeza que não é problema de escopo/conversação, deixe o seu managed-bean com escopo de sessão, faça o teste e nos fale o resultado.

vc está correto, não precisa do faces-config. eu perguntei pq se vc tivesse esse arquivo poderia estar causando conflito, pq pelo erro que ta dando é o seu bean que está null, como se não estivesse sendo instanciado.
faça o seguinte: tente adicionar um construtor padrão ao seu bean, dessa maneira:

public TesteBean(){

}

Nunca testei mas acho que precisa sim…[/quote]

Que eu saiba as anotações são usada no jsf 2.0 quando vc a insere no beans não existe o pq inseri-la no faces-config.xml mas tenta retirar o (name=“testeBean”) e deixar somente @ManagedBean aconselho a usar o @ViewScoped.

vamos lá!

ja coloquei assim:

@ManagedBean
@ViewScoped
public class TesteBean {

Assim

@ManagedBean(name = "testeBean")
@SessionScoped
public class TesteBean {

e dá o mesmo erro.

An Error Occurred:
javax.el.PropertyNotFoundException: /index.xhtml @13,65 action="#{testeBean.salvar}": Target Unreachable, identifier 'testeBean' resolved to null
+ Stack Trace
+ Component Tree
+ Scoped Variables

ronnytds.
coloquei o construtor vazio como vc indicou e nada tbm

Pessoal, os jars estão corretos? são esses mesmos?

commons-beanutils-1.8.3
commons-collections-3.2.1
commons-digester-2.1
commons-logging-1.1.1
jsf-api
jsf-impl
jstl-api-1.2
jstl-impl-1.2

cara troca seu web.xml

coloca assim

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" 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">
    <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>/faces/*</url-pattern>
    </servlet-mapping>
    <session-config>
        <session-timeout>
            30
        </session-timeout>
    </session-config>
    <welcome-file-list>
        <welcome-file>faces/index.xhtml</welcome-file>
    </welcome-file-list>
</web-app>

pq aqui funcionou com esse web.xml e a classe / xhtml que vc passou

Polverini,
teria algum problema eu passar meu email e vc mandar o projeto funcionando pra mim?

eu axo q o pacote JSTL seu é pra versão JSF1.2 por isso o erro lá…pegue o JSTL pra versão 2.0

[quote=maviaelro1]Pessoal, os jars estão corretos? são esses mesmos?
jsf-api
jsf-impl
jstl-api-1.2
jstl-impl-1.2 [/quote]

no meu tem:
jsf-api
jsf-impl
jstl
standard

no pacote JSF2.0(criado por mim nas bibliotecas) e os demais JAR´s dentro da LIB…

passa seu email que eu mando

maviael.oliveira@gmail.com

enviado projeto, so dezipa e abrir pelo netbeans

Pessoal, seguinte, estou usando o eclipse, e tava observando o xml do colega, que ele usa
version=“3.0”
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">

usando o 3.0

uso como 2.5 e a tela index aparece normal, mas qndo coloco o 3.0 ele dá um erro 404