Struts 2 java.lang.NullPointerException [RESOLVIDO]

Senhores sei que é ridículo apresentar um erro de “java.lang.NullPointerException” e pedir ajuda!
Porem como é meu segundo dia com Struts estou tomando um banho!
Por isso preciso de ajuda!

Estou usando netbeans (Hibernate e Struts 2), to seguindo a apostila da caelum.
Está aparecendo o seguinte erro:

HTTP Status 500 -

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

java.lang.NullPointerException
	org.apache.struts2.impl.StrutsActionProxy.getErrorMessage(StrutsActionProxy.java:69)
	com.opensymphony.xwork2.DefaultActionProxy.prepare(DefaultActionProxy.java:185)
	org.apache.struts2.impl.StrutsActionProxy.prepare(StrutsActionProxy.java:63)
	org.apache.struts2.impl.StrutsActionProxyFactory.createActionProxy(StrutsActionProxyFactory.java:39)
	com.opensymphony.xwork2.DefaultActionProxyFactory.createActionProxy(DefaultActionProxyFactory.java:58)
	org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:501)
	org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:432)

note The full stack trace of the root cause is available in the Apache Tomcat/7.0.27 logs.

Segue os codigos:
Action

[code]package action;

import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.validator.annotations.RequiredStringValidator;
import com.opensymphony.xwork2.validator.annotations.Validations;
import dao.TarefaDAO;
import model.Tarefa;
import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.Result;

/* @author Mateus

  • Tutorial Apostila Caelum
    */
    @Validations(requiredStrings={
    @RequiredStringValidator(fieldName=“tarefa.descricao”, message=“Valor obrigatório”)
    })

public class AdicionaTarefasAction extends ActionSupport{

private Tarefa tarefa;

@Action(value = "adicionaTarefa", results = {
    @Result(name = "ok", location = "tarefa-adicionada.jsp"),
    @Result(name="input", location="/formulario-tarefas.jsp")
})
public String execute() {
    new TarefaDAO().salvar(tarefa);
    return "ok";
}

public Tarefa getTarefa() {
    return this.tarefa;
}

public void setTarefa(Tarefa tarefa) {
    this.tarefa = tarefa;
}

}
[/code]

web.xml

[code]<?xml version="1.0" encoding="UTF-8"?>

<filter>  
    <filter-name>struts2</filter-name>  
    <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>  

<filter-mapping>
    <filter-name>struts2</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

<session-config>
    <session-timeout>
        30
    </session-timeout>
</session-config>
<welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
</welcome-file-list>
[/code]

Quais jars você está utilizando? Pelo erro, parece que está faltando algo…

jar´s Struts (esses vieram junto com o plugin do struts2 para netbeans)

jar:nbinst://org.netbeans.modules.web.frameworks.struts2lib.v2_3_4/libs/xwork-core-2.3.4.jar!/ jar:nbinst://org.netbeans.modules.web.frameworks.struts2lib.v2_3_4/libs/struts2-core-2.3.4.jar!/ jar:nbinst://org.netbeans.modules.web.frameworks.struts2lib.v2_3_4/libs/struts2-convention-plugin-2.3.4.jar!/ jar:nbinst://org.netbeans.modules.web.frameworks.struts2lib.v2_3_4/libs/ognl-3.0.5.jar!/ jar:nbinst://org.netbeans.modules.web.frameworks.struts2lib.v2_3_4/libs/javassist-3.11.0.GA.jar!/ jar:nbinst://org.netbeans.modules.web.frameworks.struts2lib.v2_3_4/libs/freemarker-2.3.19.jar!/ jar:nbinst://org.netbeans.modules.web.frameworks.struts2lib.v2_3_4/libs/commons-lang3-3.1.jar!/ jar:nbinst://org.netbeans.modules.web.frameworks.struts2lib.v2_3_4/libs/commons-io-2.0.1.jar!/ jar:nbinst://org.netbeans.modules.web.frameworks.struts2lib.v2_3_4/libs/commons-fileupload-1.2.2.jar!/ jar:nbinst://org.netbeans.modules.web.frameworks.struts2lib.v2_3_4/libs/asm-tree-3.3.jar!/ jar:nbinst://org.netbeans.modules.web.frameworks.struts2lib.v2_3_4/libs/asm-commons-3.3.jar!/

Apenas um detalhe. Tive que tirar esse jar :

asm-3.3

Pois estava dando conflito com o Hibernate

Eu esqueceria o plugin e baixaria os jars que preciso.
Eu esqueceria o netbeans e usaria o eclipse.
Eu jamais removeria o asm…

O problema do asm-3.3 é que quando eu tiro esse jar funciona o hibernate e para o struts!

Agora quando eu importo esse jar o struts funciona normal e hibernate para!

Notou algo em comum entre o que você está tendo de problemas e o que o autor do outro tópico possuía?
Sim, vocês estão usando netbeans + plugin struts 2 + plugin hibernate.
Deixa disso, o netbeans está te prendendo. Liberte-se, baixe os seus jars, coloque na pasta lib e seja feliz.

Grande drsmachado obrigado pela ajuda.
Importei esses jar´s na mão e ta funcionando!

antlr-2.7.6.jar
c3p0-0.9.1.jar
cglib-2.2.jar
commons-collections-3.1.jar
dom4j-1.6.1.jar
hibernate-jpa-2.0-api-1.0.1.Final.jar
hibernate3.jar
infinispan-core-4.2.1.CR1.jar
javassist-3.12.0.GA.jar
jbosscache-core-3.2.1.GA.jar
jta-1.1.jar
oscache-2.1.jar
proxool-0.8.3.jar
slf4j-api-1.6.1.jar
swarmcache-1.0RC2.jar
xwork-core-2.3.4.jar
struts2-core-2.3.4.jar
struts2-convention-plugin-2.3.4.jar
ognl-3.0.5.jar
javassist-3.11.0.GA.jar
freemarker-2.3.19.jar
commons-lang3-3.1.jar
commons-io-2.0.1.jar
commons-fileupload-1.2.2.jar
asm-tree-3.3.jar
asm-commons-3.3.jar
asm-3.3.jar

Obrigado amigo pela ajuda!

Opa, que beleza!
Então, até usei teu exemplo ontem na aula, estou passando Struts 2 e hibernate em meu curso e citei o pequeno problema com as libs que o netbeans possui.
Na mão, vai sem problemas, usando os providos pelo netbeans, precisamos fazer gambiarras.

É isso aí, nada melhor que ter o controle.
Quando possível, tenta estudar um pouco de maven, você verá que é bem útil também.