Well, so far in the developement of axis2 best as I can tell, for good reasons, there has not been a pragmatic discussion of Axis2 and pure EJB services, ie, a ServiceClass implementing SessionBean.
I'd like to think what I was trying to imply was that currently (A) no one has a working case and documentation supporting it, (B) there is a corner case demand for it, and (C) I have an itch to scatch to support clients who simply want it. So far Axis2 has no 'code generator to create these proxy classes' . So how do we get there? Perhaps with JSR-109 - "the 109 specification now also supports JAX-WS which is a follow-on specification to JAX-RPC" - and the JAX-WS support in Axis2 recently, maybe that's the way to go. Comments? Robert http://www.braziloutsource.com/ On 6/18/06, Dennis Sosnoski <[EMAIL PROTECTED] classesosnoski.com> wrote:
Okay, so I guess what you're after is automatic deployment of EJBs as web services. The alternative of making regular calls to the actual EJB just involves using a proxy class which handles the EJB lookup and forwards all calls on to the EJB. It should be fairly easy to just write a code generator to create these proxy classes. Even without automatic proxy generation it seems extreme to say that Axis2 is not an option, though. - Dennis robert lazarski wrote: > > > On 6/16/06, *Dennis Sosnoski* <[EMAIL PROTECTED] > <mailto:[EMAIL PROTECTED]>> wrote: > > robert lazarski wrote: > > <snip> > > Currently I'm integrating an EJB app with Axis2 - thankfully as any > > tomcat / servlet container web layer would. However, I came very > close > > to having to implement these services as EJB, which would have > > required either JAX-WS or Axis 1.x , as Axis2 just isn't an option. > > > > > I'm puzzled by this statement, Robert. Why is Axis2 not an option? You > just use the EJB interfaces to access the service classes, same as > any > other application using the EJBs. > > - Dennis > > > > > I'm not 100% sure we are on the same page, so allow me to give an > example - in JBoss 4.0.x using JSWDP databinding and axis 1.x - a > strange hybrid but that's what JBoss supports: > > <enterprise-beans> > <session> > <ejb-name>MyWebService</ejb-name> > <ejb-class>org.MyWebService</ejb-class> > <session-type>Stateless</session-type> > <ejb-ref> > <!-- SoapSession is a stateful session bean --> > <ejb-ref-name>ejb/SoapSession</ejb-ref-name> > <ejb-ref-type>Session</ejb-ref-type> > <home>org.SoapSessionHome</home> > <remote>org.SoapSession</remote> > </ejb-ref> > ... > <session> > </enterprise-beans> > > import javax.ejb.SessionBean; > import javax.ejb.SessionContext; > > public class MyWebService implements SessionBean { > > private SessionContext ctx; > > public ReturnWeb_Login web_Login( > String user_name, > String user_password) throws RemoteException { > > Integer successErrorCode = Messages_Codes.FAILURE; > String soap_session_id = null; > Connection con = null; > > try { > con = getConnection(); > successErrorCode = CallCentreDAO.login(con,orner > call_centre_id, > user_name, user_password, this); > > if(Messages_Codes.SUCCESS == successErrorCode) { > SoapSession soapSession = > serviceLocator.getSoapSessionHome().create(); > soapSession.setTimestamp( > Calendar.getInstance() ); > soap_session_id = > serviceLocator.getSoapSession_Id(soapSession); > > } else { > successErrorCode = > Messages_Codes.AuthorizationFailed; > } > } catch(Exception ex) { > ctx.setRollbackOnly(); > successErrorCode = Messages_Codes.FAILURE; > } finally { > if(con!=null) > try{con.close();}catch(SQLException ex){}; > } > > return new ReturnWeb_Login ( > Messages_Codes.get(successErrorCode), successErrorCode.intValue(), > soap_session_id, user_name); > } > > So what this does is allow EJB transactions in a web service - notice > ctx.setRollbackOnly() , and a soap session managed by the EJB > container via a stateful session bean. > > OK, so why can you _not_ do this with Axis2 ? > > 1) JBoss modified axis 1.x to support ejb transactions: > > http://wiki.jboss.org/wiki/Wiki.jsp?page=WebServiceStacks > > JBossWS4EE <http://wiki.jboss.org/wiki/Wiki.jsp?page=JBossWS4EE> is > J2EE-1.4 compliant and available starting from jboss-4.0.0. It relies > on a modified version of axis-1.1. This stack should no longer be used. > > 2) JBoss now is pushing JBossWS, based seemingly largely - but not > entirely - on JAX-WS. Its spec support and completion status are here: > > http://wiki.jboss.org/wiki/Wiki.jsp?page=JBossWSSpecStatus > > 3) Most importantly: "Any stack not listed above is *not supported*." > > So just to be clear: You can use Axis2 with EJB just fine as long as > you do not want to have the ServiceClass implement SessionBean - this > is at least true for JBoss. I think everyone agrees you can invoke an > EJB anywhere anytime in any container as any web layer class would. > > Now it would be interesting to try to implement the scenerio above > with JBoss and Axis2 since the sources are open. However, (A) It'd be > a labor of love and I just don't see feel it (B) JBoss is GPL and > axis2 is Apache licenesed of course, and (C) It'd be unsupported by > JBoss and even if it did work, the sanity of such a scenerio is > rightfully questioned by sanjiva and many others. > > Cheers, > Robert > http://www.braziloutsource.com/ --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]