СВЯЗАННЫЙ: Проблема с пустой строкой против пустой при обновлении до JSF 2.3 (Мохарра) на Tomcat 9 - PullRequest
0 голосов
/ 13 декабря 2018

Казалось, что приложение запускается нормально, но теперь меня мучают пустые строки, применяемые для просмотра параметров.* В моем файле web.xml для параметра javax.faces.INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL уже задано значение true.

Вот что я сделал для обновления:

  1. Обновлены артефакты JSF: из javax.faces: javax.faces-api: 2.2 и org.glassfish: javax.faces: 2.2.15 до javax.faces: javax.faces-api: 2.3 и org.glassfish: javax.faces: 2.3.8 .
  2. Обновлено пространство имен в face-config.xml .
  3. Обновлено пространство имен в beans.xml , чтобы включить 2.0.
  4. Обновлено web.xml до сервлета 4.0.
  5. Добавлено javax.faces.ENABLE_CDI_RESOLVER_CHAIN ​​ и javax.faces.ENABLE_WEBSOCKET_ENDPOINT в web.xml .
  6. Я даже добавил класс активатора JSF 2.3, хотя казалось, что он избыточен.
  7. OmniFaces обновлен с 2.6.9 до 3.2.

РЕДАКТИРОВАТЬ: Оказывается, это связано с Tomcat 8 (и 9) принудительное поведение, нулевые строки неправильно установлены как пустые строки

Но, как указанов названии я попробуюПереход на JSF 2.3 на Tomcat 9 (9.0.12).Предыдущий вопрос и блог BalusC напрямую не касаются этого случая.Я также должен заявить, что до этого приложение работало на JDK11 без проблем.

Из предыдущего вопроса я узнал, что использование Oracles EL может работать, но я получаю:

java.lang.ArrayIndexOutOfBoundsException: arraycopy: last source index 16 out of bounds for byte[9]
at java.base/java.lang.System.arraycopy(Native Method)
at com.sun.faces.util.ByteArrayGuardAESCTR.decrypt(ByteArrayGuardAESCTR.java:157)
at com.sun.faces.context.flash.ELFlash$PreviousNextFlashInfoManager.decode(ELFlash.java:1414)
at com.sun.faces.context.flash.ELFlash.getCurrentFlashManager(ELFlash.java:1237)
at com.sun.faces.context.flash.ELFlash.doPrePhaseActions(ELFlash.java:641)
at com.sun.faces.lifecycle.Phase.handleBeforePhase(Phase.java:214)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:98)
at com.sun.faces.lifecycle.RestoreViewPhase.doPhase(RestoreViewPhase.java:133)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:201)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:670)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...