Pregunta

Estoy intentando añadir un elemento mime-mapping al web.xml.

Mi mejor arma blanca actual es:

def doWithWebDescriptor = { xml ->
    xml + {
        'mime-mapping' {
            'extension'("htc")
            'mime-type'("text/x-component")
        }
    }
}

Sé que el código se ejecuta como el anterior en realidad emite una Web.xml válido. El siguiente parece ser más lógico, pero en realidad no tiene ningún efecto:

def doWithWebDescriptor = { xml ->
    xml.'mime-mapping' + {
            'extension'("htc")
            'mime-type'("text/x-component")
        }
}

editar: Estoy usando Grails 1.0.3

¿Fue útil?

Solución

Trate

def doWithWebDescriptor = { xml ->
    xml << {
        'mime-mapping' {
            'extension'("htc")
            'mime-type'("text/x-component")
        }
    }
}

(nótese el leftShift en lugar de la plus).

Por otra parte, si usted quiere asegurarse de que el nuevo elemento se inserta en una posición específica dentro del XML, se puede obtener el elemento hijo, después de lo cual usted quiere que su elemento que se inserta, y añadir la suya con el operador plus. Por ejemplo, utilizo el siguiente código para agregar un nuevo servlet-mapping:

def servletMappings = xml.'servlet-mapping'
servletMappings[servletMappings.size() - 1] + {
    'servlet-mapping' {
        'servlet-name'("myServlet")
        'url-pattern'("/myURL")
    }
}

Si quieren investigar más en esto, echar un vistazo a groovy.util.slurpersupport.NodeChild (el argumento xml es de ese tipo) y su groovy.util.slurpersupport.GPathResult superclase.

Buena suerte!

Otros consejos

Creo que ahora se puede lograr lo mismo mediante la adición de un elemento mime-mapping directamente a la plantilla web.xml en src/templates/war/web.xml como esto:

<mime-mapping> 
    <extension>htc</extension>
    <mime-type>text/x-component</mime-type> 
</mime-mapping>

Hmm, lo único que pude encontrar hace referencia a una propiedad de configuración que se debe establecer con el fin de acceder correctamente los tipos MIME en las solicitudes:

grails.mime.file.extensions = true

Trate de asegurarse de que esto se establece en true, y luego tratar de nuevo con el código que funciona?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top