c0d*_*d3x 5 jsf tomcat javabeans
我创建了一个带有facelets的JSF 2 Web应用程序.JSF的库存储在tomcat/lib中,以便在多个应用程序之间共享它.我想也许最好将lib存储在应用程序的WEB-INF/lib文件夹中,以使应用程序更加独立于服务器配置.
现在,当我通过eclipse启动tomcat时,托管bean已加载并正常工作.但是当我直接/独立启动tomcat时,托管bean不会自动加载.我用了
@ManagedBean
@SessionScoped / @RequestScoped
Run Code Online (Sandbox Code Playgroud)
将类声明为托管bean的注释.
为什么是这样?我该怎么办才能修复它?
我还没有使用任何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)
Run Code Online (Sandbox Code Playgroud)
这表明 Web 应用程序正在使用 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
。
归档时间: |
|
查看次数: |
7567 次 |
最近记录: |