The error seems to be also that the container cannot find the stub/skeleton
classes. Check that your ejb jar file is complete and try specifically
putting that jarfile in your classpath variable for the client JRun server.
like /opt/JRun/servers/yourclasses/EJBJar.jar

----- Original Message -----
From: "Mark Phelps" <[EMAIL PROTECTED]>
To: "JRun-Talk" <[EMAIL PROTECTED]>
Sent: Thursday, August 09, 2001 9:57 AM
Subject: RE: JRun.sucks Exception


> The only thing that I can see right off is the call to
> PortableRemoteObject.narrow().  We use EJBs all the time with JRun.  Our
> code looks like yours except we never use that call.  Try removing it.
>
> Also, you might go into the JMC after you deploy your EJB and verify that
> the "ebj.beanHomeName" property for your bean is really "TransactionBean"
> like it should be.  You should also verify that the ejb.allowedIdentities
> property is set to "all" like the properties file says.
>
> The exception you show seems to indicate that the server is having trouble
> finding one of the bean classes.  I'm not sure why that would be.
>
> If this doesn't solve the problem, let me know and I will look closer.
>
> Take heart!  It appears that you are very close.
>
>
> -----Original Message-----
> From: Robert Jacobs [mailto:[EMAIL PROTECTED]]
> Sent: Wednesday, August 08, 2001 4:39 PM
> To: JRun-Talk
> Subject: JRun.sucks Exception
>
>
> I have been trying for quite some time to deploy a session bean that will
> handle database transactions.  I am getting the following error
>
****************************************************************************
> *****************************************
> There was an exception thrown here. javax.naming.NamingException: Failed
to
> unmarshal proxy. Root exception is java.lang.ClassNotFoundException:
> TransactionHomeObject_Stub at
java.io.ObjectInputStream.inputObject(Unknown
> Source) at java.lang.Exception.(Unknown Source) at
> java.lang.ClassNotFoundException.(Unknown Source) at
> java.io.ObjectInputStream.inputObject(Unknown Source) at
> java.io.ObjectInputStream.readObject(Unknown Source) at
> java.io.ObjectInputStream.readObject(Unknown Source) at
> java.rmi.MarshalledObject.get(Unknown Source) at
> allaire.ejipt._NamingContext$_Proxy._resolve(_NamingContext.java:362) at
> allaire.ejipt._NamingContext.lookup(_NamingContext.java:68) at
> allaire.ejipt._ClientContext.lookup(_ClientContext.java:113) at
> javax.naming.InitialContext.lookup(InitialContext.java:349) at
> testbean.doGet(testbean.java:33) at
> javax.servlet.http.HttpServlet.service(HttpServlet.java:740) at
> javax.servlet.http.HttpServlet.service(HttpServlet.java:865) at
> allaire.jrun.servlet.JRunSE.service(JRunSE.java:1013) at
> allaire.jrun.servlet.JRunSE.runServlet(JRunSE.java, Compiled Code) at
>
allaire.jrun.servlet.JRunNamedDispatcher.forward(JRunNamedDispatcher.java:34
> ) at allaire.jrun.servlet.Invoker.service(Invoker.java:84) at
> allaire.jrun.servlet.JRunSE.service(JRunSE.java:1013) at
> allaire.jrun.servlet.JRunSE.runServlet(JRunSE.java, Compiled Code) at
>
allaire.jrun.servlet.JRunRequestDispatcher.forward(JRunRequestDispatcher.jav
> a:88) at allaire.jrun.servlet.JRunSE.service(JRunSE.java:1131) at
> allaire.jrun.servlet.JvmContext.dispatch(JvmContext.java:330) at
> allaire.jrun.jrpp.ProxyEndpoint.run(ProxyEndpoint.java:382) at
> allaire.jrun.ThreadPool.run(ThreadPool.java, Compiled Code) at
> allaire.jrun.WorkerThread.run(WorkerThread.java, Compiled Code)
> javax.naming.NamingException: Failed to unmarshal proxy [Root exception is
> java.lang.ClassNotFoundException: TransactionHomeObject_Stub]
>
****************************************************************************
> ******************************************
> Here is my code
>
> import java.util.*;
> import java.sql.*;
> import java.rmi.*;
> import javax.rmi.*;
> import javax.ejb.*;
> import javax.naming.*;
> import allaire.ejipt.*;
>
> public interface TransactionHome extends EJBHome {
>    public Transaction create()
>           throws RemoteException, CreateException;
> }
>
****************************************************************************
> **********************************
> import java.util.*;
> import java.text.*;
> import java.sql.*;
> import java.rmi.*;
> import javax.rmi.*;
> import javax.ejb.*;
> import javax.naming.*;
> import allaire.ejipt.*;
>
> public class TransactionBean implements SessionBean {
>
>    public SessionContext context;
>
>    public void ejbCreate() {
>    }
>
>    public boolean insert(String cid, int jn, int comp, int e, int ttype,
> String sid, int count) {
>
>      Connection con = null;
>
>      PreparedStatement ps = null;
>
>      java.sql.Date today = new java.sql.Date(new
> java.util.Date().getTime());
>      DateFormat cur_date = DateFormat.getDateInstance(DateFormat.MEDIUM);
>
>      try {
>        con = getConnection();
>        ps = con.prepareStatement("INSERT INTO trans(client_id, job_number,
> comp_id,"+
>             " event_id, trans_type, cur_date, session_id, cur_count)
VALUES
> (?,?,?,?,?,?,?,?)");
>        ps.setString(1, cid);
>        ps.setInt(2, jn);
>        ps.setInt(3, comp);
>        ps.setInt(4, e);
>        ps.setInt(5, ttype);
>        ps.setDate(6, today);
>        ps.setString(7, sid);
>        ps.setInt(8, count);
>        int retVal = ps.executeUpdate();
>        if(retVal!=1) {
>           System.err.println("Error inserting into the database.  The
values
> were \ncid="+cid+"\njn="+
>
>
Integer.toString(jn)+"\ncomp="+Integer.toString(comp)+"\nevent="+Integer.toS
> tring(event)+
>
>
"\nttype="+Integer.toString(ttype)+"\ncur_date="+cur_date.toString()+"\nsid=
> "+sid+"\ncount="+Integer.toString(count));
>        }
>      } catch(SQLException sql) {
>         System.err.println("There was a SQLException thrown in the
> Transaction Bean insert method.");
> return false;
>      } finally {
>         try {
>           if(ps != null) ps.close();
>           if(con != null) con.close();
>         } catch(SQLException se)
>
>           se.printStackTrace();
>         }
>      }
>       return true;
>    }
>
>    public void ejbActivate() {}
>    public void ejbPassivate() {}
>    public void ejbRemove() {}
>
>    public void setSessionContext(SessionContext ctx) {
>      context = ctx;
>    }
>
>    private Connection getConnection() throws SQLException {
>       Connection con = null;
>       try {
>         con = ResourceManager.getConnection("source1");
>       } catch(Exception e) {
>         System.err.println("Error getting connection in
> TransactionBean::getConnection()");
>       }
>   return con;
>    }
>
> }
>
****************************************************************************
> **************************************
> import java.util.*;
> import java.sql.*;
> import java.rmi.*;
> import javax.rmi.*;
> import javax.ejb.*;
> import javax.naming.*;
> import allaire.ejipt.*;
>
>
> public interface Transaction extends EJBObject {
>   public boolean insert(String cid, int jn, int comp, int e, int ttype,
> String sid, int count)
> throws RemoteException;
> }
>
****************************************************************************
> **************************************
> <?xml version="1.0"?>
>
> <!DOCTYPE ejb-jar PUBLIC  "-//Sun Microsystems, Inc.//DTD Enterprise
> JavaBeans 1.1//EN" "http://java.sun.com/j2ee/dtds/ejb-jar_1_1.dtd";>
>
> <ejb-jar>
>  <enterprise-beans>
>   <session>
>     <description>
>   A Session Bean which handles TMX Rich Media Transactions
> </description>
> <ejb-name>TransactionBean</ejb-name>
> <home>TransactionHome</home>
> <remote>Transaction</remote>
> <ejb-class>TransactionBean</ejb-class>
> <session-type>Stateless</session-type>
> <transaction-type>Container</transaction-type>
>   </session>
>  </enterprise-beans>
>
>  <assembly-descriptor>
>   <security-role>
>   <description>
>   Everyone can join the party
> </description>
> <role-name>all</role-name>
>   </security-role>
>
>   <method-permission>
>     <role-name>all</role-name>
> <method>
>   <ejb-name>TransactionBean</ejb-name>
>   <method-name>*</method-name>
> </method>
>   </method-permission>
>
>   <container-transaction>
>    <method>
>      <ejb-name>TransactionBean</ejb-name>
> <method-name>*</method-name>
>    </method>
>    <trans-attribute>Required</trans-attribute>
>   </container-transaction>
>  </assembly-descriptor>
> </ejb-jar>
>
****************************************************************************
> ****************************************
> import java.io.*;
> import java.rmi.*;
> import java.rmi.server.*;
> import java.util.*;
> import javax.ejb.*;
> import javax.servlet.*;
> import javax.servlet.http.*;
> import javax.naming.*;
> import allaire.ejipt.*;
>
> public class testbean extends HttpServlet {
>   private static final String CONTENT_TYPE = "text/html";
>   /**Initialize global variables*/
>   public void init(ServletConfig config) throws ServletException {
>     super.init(config);
>   }
>   /**Process the HTTP Get request*/
>   public void doGet(HttpServletRequest request, HttpServletResponse
> response) throws ServletException, IOException {
>     response.setContentType(CONTENT_TYPE);
>     PrintWriter out = response.getWriter();
>     System.setSecurityManager(new RMISecurityManager());
>     out.println("<html>");
>     out.println("<head><title>testbean</title></head>");
>     out.println("<body>");
>     try {
>
>       Properties properties = new Properties();
>       properties.setProperty(Context.INITIAL_CONTEXT_FACTORY,
> "allaire.ejipt.ContextFactory");
>       properties.setProperty(Context.PROVIDER_URL,
> "ejipt://127.0.0.1:2323");
>       Context ctx = new InitialContext(properties);
>    //   Object ref = ctx.lookup("TransactionBean");
>    //   TransactionHome t_home = (TransactionHome)
> PortableRemoteObject.narrow(ref, TransactionHome.class);
>       TransactionHome t_home = (TransactionHome)
> ctx.lookup("TransactionBean");
>   Transaction trans = t_home.create();
>       if(trans.insert("914", 98765, 999, 1, 5, "8123716", 1)) {
>         out.println("A record should have been added to the database");
>       }
>       else {
>         out.println("Something went wrong.");
>       }
>     } catch(Exception e) {
>       out.println("There was an exception thrown here.");
>   e.printStackTrace(out);
>   out.println(e.toString());
>     }
>
>
>     out.println("<p>The servlet has received a GET. This is the
> reply.</p>");
>     out.println("</body></html>");
>   }
>   /**Clean up resources*/
>   public void destroy() {
>   }
> }
>
****************************************************************************
> ************************************
> #
> #Wed Aug 08 17:37:21 EDT 2001
> ejipt.jdbcSources=source1
> source1.ejipt.sourceDriverClassName=com.inet.tds.TdsDriver
> source1.ejipt.sourceURL=jdbc\:inetdae7\:192.168.1.21\:1433
> source1.ejipt.sourceUser=user
> source1.ejipt.sourcePassword=password
> ejipt.storeName=default
> ejipt.loginSessionHomeName=default.LoginSessionHome
> ejipt.userHomeName=default.UserHome
> ejipt.classServer.host=localhost
> ejipt.roleHomeName=default.RoleHome
> ejipt.ejbJars=transaction1.jar,bob_ejb.jar,
> ejb.allowedIdentities=all
>
****************************************************************************
> *********************************
>
> This has been driving me crazy for the longest time.  Any help would be
most
> appreciated.
>
> Thanks,
> Bob
>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Structure your ColdFusion code with Fusebox. Get the official book at 
http://www.fusionauthority.com/bkinfo.cfm
Archives: http://www.mail-archive.com/[email protected]/
Unsubscribe: http://www.houseoffusion.com/index.cfm?sidebar=lists

Reply via email to