Foros del Web » Programación para mayores de 30 ;) » Java »

Inappropriate OGNL expression: null

Estas en el tema de Inappropriate OGNL expression: null en el foro de Java en Foros del Web. Hola, tengo un problema, y es que al pasar de una jsp a otra a través de un action obtengo las siguientes trazas: Código: 2011-02-07 ...
  #1 (permalink)  
Antiguo 07/02/2011, 05:56
 
Fecha de Ingreso: diciembre-2008
Mensajes: 233
Antigüedad: 15 años, 4 meses
Puntos: 1
Inappropriate OGNL expression: null

Hola, tengo un problema, y es que al pasar de una jsp a otra a través de un action obtengo las siguientes trazas:

Código:
2011-02-07 12:43:10,751 WARN  (CommonsLogger.java                      :49  ) - Error setting expres
sion 'null' with value '[Ljava.lang.String;@f4257f'
ognl.InappropriateExpressionException: Inappropriate OGNL expression: null
        at ognl.SimpleNode.setValueBody(SimpleNode.java:312)
        at ognl.SimpleNode.evaluateSetValueBody(SimpleNode.java:220)
        at ognl.SimpleNode.setValue(SimpleNode.java:301)
        at ognl.Ognl.setValue(Ognl.java:737)
        at com.opensymphony.xwork2.ognl.OgnlUtil.setValue(OgnlUtil.java:198)
        at com.opensymphony.xwork2.ognl.OgnlValueStack.setValue(OgnlValueStack.java:161)
        at com.opensymphony.xwork2.ognl.OgnlValueStack.setValue(OgnlValueStack.java:149)
        at com.opensymphony.xwork2.interceptor.ParametersInterceptor.setParameters(ParametersInterce
ptor.java:276)
        at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersIntercept
or.java:187)
        at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterce
ptor.java:87)
        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
        at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersIntercept
or.java:195)
        at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterce
ptor.java:87)
        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
        at com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParameter
sInterceptor.java:179)
        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
        at org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.ja
va:75)
        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
        at org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:94)

        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
        at org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java
:235)
        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
        at com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenIntercept
or.java:89)
        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
        at com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDri
venInterceptor.java:130)
        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
        at org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingIntercep
tor.java:267)
        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
        at com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.jav
a:126)
        at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
        at com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.jav
a:138)
        at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterce
ptor.java:87)
La aplicación va correctamente, no hay errores de javascript, pero este warning tiene pinta de error. He intentado mirar por internet pero no me aclaro. Parece ser que hay una variable que llega nula? Un método set de una variable? Si alguien puede echarme un cable se lo agradecería. Muchas gracias, un saludo
  #2 (permalink)  
Antiguo 09/02/2011, 02:06
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 15 años, 8 meses
Puntos: 188
Respuesta: Inappropriate OGNL expression: null

¿Estás usando displayTags en struts 2?

1º Prueba a cambiar el devmode de struts a false a ver si lo solucionas (struts.properties)
  #3 (permalink)  
Antiguo 09/02/2011, 02:18
 
Fecha de Ingreso: diciembre-2008
Mensajes: 233
Antigüedad: 15 años, 4 meses
Puntos: 1
Respuesta: Inappropriate OGNL expression: null

Hola Fuzzylog, no, no las estoy usando. No cabe todo el código de la jsp, no te lo puedo enviar.

He estado pensando, ¿puede ser una variable que llegue a la jsp desde el action, y llegue nula y eso dé el error? Un <s:property> o algo parecido. ¿O no tiene nada que ver? Muchas gracias por tu interés, un saludo
  #4 (permalink)  
Antiguo 09/02/2011, 02:19
 
Fecha de Ingreso: diciembre-2008
Mensajes: 233
Antigüedad: 15 años, 4 meses
Puntos: 1
Respuesta: Inappropriate OGNL expression: null

Perdona, se me ha olvidado comentarte, no tengo un struts.properties, tengo un struts.xml, donde viene:

Código:
<constant name="struts.devMode" value="false" />
Un saludo
  #5 (permalink)  
Antiguo 09/02/2011, 02:38
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 15 años, 8 meses
Puntos: 188
Respuesta: Inappropriate OGNL expression: null

Échale un vistazo a la solución que se propone aquí y mira si es posible adecuarlo para tu action:

http://forums.oracle.com/forums/thre...sageID=5892607
  #6 (permalink)  
Antiguo 09/02/2011, 03:14
 
Fecha de Ingreso: diciembre-2008
Mensajes: 233
Antigüedad: 15 años, 4 meses
Puntos: 1
Respuesta: Inappropriate OGNL expression: null

Lo he intentado pero tengo un problema. Este es mi struts.xml antiguo:

Código:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>
	
	<!-- Pendiente de habilitar el acceso a Spring -->
	<constant name="struts.objectFactory" value="spring"/>
    <constant name="struts.devMode" value="false" />
    <constant name="struts.custom.i18n.resources" value="comun-keys,objetosperdidos-keys" />
    <constant name="struts.locale" value="es"/>
    
    <constant name="struts.convention.action.mapAllMatches" value="true"/>
    <constant name="struts.convention.package.locators" value=""/> 
	<constant name="struts.convention.action.packages" 
    		  value="es.aena.objetosperdidos.init.action,es.aena.objetosperdidos.web.struts.action, es.aena.objetosperdidos.soporte.web.struts.action, es.aena.objetosperdidos.adminavanzada.web.struts.action, es.aena.objetosperdidos.adminbasica.web.struts.action, es.aena.objetosperdidos.caracteristicascomplementarias.web.struts.action, es.aena.objetosperdidos.informes.web.struts.action"/>   		  
    <constant name="struts.convention.action.disableJarScanning" value="false"/>
    <constant name="struts.convention.action.includeJars" 
    		  value="((.*?)_wl_cls_gen(.*?)jar(!/)?)|((.*?)comun-web(.*?)jar(!/)?)"/>
   	<constant name="struts.ui.theme" value="simple"/>
   	<constant name="struts.multipart.maxSize" value="10000000"/>
    
	<!-- Las dos lineas siguientes son para actualizar con la version de struts 2.1.8 -->
    <constant name="struts.enable.DynamicMethodInvocation" value="true" />
    <constant name="struts.convention.action.fileProtocols" value="zip"/>
    
    <!-- Add packages here -->
    
    <package name="default" namespace="/" extends="struts-default">
        	
    	<result-types>
  			<result-type name="tiles" class="org.apache.struts2.views.tiles.TilesResult" default="false" /> 
  		</result-types>
  		
   
    	<interceptors> 
    	 
            <!-- interceptor name="volverAtrasInterceptor"  
                class="es.aena.objetosperdidos.pda.web.struts.interceptor.VolverAtrasInterceptor" /--> 
            
            <interceptor name="permisosDeUsuarioInterceptor" 
                         class="es.aena.objetosperdidos.init.interceptor.PermisosDeUsuario"/>
   
            <interceptor-stack name="volverAtrasstack" >  
               <!-- <interceptor-ref name="defaultStack" />-->  
               	<interceptor-ref name="exception"/>
                <interceptor-ref name="alias"/>
                <interceptor-ref name="servletConfig"/>
                <interceptor-ref name="i18n"/>
                <interceptor-ref name="prepare"/>
                <interceptor-ref name="chain"/>
                <interceptor-ref name="debugging"/>
                <interceptor-ref name="scopedModelDriven"/>
                <interceptor-ref name="modelDriven"/>
                <interceptor-ref name="fileUpload">
                	<param name="maximumSize">12000000</param>
                </interceptor-ref>
                <interceptor-ref name="checkbox"/>
                <interceptor-ref name="multiselect"/>
                <interceptor-ref name="staticParams"/>
                <interceptor-ref name="actionMappingParams"/>
                <interceptor-ref name="params">
                  <param name="excludeParams">dojo\..*,^struts\..*</param>
                </interceptor-ref>
                <interceptor-ref name="conversionError"/>
                <interceptor-ref name="validation">
                    <param name="excludeMethods">input,back,cancel,browse</param>
                </interceptor-ref>
                <interceptor-ref name="workflow">
                    <param name="excludeMethods">input,back,cancel,browse</param>
                </interceptor-ref>                  
                <interceptor-ref name="permisosDeUsuarioInterceptor"/> 
                <!-- interceptor-ref name="volverAtrasInterceptor" /-->  
            </interceptor-stack>  
        </interceptors>
         
        <default-interceptor-ref name="volverAtrasstack" />
        
        <global-results>
        	<result name="adminUsuariosNoDisponibleOOPP">/jsp/objetosperdidos/pantallaDeUsuariosSinAdministracion.jsp</result>
    	</global-results>
    	
    </package>
    
</struts>

y éste es el archivo con los cambios:

Código:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>
	
	<!-- Pendiente de habilitar el acceso a Spring -->
	<constant name="struts.objectFactory" value="spring"/>
    <constant name="struts.devMode" value="false" />
    <constant name="struts.custom.i18n.resources" value="comun-keys,objetosperdidos-keys" />
    <constant name="struts.locale" value="es"/>
    
    <constant name="struts.convention.action.mapAllMatches" value="true"/>
    <constant name="struts.convention.package.locators" value=""/> 
	<constant name="struts.convention.action.packages" 
    		  value="es.aena.objetosperdidos.init.action,es.aena.objetosperdidos.web.struts.action, es.aena.objetosperdidos.soporte.web.struts.action, es.aena.objetosperdidos.adminavanzada.web.struts.action, es.aena.objetosperdidos.adminbasica.web.struts.action, es.aena.objetosperdidos.caracteristicascomplementarias.web.struts.action, es.aena.objetosperdidos.informes.web.struts.action"/>   		  
    <constant name="struts.convention.action.disableJarScanning" value="false"/>
    <constant name="struts.convention.action.includeJars" 
    		  value="((.*?)_wl_cls_gen(.*?)jar(!/)?)|((.*?)comun-web(.*?)jar(!/)?)"/>
   	<constant name="struts.ui.theme" value="simple"/>
   	<constant name="struts.multipart.maxSize" value="10000000"/>
    
	<!-- Las dos lineas siguientes son para actualizar con la version de struts 2.1.8 -->
    <constant name="struts.enable.DynamicMethodInvocation" value="true" />
    <constant name="struts.convention.action.fileProtocols" value="zip"/>
    <constant name="struts.enable.SlashesInActionNames" value="true"/>
	<constant name="struts.mapper.alwaysSelectFullNamespace" value="false"/>
    
    <!-- Add packages here -->
    
    <package name="default" namespace="/" extends="struts-default">
    
    	<action name="**">
    	
    	<result-types>
  			<result-type name="tiles" class="org.apache.struts2.views.tiles.TilesResult" default="false" /> 
  		</result-types>
  		
   
    	<interceptors> 
    	 
            <!-- interceptor name="volverAtrasInterceptor"  
                class="es.aena.objetosperdidos.pda.web.struts.interceptor.VolverAtrasInterceptor" /--> 
            
            <interceptor name="permisosDeUsuarioInterceptor" 
                         class="es.aena.objetosperdidos.init.interceptor.PermisosDeUsuario"/>
   
            <interceptor-stack name="volverAtrasstack" >  
               <!-- <interceptor-ref name="defaultStack" />-->  
               	<interceptor-ref name="exception"/>
                <interceptor-ref name="alias"/>
                <interceptor-ref name="servletConfig"/>
                <interceptor-ref name="i18n"/>
                <interceptor-ref name="prepare"/>
                <interceptor-ref name="chain"/>
                <interceptor-ref name="debugging"/>
                <interceptor-ref name="scopedModelDriven"/>
                <interceptor-ref name="modelDriven"/>
                <interceptor-ref name="fileUpload">
                	<param name="maximumSize">12000000</param>
                </interceptor-ref>
                <interceptor-ref name="checkbox"/>
                <interceptor-ref name="multiselect"/>
                <interceptor-ref name="staticParams"/>
                <interceptor-ref name="actionMappingParams"/>
                <interceptor-ref name="params">
                  <param name="excludeParams">dojo\..*,^struts\..*</param>
                </interceptor-ref>
                <interceptor-ref name="conversionError"/>
                <interceptor-ref name="validation">
                    <param name="excludeMethods">input,back,cancel,browse</param>
                </interceptor-ref>
                <interceptor-ref name="workflow">
                    <param name="excludeMethods">input,back,cancel,browse</param>
                </interceptor-ref>                  
                <interceptor-ref name="permisosDeUsuarioInterceptor"/> 
                <!-- interceptor-ref name="volverAtrasInterceptor" /-->  
            </interceptor-stack>  
        </interceptors>
         
        <default-interceptor-ref name="volverAtrasstack" />
        
        <global-results>
        	<result name="adminUsuariosNoDisponibleOOPP">/jsp/objetosperdidos/pantallaDeUsuariosSinAdministracion.jsp</result>
    	</global-results>
    	
        </action>  
    </package>
    
</struts>
Pero en <action name="**"> me marca un error, "The content of element type "action" must match "(param|result|interceptor-ref|exception-mapping)*", que no comprendo.

¿Me falta por poner alguna etiqueta? De ésta manera me compila pero no despliega.
Muchas gracias, un saludo

Etiquetas: expression, null
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:19.