0
votes

I am newbie in java EE . Recently I'm working on a project using bean stateless but i got the following error

Bean :

@Stateless(mappedName = "FlightServiceBean")
public class FlightServiceBean {

    public FlightServiceBean() {
    }

    // data

}

Servlet :

  private FlightServiceBean fs = null;

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
    {

        PrintWriter out = response.getWriter();
        out.println("The flights details servlet has been called ...");

        try
        {
            Context context = new InitialContext();
            fs = (FlightServiceBean) context.lookup("java:global/ejb1/FlightServiceBean!com.airline.service.FlightServiceBean");
// here where I got the exception
        }
        catch (NamingException e)
        {
            System.out.println("Naming Exception has occurred when trying to lookup the flightService EJB");
            e.printStackTrace();
        }

javax.naming.NamingException: Lookup failed for 'java:global/ejb1/FlightServiceBean!com.airline.service.FlightServiceBean' in SerialContext[myEnv={java.naming.factory.initial=com.sun.enterprise.naming.impl.SerialInitContextFactory, java.naming.factory.state=com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl, java.naming.factory.url.pkgs=com.sun.enterprise.naming} [Root exception is javax.naming.NameNotFoundException: ejb1]

This is my project structure

Note: I am using glassfish 5.0 and jdk 1.8.0

1
What class does that code belong to? Where was FlightServiceBean declared?paisanco
in com.airline.serviceMohammad Ismail
IntelliJ can't find your FlightServiceBean is what the error message is saying. I think your question might be similar to stackoverflow.com/questions/20801241/…paisanco
I don't think this is the error , because even if i insert a wrong name it will give the same errorMohammad Ismail
The correct JNDI name depends upon how your application is deployed. Please describe your deployment structure.Steve C

1 Answers

0
votes

Your EJB lookup is not proper. Try to change the above line to

 fs = (FlightServiceBean) ic.lookup("java:comp/env/ejb/FlightServiceBean");

For more on EJB Lookup, refer this link.