Ver Mensaje Individual
  #1 (permalink)  
Antiguo 10/09/2009, 02:13
Pelirr
 
Fecha de Ingreso: diciembre-2008
Mensajes: 233
Antigüedad: 16 años
Puntos: 1
Problema con metodo execute y @Result struts2

Hola, estoy utilizando struts2 y me he estancado en un Action, utilizo un método execute para obtener una lista de objetos y que luego la página jsp me lo muestre, pero me da un error, parece que no encuentra la página jsp, y por lo que he visto por internet la anotación @Result parece correcta. El código del action es el siguiente:

package es.aena.sgma.controlresiduos.web.struts.action;

import java.util.Collection;

import org.apache.struts2.convention.annotation.ParentPac kage;
import org.apache.struts2.convention.annotation.Result;
import org.apache.struts2.interceptor.validation.SkipVali dation;

import com.opensymphony.xwork2.ActionSupport;

import es.aena.sgma.controlresiduos.data.vo.TipoResiduoVo ;
import es.aena.sgma.controlresiduos.service.TipoResiduoSe rvice;


@ParentPackage("default")
@Result(name = "SUCCESS", location="/jsp/controlresiduos/listaTiposResiduos.jsp")
public class ListarTiposResiduosAction extends ActionSupport{

private static final long serialVersionUID = 3127836877224957489L;

private Collection<TipoResiduoVo> tiposresiduos;
private TipoResiduoService tiporesiduoService;

public Collection<TipoResiduoVo> getTiposresiduos() {
return tiposresiduos;
}

public void setTiposresiduos(Collection<TipoResiduoVo> tiposresiduos) {
this.tiposresiduos = tiposresiduos;
}

public TipoResiduoService getTiporesiduoService() {
return tiporesiduoService;
}

public void setTiporesiduoService(TipoResiduoService tiporesiduoService) {
this.tiporesiduoService = tiporesiduoService;
}

@Override
@SkipValidation
public String execute() throws Exception {
this.setTiposresiduos(this.getTiporesiduoService() .obtenerTodosLosTiposResiduo());
return SUCCESS;
}

}


las trazas de error que salen en el servidor weblogic son:

<10-sep-2009 10H04' CEST> <Error> <HTTP> <BEA-101020> <[weblogic.servlet.interna
l.WebAppServletContext@20a5a96 - appName: 'sgma', name: '/sgma', context-path: '
/sgma'] Servlet failed with Exception
java.lang.NullPointerException
at weblogic.servlet.internal.ServletResponseImpl.send Error(ServletRespon
seImpl.java:600)
at org.apache.struts2.dispatcher.Dispatcher.sendError (Dispatcher.java:72
5)
at org.apache.struts2.dispatcher.Dispatcher.serviceAc tion(Dispatcher.jav
a:485)
at org.apache.struts2.dispatcher.FilterDispatcher.doF ilter(FilterDispatc
her.java:395)
at weblogic.servlet.internal.FilterChainImpl.doFilter (FilterChainImpl.ja
va:42)
Truncated. see log file for complete stacktrace
>

y lo que me muestra el navegador es lo siguiente:

java.lang.NullPointerException
at es.aena.sgma.controlresiduos.web.struts.action.Lis tarTiposResiduosAction.execute(ListarTiposResiduos Action.java:43)
at jrockit.reflect.VirtualNativeMethodInvoker.invoke( Ljava.lang.Object;[Ljava.lang.Object;)Ljava.lang.Object;(Unknown Source)
at java.lang.reflect.Method.invoke(Ljava.lang.Object;[Ljava.lang.Object;I)Ljava.lang.Object;(Unknown Source)
at com.opensymphony.xwork2.DefaultActionInvocation.in vokeAction(DefaultActionInvocation.java:440)
at com.opensymphony.xwork2.DefaultActionInvocation.in vokeActionOnly(DefaultActionInvocation.java:279)
at com.opensymphony.xwork2.DefaultActionInvocation.in voke(DefaultActionInvocation.java:242)
at com.opensymphony.xwork2.interceptor.DefaultWorkflo wInterceptor.doIntercept(DefaultWorkflowIntercepto r.java:163)
at com.opensymphony.xwork2.interceptor.MethodFilterIn terceptor.intercept(MethodFilterInterceptor.java:8 7)
at com.opensymphony.xwork2.DefaultActionInvocation.in voke(DefaultActionInvocation.java:236)
at org.apache.struts2.interceptor.validation.Annotati onValidationInterceptor.doIntercept(AnnotationVali dationInterceptor.java:50)
at com.opensymphony.xwork2.interceptor.MethodFilterIn terceptor.intercept(MethodFilterInterceptor.java:8 7)
at com.opensymphony.xwork2.DefaultActionInvocation.in voke(DefaultActionInvocation.java:236)
at com.opensymphony.xwork2.interceptor.ConversionErro rInterceptor.intercept(ConversionErrorInterceptor. java:122)
at com.opensymphony.xwork2.DefaultActionInvocation.in voke(DefaultActionInvocation.java:236)
at com.opensymphony.xwork2.interceptor.ParametersInte rceptor.doIntercept(ParametersInterceptor.java:195 )
at com.opensymphony.xwork2.interceptor.MethodFilterIn terceptor.intercept(MethodFilterInterceptor.java:8 7)
at com.opensymphony.xwork2.DefaultActionInvocation.in voke(DefaultActionInvocation.java:236)
at com.opensymphony.xwork2.interceptor.ParametersInte rceptor.doIntercept(ParametersInterceptor.java:195 )
at com.opensymphony.xwork2.interceptor.MethodFilterIn terceptor.intercept(MethodFilterInterceptor.java:8 7)
at com.opensymphony.xwork2.DefaultActionInvocation.in voke(DefaultActionInvocation.java:236)
at com.opensymphony.xwork2.interceptor.StaticParamete rsInterceptor.intercept(StaticParametersIntercepto r.java:148)
at com.opensymphony.xwork2.DefaultActionInvocation.in voke(DefaultActionInvocation.java:236)
at org.apache.struts2.interceptor.CheckboxInterceptor .intercept(CheckboxInterceptor.java:93)
at com.opensymphony.xwork2.DefaultActionInvocation.in voke(DefaultActionInvocation.java:236)
at org.apache.struts2.interceptor.FileUploadIntercept or.intercept(FileUploadInterceptor.java:235)
at com.opensymphony.xwork2.DefaultActionInvocation.in voke(DefaultActionInvocation.java:236)
at com.opensymphony.xwork2.interceptor.ModelDrivenInt erceptor.intercept(ModelDrivenInterceptor.java:89)
at com.opensymphony.xwork2.DefaultActionInvocation.in voke(DefaultActionInvocation.java:236)
at com.opensymphony.xwork2.interceptor.ScopedModelDri venInterceptor.intercept(ScopedModelDrivenIntercep tor.java:128)
at com.opensymphony.xwork2.DefaultActionInvocation.in voke(DefaultActionInvocation.java:236)

el error "java.lang.NullPointerException" significa que apunta a un sitio vacío ¿no es cierto? Pero en el execute le digo que devuelva SUCCESS, y con el @Result le digo que me lo envíe a la página jsp "listaTiposResiduos.jsp". ¿Podéis decirme que estoy haciendo mal? Muchas gracias, un saludo