Servlets javax.naming.NameNotFoundException:Name[servlet.TestEJB/meuEJB]未在此上下文中绑定。找不到[servlet.TestEJB]

Servlets javax.naming.NameNotFoundException:Name[servlet.TestEJB/meuEJB]未在此上下文中绑定。找不到[servlet.TestEJB],servlets,ejb,Servlets,Ejb,我在这个应用程序中得到一个错误,它通过index.html页面上的一个按钮将用户保持在BD上,该按钮通过单击POST调用servlet。 我将非常感谢一个解决方案,因为我一直在努力寻找错误的原因。 我认为错误应该是时间放一些注释或者没有找到servlet 错误: javax.servlet.ServletException: Error instantiating servlet class servlet.TestEJB org.apache.catalina.authenticato

我在这个应用程序中得到一个错误,它通过index.html页面上的一个按钮将用户保持在BD上,该按钮通过单击POST调用servlet。 我将非常感谢一个解决方案,因为我一直在努力寻找错误的原因。 我认为错误应该是时间放一些注释或者没有找到servlet

错误:

javax.servlet.ServletException: Error instantiating servlet class servlet.TestEJB
    org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
    org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
    org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:610)
    org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:518)
    org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1091)
    org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:668)
    org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionHandler.process(Http11NioProtocol.java:223)
    org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1517)
    org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1474)
    java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    java.lang.Thread.run(Thread.java:745)
root cause

javax.naming.NameNotFoundException: Name [servlet.TestEJB/meuEJB] is not bound in this Context. Unable to find [servlet.TestEJB].
    org.apache.naming.NamingContext.lookup(NamingContext.java:818)
    org.apache.naming.NamingContext.lookup(NamingContext.java:166)
    org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
    org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
    org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:610)
    org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:518)
    org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1091)
    org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:668)
    org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionHandler.process(Http11NioProtocol.java:223)
    org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1517)
    org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1474)
    java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    java.lang.Thread.run(Thread.java:745)
SERVLET:

@WebServlet("/TestEJB")
public class TestEJB extends HttpServlet{

    private static final long serialVersionUID = 1L;

    @EJB
    MissatgesEJB meuEJB;

    /* (non-Javadoc)
     * @see javax.servlet.http.HttpServlet#doPost(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
     */
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        resp.setContentType("text/html;charset=UTF-8");

        try (PrintWriter out = resp.getWriter()) {

            out.println("<!DOCTYPE html>");
            out.println("<html>");
            out.println("<head>");
            out.println("<title>Servlet TestEJB</title>");
            out.println("</head>");
            out.println("<body>");
            out.println("<h1>Proves Whatsapp</h1>");

            Usuaris usuari = new Usuaris("robert_1994", "Paucasals33", "Bruch");

            out.println("Insertant Usuari... " + meuEJB.insertarUsuari(usuari) + "<br/>");

            out.println("</body>");
            out.println("</html>");
        }

    }

}
persistence.xml:

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.1"
    xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">
    <persistence-unit name="JPA-1" transaction-type="RESOURCE_LOCAL">
        <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
        <class>beans.Historial</class>
        <class>beans.Missatges</class>
        <class>beans.Usuaris</class>
        <properties>
            <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver" />
            <property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost/bdwhatsapp" />
            <property name="javax.persistence.jdbc.user" value="marti" />
            <property name="javax.persistence.jdbc.password" value="Paucasals33" />
            <property name="javax.persistence.schema-generation.database.action"
                value="none" />
        </properties>
    </persistence-unit>
</persistence>

org.eclipse.persistence.jpa.PersistenceProvider
豆子,历史的
豆子,误食
豆子,高利贷

堆栈跟踪告诉您正在使用Tomcat

at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
Tomcat不是EJB容器。它是一个基本的JSP/Servlet容器。在webapp的
/WEB-INF/lib
中加入一堆JAR只是为了编译代码,并不能神奇地将Tomcat变成真正的JavaEE容器

对于EJB,您需要一个真正的JavaEE容器。将Tomcat替换为、或。这些是真正的JavaEE容器,支持EJB、JPA、JSF、JAX-RS和所有其他现成的东西

另见:

也许这有帮助:如果没有这个条目,我会得到以下错误:严重:Servlet.service()在路径为[/activitat]的上下文中,Servlet[Servlet.TestEJB]在Servlet.TestEJB.doPost(TestEJB.java:43)在javax.Servlet.http.HttpServlet.service(HttpServlet.java:648)在javax.Servlet.http.HttpServlet.service中抛出异常java.NullPointerException(HttpServlet.java:729)在
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)