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]

Reply via email to