You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@cxf.apache.org by Jean-Baptiste Onofré <jb...@nanthrax.net> on 2008/09/22 16:51:56 UTC

WSDL dynamic generation based on EJB remote interface

Hi all,

I use CXF in ServiceMix to perform a proxy to my EJBs.

Currently, I have create a delegator class which looks like this :

package net.nanthrax.smx.sample:

import javax.jws.WebService;

import net.nanthrax.ejb.MyServiceSession;

@WebService(serviceName = "MyServiceEJBService", targetNamespace = "http://www.nanthrax.net/smx/my-service-ejb-service")
public class MyServiceEJBDelegator {

  private MyServiceSession proxy;

  public void setProxy(MyServiceSession proxy) {
    this.proxy = proxy;
  }

  // delegate methods to the EJB side
  public String echo(String message) {
    return proxy.echo(message);
   }

   // same for all EJB methods

}

This solution works (I inject my EJB proxy using Spring SimpleRemoteStatelessSessionProxyFactoryBean bean).

I had to create the delegator bean only to add the @WebService annotation. The problem is that this is very static : when the EJB change (for exemple adding new method, changing a method signature, etc)
the delegator class must be updated to take care of this change. Of course, my delegator can implements the EJB interface but the problem is quite the same.

Is it possible to use directly the EJB interface (MyServiceSession in my case) by CXF to dynamically generate the WSDL ?

Thanks,
Regards
-- 
Jean-Baptiste Onofré
jb@nanthrax.net
BuildProcess/AutoDeploy Project Leader
http://buildprocess.sourceforge.net
 


Re: WSDL dynamic generation based on EJB remote interface

Posted by Daniel Kulp <dk...@apache.org>.
Using the simple frontend and the factories, this should be doable.   You 
would definitely need to fill in all the details on the factory such as the 
service interface, namespaces, service/endpoint names, etc....   

Dan


On Monday 22 September 2008 10:51:56 am Jean-Baptiste Onofré wrote:
> Hi all,
>
> I use CXF in ServiceMix to perform a proxy to my EJBs.
>
> Currently, I have create a delegator class which looks like this :
>
> package net.nanthrax.smx.sample:
>
> import javax.jws.WebService;
>
> import net.nanthrax.ejb.MyServiceSession;
>
> @WebService(serviceName = "MyServiceEJBService", targetNamespace =
> "http://www.nanthrax.net/smx/my-service-ejb-service") public class
> MyServiceEJBDelegator {
>
>   private MyServiceSession proxy;
>
>   public void setProxy(MyServiceSession proxy) {
>     this.proxy = proxy;
>   }
>
>   // delegate methods to the EJB side
>   public String echo(String message) {
>     return proxy.echo(message);
>    }
>
>    // same for all EJB methods
>
> }
>
> This solution works (I inject my EJB proxy using Spring
> SimpleRemoteStatelessSessionProxyFactoryBean bean).
>
> I had to create the delegator bean only to add the @WebService annotation.
> The problem is that this is very static : when the EJB change (for exemple
> adding new method, changing a method signature, etc) the delegator class
> must be updated to take care of this change. Of course, my delegator can
> implements the EJB interface but the problem is quite the same.
>
> Is it possible to use directly the EJB interface (MyServiceSession in my
> case) by CXF to dynamically generate the WSDL ?
>
> Thanks,
> Regards



-- 
Daniel Kulp
dkulp@apache.org
http://www.dankulp.com/blog