【问题标题】:How to bind a servlet to a context?如何将 servlet 绑定到上下文?
【发布时间】:2010-05-27 06:44:08
【问题描述】:

我明白了

javax.servlet.ServletException: Error instantiating servlet class servlets.MemoServlet
javax.naming.NameNotFoundException: Name servlets.MemoServlet is not bound in this Context

使用时

<form action="MemoServlet">

我知道我可以使用 managedbeans,但我必须使用 servlet。

我怀疑这个问题与 JSF 有关。

context.xml:

<?xml version="1.0" encoding="UTF-8"?>
<Context antiJARLocking="true" path="/MemoWeb/faces"/>

web.xml:

<servlet-mapping>
    <servlet-name>MemoServlet</servlet-name>
    <url-pattern>/faces/MemoServlet</url-pattern>
</servlet-mapping>

<servlet>
    <servlet-name>MemoServlet</servlet-name>
    <servlet-class>servlets.MemoServlet</servlet-class>
</servlet>

我似乎到处都有这个问题:

com.sun.faces.mgbean.ManagedBeanCreationException: An error occurred performing resource injection on managed bean userManager
....
Caused by: javax.naming.NameNotFoundException: Name user.UserManager is not bound in this Context

【问题讨论】:

    标签: jsf forms servlets jsf-2


    【解决方案1】:

    听起来好像 servlet 被错误地声明为 @WebService。这与 JSF 无关。

    我强烈建议您暂时忘记 JSF 位,因为您似乎误解了它的用途。 “我必须使用 servlet” 这句话暗示您的问题比这更深。我建议先抛开这一切,先了解基本的 Java EE books/tutorials,以便更好地掌握和更好地理解所有东西应该如何工作和使用。

    【讨论】:

    • 您基本上需要提供更多代码细节,但我认为只要您尝试将 JSF/Facelets 与普通的香草 Servlet 混合使用,那是没有希望的。如果您的唯一目的是简单的模板化,那么请使用模板框架,而不是 MVC 框架。例如 Velocity 或 Freemarker。
    • 所以 jsf/facelets 只适用于 'jsf' servlet(我对这些一无所知)。我所知道的是 jspx + 和 EL + servlet(普通的)。我希望从这些模板中获得的行为正是我可以通过包含 jspxs(页眉、页脚、导航)等获得的...请更正这个断言:我可以使用 jsf xhtml 模板客户端,然后在 中写入任何可以在 jspx 中被接受的代码,在 body 元素中。
    • 你也可以使用JSPX,是的。 Facelets 作为 MVC 框架的“视图”部分与 JSF 相关联。当您想在没有 FacesServlet 作为“控制器”和托管 bean 作为“模型”的情况下使用它时,请忘记它。这只是自找麻烦和混乱。澄清一下:在 JSF 中只有一个 servlet,FacesServlet。您通常根本不用担心它,只需按照通常的 MVC 方式在模型对象(托管 bean)中完成业务工作。要详细了解 JSP/Servlet/JSF 之间的区别,您可能会发现 this answer 很有用。
    • 所以断言是错误的,因为 ONE FacesServlet 限制,我什至不能继承来放置我的 servlet 代码。所以没有 jsf!
    • 如前所述,您可能不想要一个成熟的 MVC 框架。您只需要一个简单的模板框架。忘记 JSF。它不适合您的要求。我在之前的评论中提到了两个合适的框架。 为工作使用正确的工具!
    【解决方案2】:

    不要在 java ee 5 容器中使用 jpa 2。

    【讨论】:

      【解决方案3】:

      我遇到了这个确切的错误。在使用 netbeans 开发的 Web 应用程序中,我的 servlet 正在调用 Web 服务客户端。仅在部署 tomcat 时才抛出该错误。解决方案是避免使用代理的@WebService。在这里找到了 http://www.java.net/node/677791 希望这会有所帮助

      【讨论】:

        猜你喜欢
        • 2014-03-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-06-30
        • 2021-07-19
        • 2011-09-07
        相关资源
        最近更新 更多