f:viewAction не вызывать действие
Я использую сервер Weblogic 12.1.2, JSF 2, Mojarra 2.2.4 и у меня есть следующий код на странице:
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://xmlns.jcp.org/jsf/html"
xmlns:f="http://xmlns.jcp.org/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:p="http://primefaces.org/ui"
xmlns:c="http://java.sun.com/jsp/jstl/core">
<f:metadata>
<f:viewAction action="#{sessionBean.solicitud()}" />
</f:metadata>
<h:body>
Solicitud: '#{param.id}'
From: '#{param.from}'
<br />
</h:body>
</html>
SessionBean имеет следующий метод:
public String solicitud() {
System.out.println("\n12\n");
Long id = getRequestParam("id") != null ? Long.valueOf(getRequestParam("id")) : 0;
String from = getRequestParam("from") != null ? getRequestParam("from") : "";
System.out.println("*********** PASA POR AQUI 1 ***********************");
if(id != null && id > 0){
if(StringUtils.isNotBlank(from) && from.equals("informes")){
System.out.println("*********** PASA POR AQUI 2 ***********************");
return solicitud.cargarSolicitudInforme(id);
}
else{
System.out.println("*********** PASA POR AQUI 4 ***********************");
return solicitud.cargarSolicitud(id);
}
}
else{
System.out.println("*********** PASA POR AQUI 6 ***********************");
return home();
}
}
Я изменил пространства имен xmlns: http://java.sun.com/jsf/core на xmlns: http://xmlns.jcp.org/jsf/core
Если я запускаю это приложение на VMware vFabric tc Server v2.5, приложение работает нормально, но если я запускаю его на сервере Weblogic, журнал не показывает трассировку ошибок, но метод никогда не выполняется.
Что я делаю неправильно?
Thanx.
1 ответ
Решаемые.
Проблема заключалась в том, что стандартные библиотеки jsf на сервере Weblogic не распознают f: viewAction. Решением было включить правильные библиотеки jsf в качестве общих библиотек jsf (в моем случае jsf-impl-2.2.4.jar и jsf-api-2.2.4.jar) в папку weblogic_domains/server_name/lib и удалить их в папке развернутая война.