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