You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@cxf.apache.org by Dan Diephouse <da...@envoisolutions.com> on 2006/10/03 20:19:00 UTC
CXF Geronimo Integration
David and I chatted a little bit online this weekend as we tried to
bring each other up to speed on the respective areas so we could have a
meaningful conversation about this. [1] I thought I'd take a little bit
to summarize.
As I understand it, we would need to integrate CXF at two points. First,
the deployment. We need to support JSR 109 deployment descriptors.
Second, we need to support invoking EJBs.
For deployment, we can wire in JSR 109 descriptors into the service
construction. In CXF we have a Service, which holds a WSDL like service
model and information about CXF can invoke the server (like databinding
info, interceptors/handlers, etc). Generally you create a Service from a
ServiceFactory [2][3]. The base service factory
(ReflectionServiceFactoryBean) can actually construct the service from
WSDL using the WSDLServiceFactory or from introspection. During this
construction, ServiceConfigurations [4] can provide values for the
service. There can be many of these. For instance, lets say we want to
determine the namespace of the service. We can have a
JaxWsServiceConfiguration which takes the namespace from the @WebService
attribute. If there is no specified namespace, the service factory will
move to the DefaultServiceConfiguration which will create a namespace
from the package name. With that all said - its easy to envision how a
Jsr109ServiceConfiguration could be created to override values in the
JAX-WS attributes. I still don't know enough about JSR109 to say if this
will be sufficient though - It would be good to come up with a list of
areas that JSR 109 affects.
The second area - EJB invocation - is a bit simpler. In CXF we have the
concept of Invokers [5][6]. Invokers allow you to control how your
object is invoked. You can supply your own object, scopes, etc. XFire
had an EJB invoker [7] which I think is similar to what needs to happen
here (although I know jack about EJBs, so I could be wrong). While the
Invoker interface in CXF is slightly different, all the same information
is there.
Are there other integration areas that I missed here? Anyone able to
provide a more comprehensive view of what exactly we need to do in terms
of JSR 109?
Cheers,
- Dan
1. http://dev.rectang.com/logs/codehaus/%23cxf/20061001.html
2.
http://fisheye3.cenqua.com/browse/celtixfire/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/service/factory/ReflectionServiceFactoryBean.java?r=450267#l287
3.
http://fisheye3.cenqua.com/browse/celtixfire/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/support/JaxWsServiceFactoryBean.java?r=450397
4.
http://fisheye3.cenqua.com/browse/celtixfire/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/service/factory/AbstractServiceConfiguration.java?r=450267
5.
http://fisheye3.cenqua.com/browse/~raw,r=437862/celtixfire/trunk/api/src/main/java/org/apache/cxf/service/invoker/Invoker.java
6.
http://fisheye3.cenqua.com/browse/celtixfire/trunk/rt/core/src/main/java/org/apache/cxf/service/invoker/AbstractInvoker.java?r=447027
7. http://xfire.codehaus.org/Invokers
David Jencks wrote:
> I'm starting to look into jee5 webservices integration in geronimo.
> So far I've got as far as locating some of the specs and starting to
> read them :-). If anyone wants to help or take over aspects of this
> that would be great!
>
> Unfortunately I haven't been able to keep up with the dev lists for
> either axis or cxf so I'm not sure whether anyone has thought about
> this before nor how much of the appropriate specs are implemented
> already by either project. I have been pointed to a cxf geronimo
> builder, but haven't determined how out of date it is, as there have
> been quite a few builder changes in geronimo since the builder was
> written.
>
> Thanks!
> david jencks
>
--
Dan Diephouse
Envoi Solutions
http://envoisolutions.com
http://netzooid.com/blog
Re: CXF Geronimo Integration
Posted by Conrad O'Dea <co...@iona.com>.
Hi Dan,
some comments below...
On Tue, 2006-10-03 at 14:19 -0400, Dan Diephouse wrote:
> As I understand it, we would need to integrate CXF at two points. First,
> the deployment. We need to support JSR 109 deployment descriptors.
> Second, we need to support invoking EJBs.
>
> For deployment, we can wire in JSR 109 descriptors into the service
> construction. In CXF we have a Service, which holds a WSDL like service
> model and information about CXF can invoke the server (like databinding
> info, interceptors/handlers, etc). Generally you create a Service from a
> ServiceFactory [2][3]. The base service factory
> (ReflectionServiceFactoryBean) can actually construct the service from
> WSDL using the WSDLServiceFactory or from introspection. During this
> construction, ServiceConfigurations [4] can provide values for the
> service. There can be many of these. For instance, lets say we want to
> determine the namespace of the service. We can have a
> JaxWsServiceConfiguration which takes the namespace from the @WebService
> attribute. If there is no specified namespace, the service factory will
> move to the DefaultServiceConfiguration which will create a namespace
> from the package name. With that all said - its easy to envision how a
> Jsr109ServiceConfiguration could be created to override values in the
> JAX-WS attributes. I still don't know enough about JSR109 to say if this
> will be sufficient though - It would be good to come up with a list of
> areas that JSR 109 affects.
I'm not overly familiar with CXF's service model stuff but this sounds
reasonable.
With JEE5 and Web Services 1.2, deployment descriptors optional so the
CXF web service builder must be able to introspect the deployment
archive and find suitably annotated classes.
> The second area - EJB invocation - is a bit simpler. In CXF we have the
> concept of Invokers [5][6]. Invokers allow you to control how your
> object is invoked. You can supply your own object, scopes, etc. XFire
> had an EJB invoker [7] which I think is similar to what needs to happen
> here (although I know jack about EJBs, so I could be wrong). While the
> Invoker interface in CXF is slightly different, all the same information
> is there.
I did some work with the Geronimo Web Service container and Celtix 1.0,
although that was with a WS endpoint implemented using a servlet. For
the servlet case, the integration was done as a custom Celtix transport
that sat atop the Geronimo web service container. The transport was G's
but the bindings and dispatch were handled by Celtix.
Currently with Geronimo, are EJBs invoked on through the same Web
Service Container? If so, then CXF may need to adapt to the WS
container as well as using the EJB invoker. If not, is the plan for CXF
to supply the whole WS stack, including transport?
And not forgetting support servlet endpoints.
> Are there other integration areas that I missed here? Anyone able to
> provide a more comprehensive view of what exactly we need to do in terms
> of JSR 109?
On the client side, injection of @WebServiceRef annotations need to be
supported. I guess this would come under some general resource
injection framework for Geronimo, but CXF will need to be able to hook
into it to provide proxies for the referenced services
On the builder side of thing, I'll dust off the old Celtix one and see
how out of date it is.
rgds
Conrad
> Cheers,
> - Dan
>
>
> 1. http://dev.rectang.com/logs/codehaus/%23cxf/20061001.html
> 2.
> http://fisheye3.cenqua.com/browse/celtixfire/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/service/factory/ReflectionServiceFactoryBean.java?r=450267#l287
> 3.
> http://fisheye3.cenqua.com/browse/celtixfire/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/support/JaxWsServiceFactoryBean.java?r=450397
> 4.
> http://fisheye3.cenqua.com/browse/celtixfire/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/service/factory/AbstractServiceConfiguration.java?r=450267
> 5.
> http://fisheye3.cenqua.com/browse/~raw,r=437862/celtixfire/trunk/api/src/main/java/org/apache/cxf/service/invoker/Invoker.java
> 6.
> http://fisheye3.cenqua.com/browse/celtixfire/trunk/rt/core/src/main/java/org/apache/cxf/service/invoker/AbstractInvoker.java?r=447027
> 7. http://xfire.codehaus.org/Invokers
>
>
> David Jencks wrote:
> > I'm starting to look into jee5 webservices integration in geronimo.
> > So far I've got as far as locating some of the specs and starting to
> > read them :-). If anyone wants to help or take over aspects of this
> > that would be great!
> >
> > Unfortunately I haven't been able to keep up with the dev lists for
> > either axis or cxf so I'm not sure whether anyone has thought about
> > this before nor how much of the appropriate specs are implemented
> > already by either project. I have been pointed to a cxf geronimo
> > builder, but haven't determined how out of date it is, as there have
> > been quite a few builder changes in geronimo since the builder was
> > written.
> >
> > Thanks!
> > david jencks
> >
>
>