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(StatelessSessionContainer.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(J2eeDeployer.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(J2eeDeployer.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