gpt4 book ai didi

tomcat - 为什么托管 Bean 没有加载到 Tomcat 中?

转载 作者:行者123 更新时间:2023-11-28 21:48:01 25 4
gpt4 key购买 nike

我使用 facelets 创建了一个 JSF 2 网络应用程序。 JSF 的库存储在 tomcat/lib 中,以便在多个应用程序之间共享。我认为将库存储在应用程序的 WEB-INF/lib 文件夹中可能会更好,以使应用程序更加独立于服务器配置。

现在,当我通过 eclipse 启动 tomcat 时,托管 bean 已加载并正常工作。但是当我直接/独立启动 tomcat 时,托管 bean 不会自动加载。我用过

@ManagedBean
@SessionScoped / @RequestScoped

将类声明为托管 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)

最佳答案

jsf 在 WEB-INF/classes 中查找 bean,当使用 tomcat:run the classes 启动时不是这个位置。

使用 mvn tomcat:run-war,对我有用。

关于tomcat - 为什么托管 Bean 没有加载到 Tomcat 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2369987/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com