vínculo vista true tipo resuelto puede porque podido para paginas navegación navegacion faces etiquetas está este entre encontrar ejemplo desactivado componente coincidente caso asignar java jsf java-ee jsf-2 facelets

java - vista - cómo compartir una página de error jsf entre múltiples guerras



no se ha resuelto el tipo de navegación para el componente (1)

Debe crear un ResourceResolver personalizado que resuelva recursos de classpath, colóquelo en el archivo JAR común y luego gírelo en web-fragment.xml del JAR (o en web.xml de los WAR).

Ejemplo de lanzamiento:

package com.example; import java.net.URL; import javax.faces.view.facelets.ResourceResolver; public class FaceletsResourceResolver extends ResourceResolver { private ResourceResolver parent; private String basePath; public FaceletsResourceResolver(ResourceResolver parent) { this.parent = parent; this.basePath = "/META-INF/resources"; // TODO: Make configureable? } @Override public URL resolveUrl(String path) { URL url = parent.resolveUrl(path); // Resolves from WAR. if (url == null) { url = getClass().getResource(basePath + path); // Resolves from JAR. } return url; } }

con en web-fragment.xml o web.xml

<context-param> <param-name>javax.faces.FACELETS_RESOURCE_RESOLVER</param-name> <param-value>com.example.FaceletsResourceResolver</param-value> </context-param>

Estoy intentando compartir una página de error (error.xhtml) entre múltiples guerras. Todos están en una gran aplicación de oído, y todos usan una biblioteca de jar común, donde me gustaría poner esto.

La página de error debería usar web.xml, o mejor web-fragment.xml, y se declararía como una página de error java ee estándar.

Estructura EAR real:

EAR EJB1 EJB2 WAR1 (using CommonWeb.jar) WAR2 (using CommonWeb.jar) WAR3 (using CommonWeb.jar)

Simplemente poner la página de error bajo META-INF / resources no funcionará, ya que no es un recurso.

Me gustaría tener lo menos posible para configurar en cada archivo de guerra.

Estoy usando Glassfish 3.1, pero me gustaría utilizar los estándares Java EE 6 tanto como sea posible.