Я создал веб-приложение JSF 2 с facelets. Освобождение для JSF, где сохранено в коте/lib, для совместного использования его между несколькими приложениями. Я думал, возможно, что будет лучше сохранить, освобождает в папке WEB-INF/lib приложения, для получения приложения, более независимого от конфигураций сервера.
Теперь, когда я запускаю кота через затмение, управляемые компоненты загружаются и работа. Но когда я запускаю кота непосредственно / автономный, управляемые компоненты не загружаются автоматически. Я использовал
@ManagedBean
@SessionScoped / @RequestScoped
аннотации для объявления классов как управляемых компонентов.
Почему это? Что я могу сделать для фиксации его?
Я еще не использую файла faces-config.xml.
Заранее спасибо.
отредактированный:
Возможно, это помогает видеть то, что продолжается:
javax.el.PropertyNotFoundException: /Artikel.xhtml @12,108 value="#{artikelBackingBean.nameFilterPattern}": Target Unreachable, identifier 'artikelBackingBean' resolved to null
at com.sun.faces.facelets.el.TagValueExpression.getType(TagValueExpression.java:93)
at com.sun.faces.renderkit.html_basic.HtmlBasicInputRenderer.getConvertedValue(HtmlBasicInputRenderer.java:95)
at javax.faces.component.UIInput.getConvertedValue(UIInput.java:1008)
at javax.faces.component.UIInput.validate(UIInput.java:934)
at javax.faces.component.UIInput.executeValidate(UIInput.java:1189)
at javax.faces.component.UIInput.processValidators(UIInput.java:691)
at javax.faces.component.UIForm.processValidators(UIForm.java:243)
at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1080)
at javax.faces.component.UIViewRoot.processValidators(UIViewRoot.java:1180)
at com.sun.faces.lifecycle.ProcessValidationsPhase.execute(ProcessValidationsPhase.java:76)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:312)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:433)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
at java.lang.Thread.run(Thread.java:619)
Это признак того, что веб-приложение использует JSF 1.x вместо JSF 2.x. Конфигуратор JSF 1.x не распознает аннотации @ManagedBean
, из-за чего они не загружаются / не инициализируются автоматически без необходимости в faces-config.xml
.
Я подозреваю некоторую коллизию в используемой версии библиотек JSF. Просканируйте весь путь к классам на предмет файлов JSF JAR и используйте какой-нибудь инструмент zip / rar, чтобы определить включенный файл MANIFEST.MF
для фактической версии JSF. Путь к классам включает Tomcat / lib
, JRE / lib / *
и Webapp / WEB-INF / lib
.