when i try to run an ejb application the following error occurs!!!
Can u help me out of it

The following stack trace is displayed

java.lang.NoClassDefFoundError: javax/ejb/EJBHome
        at java.lang.ClassLoader.findBootstrapClass(Native Method)
        at java.lang.ClassLoader.findBootstrapClass0(ClassLoader.java:727)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:284)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:282)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:274)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:235)
        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:219)
        at 
sun.rmi.server.LoaderHandler.loadProxyInterfaces(LoaderHandler.java:707)
        at sun.rmi.server.LoaderHandler.loadProxyClass(LoaderHandler.java:622)
        at sun.rmi.server.LoaderHandler.loadProxyClass(LoaderHandler.java:517)
        at 
java.rmi.server.RMIClassLoader$2.loadProxyClass(RMIClassLoader.java:639)
        at 
java.rmi.server.RMIClassLoader.loadProxyClass(RMIClassLoader.java:309)
        at 
sun.rmi.server.MarshalInputStream.resolveProxyClass(MarshalInputStream.java:241)
        at java.io.ObjectInputStream.readProxyDesc(ObjectInputStream.java:1469)
        at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1432)
        at 
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1626)
        at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
        at java.io.ObjectInputStream.readObject(ObjectInputStream.java:324)
        at java.rmi.MarshalledObject.get(MarshalledObject.java:135)
        at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:353)
        at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:333)
        at javax.naming.InitialContext.lookup(InitialContext.java:347)
        at An.displaySearchResult(An.java:93)
        at An.displayPage(An.java:64)
        at An.doPost(An.java:26)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
        at filters.ExampleFilter.doFilter(ExampleFilter.java:149)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:213)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
        at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:256)
        at 
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
        at 
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
        at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
        at 
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
        at 
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:494)
        at 
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
        at 
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
        at 
org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2415)
        at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
        at 
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
        at 
org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:171)
        at 
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
        at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)
        at 
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
        at 
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
        at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
        at 
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
        at 
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
        at 
org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223)
        at 
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:594)
        at 
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:392)
        at 
org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:565)
        at 
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:619)
        at java.lang.Thread.run(Thread.java:534)


The code listing is here

For Remote interface

package tassie;

import javax.ejb.EJBObject;
import java.rmi.RemoteException;
import java.util.ArrayList;

public interface Search extends EJBObject {
  public ArrayList search(String keyword) throws RemoteException;
}


for home interface


package tassie;

import java.rmi.RemoteException;
import javax.ejb.CreateException;
import javax.ejb.EJBHome;

public interface SearchHome extends EJBHome {
  Search create() throws RemoteException, CreateException;
}


For bean class

package tassie;

import java.rmi.RemoteException;
import javax.ejb.SessionBean;
import javax.ejb.SessionContext;
import java.sql.*;
import java.util.ArrayList;

public class SearchBean implements SessionBean {


  private Connection getConnection() {
    Connection connection = null;
    try {
      Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
      connection = DriverManager.getConnection("jdbc:odbc:TassieDB");
    }
    catch (Exception e) {
    }
    return connection;
  }

  public ArrayList search(String keyword) {
    ArrayList retval = new ArrayList(50);
    try {
      Statement statement = getConnection().createStatement();
      String sql = "SELECT Id, Title, Author, Publisher" +
        " FROM Books" +
        " WHERE Title LIKE '%" + keyword + "%'";

      ResultSet rs = statement.executeQuery(sql);
      while (rs.next()) {
        String[] row = new String[4];
        row[0] = rs.getString("Id");
        row[1] = rs.getString("Title");
        row[2] = rs.getString("Author");
        row[3] = rs.getString("Publisher");
        retval.add(row);
      }
      rs.close();
      statement.close();
    }
    catch (Exception e) {
    }
    return retval;
  }

  public void ejbCreate() {
  }

  public void ejbRemove() {
  }

  public void ejbActivate() {
  }

  public void ejbPassivate() {
  }

  public void setSessionContext(SessionContext sc) {
  }
}

n the client servlet is here

//package com.brainysoftware.tassie.servlet;

import javax.servlet.*;
import javax.ejb.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
import javax.naming.*;
import javax.rmi.PortableRemoteObject;
import tassie.Search;
import  tassie.SearchHome;

public class An extends HttpServlet {

  private String keyword;

  /**Process the HTTP Get request*/
  public void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
    displayPage(request, response);
  }

  /**Process the HTTP Post request*/
  public void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
    keyword = request.getParameter("keyword");
    displayPage(request, response);
  }

  private void displayPage(HttpServletRequest request, HttpServletResponse 
response)
    throws ServletException, IOException {
    /* In addition to the header and footer,
       There are 4parts in this page:
       1. The Welcome Title
       2. Search form
       3. The search result table
       4. The link to the Check Shopping Cart page
    */
    response.setContentType("text/html");
    PrintWriter out = response.getWriter();

    // header
    out.println("");
    out.println("");
    out.println("Welcome to Tassie Online Bookstore");
    out.println("");
    out.println("");
    out.println("");

    // Welcome Title
    out.println("<H2>Welcome To Tassie Online Bookstore</H2>");

    // Search form
    out.println("");
    out.println("<FORM METHOD=POST>");
    out.println("Title: <INPUT TYPE=TEXT NAME=keyword>");
    out.println("<INPUT TYPE=SUBMIT VALUE=Search");
    out.println("");
    out.println("");

    // Search result
    out.println("");
    out.println("<H3>Search Result</H3>");
    out.println("");
    displaySearchResult(out);
    out.println("");

    // Link to the Check Shopping Cart link
    out.println("");
    out.println("<A HREF=Hello>Check Shopping Cart");

    // footer
    out.println("");
    out.println("");
    out.println("");

    // Displaying the Search form

  }

  /**Clean up resources*/
  private void displaySearchResult(PrintWriter out) {
    if (keyword!=null && !keyword.trim().equals("")) {
      // keyword okay, display the result here.

      Properties properties = new Properties();
      properties.put(Context.INITIAL_CONTEXT_FACTORY, 
"org.jnp.interfaces.NamingContextFactory");
      properties.put(Context.PROVIDER_URL, "localhost:1099");
      try {
        // Get a naming context
        InitialContext jndiContext = new InitialContext(properties);
        System.out.println("got context");
        // Get a reference to the Bean
        Object ref  = jndiContext.lookup("Search");
        System.out.println("got   reference");
        // Get a reference from this to the Bean's Home interface
        SearchHome home = (SearchHome)
          PortableRemoteObject.narrow (ref, SearchHome.class);

        // Create an Adder object from the Home interface
        Search searchBean = home.create();
        ArrayList arrayList = searchBean.search(keyword);
        int rowCount = arrayList.size();
        out.println("<TABLE BORDER=1>");
        out.println("");
        out.println("<TH WIDTH=350>Title");
        out.println("<TH WIDTH=150>Author");
        out.println("<TH WIDTH=150>Publisher");
        out.println("<TH WIDTH=50> ");
        out.println("");

        for (int i=0; i<rowCount; i++) {
          String[] s = (String[]) arrayList.get(i);
          out.println("");
          out.println("" + s[1] + "");
          out.println("" + s[2] + "");
          out.println("" + s[3] + "");
          out.println("<A 
HREF=com.brainysoftware.tassie.servlet.BookDetailsServlet?bookId=" +
            s[0] + ">Details");
          out.println("");
        }
        out.println("");

      }
      catch(Exception e) {
        System.out.println(e.toString());
      }

    }
  }
}




View the original post : 
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3893912#3893912

Reply to the post : 
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3893912


-------------------------------------------------------
SF.Net email is Sponsored by the Better Software Conference & EXPO
September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices
Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA
Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf
_______________________________________________
JBoss-user mailing list
JBoss-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jboss-user

Reply via email to