|
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
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
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 |
