Hey John,

> Sent: giovedì 14 dicembre 2000 23:22

Ugh ! ^^^^^^^^^^^^^^^^^^^^^^^^^^^

For your problem:
ejb-link is wrong, should be ejb-name of the bean so in your case
"Employer", not "org.adv.test.EmployerBean"
ejb-ref-name is OK, "ejb/Employer".

Remember that from the session bean you should lookup it via the name
"java:/comp/env/ejb/Employer"

Cheerio,

Simon

> Simon,
> 
> I tried to fetch the Employer enitity bean in the servlet and 
> it works fine.
> However, when
> i try fetching the entity bean in the session bean it appears 
> that it does
> not work. 
> I tried fixing the deployment descriptor to included the following:
> 
> ==============================================================
> ==============
> ===
> [ejb-jar.xml file]
> 
> <?xml version="1.0" encoding="Cp1252"?>
> 
> <ejb-jar>
>      <description>jBoss test application </description>
>      <display-name>Test</display-name>
>      <enterprise-beans>
>        <entity>
>        <ejb-name>Employer</ejb-name>
>        <home>org.adv.test.EmployerHome</home>
>        <remote>org.adv.test.EmployerRemote</remote>
>        <ejb-class>org.adv.test.EmployerBean</ejb-class>
>        <persistence-type>Container</persistence-type>
>        <prim-key-class>java.lang.String</prim-key-class>
>          <reentrant>False</reentrant>
>          <cmp-field><field-name>id</field-name></cmp-field>
>          <cmp-field><field-name>name</field-name></cmp-field>
>          <cmp-field><field-name>contact</field-name></cmp-field>
>          <cmp-field><field-name>addressLine1</field-name></cmp-field>
>          <cmp-field><field-name>addressLine2</field-name></cmp-field>
>          <cmp-field><field-name>addressLine3</field-name></cmp-field>
>          <cmp-field><field-name>location</field-name></cmp-field>
>          <cmp-field><field-name>phoneStd</field-name></cmp-field>
>          <cmp-field><field-name>phoneNumber</field-name></cmp-field>
>          <cmp-field><field-name>faxStd</field-name></cmp-field>
>          <cmp-field><field-name>faxNumber</field-name></cmp-field>
>          <cmp-field><field-name>email</field-name></cmp-field>
>        <primkey-field>id</primkey-field>
>        </entity>
> 
>        <session>
>        <ejb-name>EmployerLibrary</ejb-name>
>        <home>org.adv.test.EmployerLibraryHome</home>
>        <remote>org.adv.test.EmployerLibraryRemote</remote>
>        <ejb-class>org.adv.test.EmployerLibraryBean</ejb-class>
>        <session-type>Stateless</session-type>
>        <transaction-type>Bean</transaction-type>
>        <ejb-ref>
>           <ejb-ref-name>ejb/Employer</ejb-ref-name>
>           <ejb-ref-type>Entity</ejb-ref-type>
>           <home>org.adv.test.EmployerHome</home>
>           <remote>org.adv.test.EmployerRemote</remote>
>         <ejb-link>org.adv.test.EmployerBean</ejb-link>
>        </ejb-ref>
>        </session>
> 
>      </enterprise-beans>
> 
>    <assembly-descriptor>
>       <container-transaction>
>          <method>
>             <ejb-name>Employer</ejb-name>
>             <method-name>*</method-name>
>          </method>
>          <trans-attribute>Required</trans-attribute>
>       </container-transaction>
>    </assembly-descriptor>
> 
>    </ejb-jar>
> ==============================================================
> ==============
> ===
> [jboss.xml file]
>  
> <?xml version="1.0" encoding="Cp1252"?>
> 
> <jboss>
>      <resource-managers>
>        <resource-manager 
> res-class="org.jboss.ejb.deployment.JDBCResource">
>          <res-name>EmployerDB</res-name>
>          <res-jndi-name>xa.ACCDB</res-jndi-name>
>        </resource-manager>
>      </resource-managers>
> 
>      <enterprise-beans>
>       <entity>
>               <ejb-name>Employer</ejb-name>
>               <jndi-name>Employer</jndi-name>
>               </entity>
>       <session>
>               <ejb-name>EmployerLibrary</ejb-name>
>               <jndi-name>EmployerLibrary</jndi-name>
>               </session>
>      </enterprise-beans>
> </jboss>
> 
> 
> 
> *** And i get the following error:
> 
> [Auto deploy] Auto deploy of file:/usr/local/jboss/deploy/employer.jar
> [J2EE Deployer] Deploy J2EE application:
> file:/usr/local/jboss/deploy/employer.jar
> [J2EE Deployer] Create application employer.jar
> [J2EE Deployer] Installing EJB package: employer.jar
> [J2EE Deployer] Starting module employer.jar
> [Container factory]
> Deploying:file:/usr/local/jboss/tmp/deploy/employer.jar/ejb1006.jar
> [Verifier] Verifying
> file:/usr/local/jboss/tmp/deploy/employer.jar/ejb1006.jar
> [Container factory] Deploying Employer
> [Container factory] Deploying EmployerLibrary
> [JAWS] Table 'Employer' already exists
> [Container factory] org.jboss.ejb.DeploymentException: Bean
> org.adv.test.EmployerBean not found within this application.
> [Container factory]     at
> org.jboss.ejb.Container.setupEnvironment(Container.java:398)
> [Container factory]     at 
> org.jboss.ejb.Container.init(Container.java:259)
> [Container factory]     at
> org.jboss.ejb.StatelessSessionContainer.init(StatelessSessionC
> ontainer.java:
> 141)
> [Container factory]     at
> org.jboss.ejb.Application.init(Application.java:158)
> [Container factory]     at
> org.jboss.ejb.ContainerFactory.deploy(ContainerFactory.java:733)
> [Container factory]     at
> org.jboss.ejb.ContainerFactory.deploy(ContainerFactory.java:272)
> [Container factory]     at 
> java.lang.reflect.Method.invoke(Native Method)
> [Container factory]     at
> com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.
> java:1628)
> [Container factory]     at
> com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.
> java:1523)
> [Container factory]     at
> org.jboss.deployment.J2eeDeployer.startApplication(J2eeDeploye
> r.java:645)
> [Container factory]     at
> org.jboss.deployment.J2eeDeployer.deploy(J2eeDeployer.java:137)
> [Container factory]     at 
> java.lang.reflect.Method.invoke(Native Method)
> [Container factory]     at
> com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.
> java:1628)
> [Container factory]     at
> com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.
> java:1523)
> [Container factory]     at
> org.jboss.ejb.AutoDeployer.deploy(AutoDeployer.java:332)
> [Container factory]     at
> org.jboss.ejb.AutoDeployer.run(AutoDeployer.java:268)
> [Container factory]     at java.lang.Thread.run(Thread.java:475)
> [J2EE Deployer] Starting employer.jar failed!
> [J2EE Deployer] Module employer.jar is not running
> [J2EE Deployer] Destroying application employer.jar
> [J2EE Deployer] deployment.cfg file deleted.
> [J2EE Deployer] File tree 
> file:/usr/local/jboss/tmp/deploy/employer.jar
> deleted.
> [Auto deploy] Deployment 
> failed:file:/usr/local/jboss/deploy/employer.jar
> [Auto deploy] org.jboss.deployment.J2eeDeploymentException: 
> Error while
> starting employer.jar: Could not deploy
> file:/usr/local/jboss/tmp/deploy/employer.jar/ejb1006.jar
> [Auto deploy]   at
> org.jboss.deployment.J2eeDeployer.startApplication(J2eeDeploye
> r.java:665)
> [Auto deploy]   at
> org.jboss.deployment.J2eeDeployer.deploy(J2eeDeployer.java:137)
> [Auto deploy]   at java.lang.reflect.Method.invoke(Native Method)
> [Auto deploy]   at
> com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.
> java:1628)
> [Auto deploy]   at
> com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.
> java:1523)
> [Auto deploy]   at 
> org.jboss.ejb.AutoDeployer.deploy(AutoDeployer.java:332)
> [Auto deploy]   at 
> org.jboss.ejb.AutoDeployer.run(AutoDeployer.java:268)
> [Auto deploy]   at java.lang.Thread.run(Thread.java:475)
> 
> 
> 
> Do you know what  <ejb-ref-name>ejb/Employer</ejb-ref-name> 
> should have
> been???
> Or is there something missing here????
> 
> -John
> 
> 
> -----Original Message-----
> From: Bordet, Simone [mailto:[EMAIL PROTECTED]]
> Sent: Thursday, 14 December 2000 10:07 p.m.
> To: 'jBoss Developer'
> Subject: RE: [jBoss-Dev] Transaction rolled
> back:javax/rmi/PortableRemoteO bject ?!!?!?
> 
> 
> Hey John,
> 
> I see that you're using jdk 1.2.2 invokers (and I think 
> you're using jdk
> 1.2.2); I think that PortableRemoteObject has been moved to 
> core JDK only
> with 1.3, so your problem seems that you cannot find the
> PortableRemoteObject class. Is this your case ? If so, you'll 
> maybe need to
> add javax.rmi package for jdk 1.2.2 to your classpath.
> The rollback is a natural consequence of an application 
> exception thrown:
> you don't want to commit what you have only partially done before the
> exception throw. So the container rollbacks the transaction.
> 
> HTH,
> 
> Simon
> 
> > BTW: It appears to break on the line....
> > 
> > EmployerHome employerHome = (EmployerHome) 
> > PortableRemoteObject.narrow(ref,
> > EmployerHome.class);
> > 
> > What would cause the transaction to roll back????
> > 
> > -John
> > 
> > -----Original Message-----
> > From: John Pericos [mailto:[EMAIL PROTECTED]]
> > Sent: Thursday, 14 December 2000 9:21 a.m.
> > To: 'jBoss Developer'
> > Subject: [jBoss-Dev] Transaction rolled
> > back:javax/rmi/PortableRemoteObject ?!!?!?
> > 
> > 
> > Hi,
> > 
> > I have a prob with Jboss. I'm executing a session bean from a 
> > servlet in
> > Resin. The
> > session bean itself fetchs a entity bean like so:
> > 
> > 
> > 
> >     public String fetchEmployer(String id)
> >     {
> >     System.out.println ("Someone called `fetchEmployer!'");
> >     String employerDetails = "";
> >     int employerID = new Integer(id.trim()).intValue();
> >     System.setProperty("java.naming.factory.initial",
> >                        "org.jnp.interfaces.NamingContextFactory");
> >     System.setProperty("java.naming.provider.url",
> >                        "localhost:1099");
> >     try {
> >         // Get context from EJBserver
> >         InitialContext  jndiContext = new InitialContext();
> >         // Get the home interface
> >         Object ref = jndiContext.lookup("Employer");
> >         EmployerHome employerHome = (EmployerHome)
> > PortableRemoteObject.narrow(ref, EmployerHome.class);
> >         System.out.println ("Got home of Employer...");
> >         EmployerRemote employer = employerHome.findByPrimaryKey( new
> > EmployerPK( employerID ) );
> >         System.out.println ("Got remote of Employer...");
> >         employerDetails = employer.getDetails();
> >         
> >     } catch(Exception e) {
> >         System.out.println(e.toString());
> >     }
> >     System.out.println ("Returning string...");     
> >     return employerDetails;
> >     }
> > 
> > And i get this sort of error....
> > 
> > 
> > java.rmi.ServerException: RemoteException occurred in server 
> > thread; nested
> > exception is:
> >         java.rmi.ServerException: Transaction rolled
> > back:javax/rmi/PortableRemoteObject
> > java.rmi.ServerException: Transaction rolled
> > back:javax/rmi/PortableRemoteObject
> >         at
> > sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer
> > (StreamRemoteC
> > all.java:245)
> >         at
> > sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCal
> > l.java:220)
> >         at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:122)
> >         at
> > org.jboss.ejb.plugins.jrmp.server.JRMPContainerInvoker_Stub.in
> > voke(Unknown
> > Source)
> >         at
> > org.jboss.ejb.plugins.jrmp.interfaces.StatelessSessionProxy.in
> > voke(Stateless
> > SessionProxy.java:175)
> >         at
> > org.jboss.proxy.ProxyCompiler$Runtime.invoke(ProxyCompiler.java:74)
> >         at 
> > org.adv.test.EmployerLibraryRemote$Proxy.fetchEmployer(Unknown
> > Source)
> >         at JBossServlet.doGet(JBossServlet.java:59)
> >         at 
> > javax.servlet.http.HttpServlet.service(HttpServlet.java:102)
> >         at 
> javax.servlet.http.HttpServlet.service(HttpServlet.java:83)
> >         at
> > com.caucho.server.http.AbstractRequest.service(AbstractRequest
> > .java:452)
> >         at
> > com.caucho.server.http.AbstractRequest.service(AbstractRequest
> > .java:395)
> >         at
> > com.caucho.server.http.PageCache$Entry.service(PageCache.java:256)
> >         at 
> > com.caucho.server.http.PageCache.service(PageCache.java:105)
> >         at 
> > com.caucho.server.http.VirtualHost.service(VirtualHost.java:424)
> >         at com.caucho.server.http.Request.dispatch(Request.java:212)
> >         at
> > com.caucho.server.http.RunnerRequest.handleRequest(RunnerReque
> > st.java:313)
> >         at
> > com.caucho.server.http.RunnerRequest.handleConnection(RunnerRe
> > quest.java:260
> > )
> >         at 
> com.caucho.server.TcpConnection.run(TcpConnection.java:142)
> >         at java.lang.Thread.run(Thread.java:475)
> > 
> > 
> > Any ideas or suggestions????
> > 
> > Thanks
> > 
> > -John
> > 
> 

Reply via email to