Hello Jonas team,

 

Recently we went through the task of porting our application from Jonas EJB server 2.3 to Lutris application server (with embedded Jonas 2.2.7) and during this process we have discovered few issues which might be of interest to you

 

  1. Serializable methods arguments

If you are using JEREMIE as a transport protocol, Jonas allows you to declare remote interface methods which takes arguments which are not Serializable objects:

e.g. you can define methods save(Enumeration enumElements). Enumeration is not serializable. GenIC doesn't complain and compile this method call even it is incorrect and if you run everything in one VM (as we do) you won't detect it (we found out the hard way 8-).

 

      2. transaction attribute in deployment descriptor

            In Jonas you can declare this both ways:

      <container-transaction>

         <trans-attribute>Mandatory</trans-attribute>

         <method>

            <ejb-name>com.compuware.aqp.beans.test.Test</ejb-name>

            <method-name>setMode</method-name>

         </method>

      </container-transaction>

 

and

 

      <container-transaction>

         <method>

            <ejb-name>com.compuware.aqp.beans.test.Test</ejb-name>

            <method-name>setMode</method-name>

         </method>

         <trans-attribute>Mandatory</trans-attribute>

      </container-transaction>

 

            In Lutris, only the second is valid. I haven't verified it, but their answer was that only the second is valid according to DTD

 

  1. data source

In Jonas you can lookup data source directly from JNDI names space using code

m_dsDataSource = (DataSource)ctcContext.lookup("mydatasource");

 

In Lutris (and I guess this is more compliant with EJB spec) you have to use (but this is works also in Jonas0

m_dsDataSource = (DataSource)ctcContext.lookup("java:comp/env/jdbc/mydatasource");

 

Hope you find this helpful,

 

Miro Halas

Reply via email to