cxf-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Dave Kallstrom" <dave.kallst...@gmail.com>
Subject Re: Wsdl Versioning
Date Wed, 19 Sep 2007 02:32:10 GMT
I was wondering about that. I'll give that a shot tomorrow.
Thanks a lot for the help.

On 9/18/07, Liu, Jervis <jliu@iona.com> wrote:
>
> Ok, I see the tricks. MultipleEndpointObserver only steps in when there
> are more than one endpoint registered on the same address.
> MultipleEndpointObserver is the one who initializes the endpoint set. So the
> config below works:
>
>
>     <bean id="aegisBinding" class="
> org.apache.cxf.aegis.databinding.AegisDatabinding"/>
>
>     <bean id="versionBean" class="
> collective.webservices.VersionInterceptor
> "/>
>
>     <bean id="aegisConfig" class="
> org.apache.cxf.aegis.databinding.AegisServiceConfiguration"/>
>
>     <bean id="defaultConfig" class="
> org.apache.cxf.service.factory.DefaultServiceConfiguration"/>
>
>     <bean id="jaxConfig" class="
> org.apache.cxf.jaxws.support.JaxWsServiceConfiguration"/>
>
>     <bean id="serviceBean" class="
> collective.webservices.CollectiveServicesImpl">
>         <property name="assetFactory" ref="assetFactoryBean"></property>
>     </bean>
>
>     <bean id="assetFactoryBean" class="
> collective.webservices.DefaultWSAssetFactory"/>
>
>     <jaxws:endpoint id="CollectiveServices" implementor="#serviceBean"
> address="/CollectiveServices" >
>         <jaxws:serviceFactory>
>             <bean class="
> org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean">
>                 <property name="dataBinding" ref="aegisBinding"/>
>                 <property name="serviceConfigurations">
>                     <list>
>                         <ref bean="jaxConfig"/>
>                         <ref bean="aegisConfig"/>
>                         <ref bean="defaultConfig"/>
>                     </list>
>                 </property>
>             </bean>
>         </jaxws:serviceFactory>
>     </jaxws:endpoint>
>
>     <jaxws:endpoint id="CollectiveServices2" implementor="#serviceBean"
> address="/CollectiveServices" >
>         <jaxws:serviceFactory>
>             <bean class="
> org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean">
>                 <property name="dataBinding" ref="aegisBinding"/>
>                 <property name="serviceConfigurations">
>                     <list>
>                         <ref bean="jaxConfig"/>
>                         <ref bean="aegisConfig"/>
>                         <ref bean="defaultConfig"/>
>                     </list>
>                 </property>
>             </bean>
>         </jaxws:serviceFactory>
>     </jaxws:endpoint>
>
>      <cxf:bus>
>          <cxf:inInterceptors>
>              <ref bean="versionBean"/>
>          </cxf:inInterceptors>
>      </cxf:bus>
>
> > -----Original Message-----
> > From: Dave Kallstrom [mailto:dave.kallstrom@gmail.com]
> > Sent: 2007?9?19? 3:05
> > To: cxf-user@incubator.apache.org
> > Subject: Re: Wsdl Versioning
> >
> >
> > And here is my cxf.xml file
> >
> >     <bean id="aegisBinding" class="
> > org.apache.cxf.aegis.databinding.AegisDatabinding"/>
> >
> >     <bean id="versionBean"
> > class="collective.webservices.VersionInterceptor
> > "/>
> >
> >     <bean id="aegisConfig" class="
> > org.apache.cxf.aegis.databinding.AegisServiceConfiguration"/>
> >
> >     <bean id="defaultConfig" class="
> > org.apache.cxf.service.factory.DefaultServiceConfiguration"/>
> >
> >     <bean id="jaxConfig" class="
> > org.apache.cxf.jaxws.support.JaxWsServiceConfiguration"/>
> >
> >     <bean id="serviceBean" class="
> > collective.webservices.CollectiveServicesImpl">
> >         <property name="assetFactory"
> > ref="assetFactoryBean"></property>
> >     </bean>
> >
> >     <bean id="assetFactoryBean" class="
> > collective.webservices.DefaultWSAssetFactory"/>
> >
> >     <jaxws:endpoint id="CollectiveServices" implementor="#serviceBean"
> > address="/CollectiveServices" >
> >         <jaxws:serviceFactory>
> >             <bean class="
> > org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean">
> >                 <property name="dataBinding" ref="aegisBinding"/>
> >                 <property name="serviceConfigurations">
> >                     <list>
> >                         <ref bean="jaxConfig"/>
> >                         <ref bean="aegisConfig"/>
> >                         <ref bean="defaultConfig"/>
> >                     </list>
> >                 </property>
> >             </bean>
> >         </jaxws:serviceFactory>
> >     </jaxws:endpoint>
> >      <cxf:bus>
> >          <cxf:inInterceptors>
> >              <ref bean="versionBean"/>
> >          </cxf:inInterceptors>
> >      </cxf:bus>
> >
> >
> > On 9/18/07, Dave Kallstrom <dave.kallstrom@gmail.com> wrote:
> > >
> > > It is most likely my as I am not all that smart.
> > > Here is my cxf.xml file and my version interceptor..
> > > I know that my interceptor is being called however the
> > endpoint set is
> > > always null.
> > >
> > > public class VersionInterceptor extends
> > > AbstractEndpointSelectionInterceptor
> > > {
> > >
> > >     public VersionInterceptor()
> > >     {
> > >         super(Phase.POST_STREAM);
> > >         addBefore(StaxInInterceptor.class.getName());
> > >         System.out.println("VersionInterceptor#init()");
> > >     }
> > >
> > >     @Override
> > >     protected Endpoint selectEndpoint(Message message,
> > Set<Endpoint> eps)
> > >     {
> > >         InputStream is = message.getContent(InputStream.class);
> > >         System.out.println ("Message " + message);
> > >         System.out.println("EndpointSet " + eps);
> > > }
> > > }
> > >
> > > On 9/17/07, Liu, Jervis < jliu@iona.com> wrote:
> > > >
> > > > Hi Dave, Firstly you need to make sure you are using SOAP
> > binding, at
> > > > the moment only the SOAP binding is using
> > MultipleEndpointObserver. Then you
> > > > can add your interceptor (that extends from
> > > > AbstractEndpointSelectionInterceptor) into the chain using spring
> > > > configuration similar to the way how logging interceptor
> > is added, see [1].
> > > > Please pay attention to the phase of your interceptor,
> > your interceptor
> > > > needs to be the very first one that being invoked in the
> > inbound interceptor
> > > > chain. You might see AttachmentInInterceptor is invoked
> > before your
> > > > interceptor, but that is ok. I believe using Phase.POST_STREAM and
> > > > addBefore(StaxInterceptor.class.getName()) should give
> > you the right
> > > > phase.
> > > >
> > > >
> > > > [1]. http://cwiki.apache.org/CXF20DOC/configuration.html
> > > >
> > > > Cheers,
> > > > Jervis
> > > >
> > > > > -----Original Message-----
> > > > > From: Dave Kallstrom [mailto:dave.kallstrom@gmail.com]
> > > > > Sent: 2007?9?17? 23:58
> > > > > To: cxf-user@incubator.apache.org
> > > > > Subject: Re: Wsdl Versioning
> > > > >
> > > > >
> > > > > It looks like I might not be able to set this up through
> > > > > cxf.xml? I don't
> > > > > see a way to get the MultipleEndpointObserver from the
> > > > > JaxWsServiceFactoryBean so that I can add a
> > routingInterceptor to it.
> > > > >
> > > > > On 9/15/07, Liu, Jervis <jliu@iona.com > wrote:
> > > > > >
> > > > > > Hi, your interceptor needs to extend from
> > > > > > AbstractEndpointSelectionInterceptor. Also make sure you
> > > > > have registered
> > > > > > your routing interceptor with the MultipleEndpointObserver,
> > > > > please refer to
> > > > > >
> > > > > \trunk\systests\src\test\java\org\apache\cxf\systest\versionin
> > > > > g\Server.java
> > > > > >
> > > > > > Cheers,
> > > > > > Jervis
> > > > > >
> > > > > > > -----Original Message-----
> > > > > > > From: Dave Kallstrom [mailto:dave.kallstrom@gmail.com]
> > > > > > > Sent: 2007?9?15? 2:39
> > > > > > > To: cxf-user@incubator.apache.org
> > > > > > > Subject: Re: Wsdl Versioning
> > > > > > >
> > > > > > >
> > > > > > > Thanks for the response. I tried adding an incoming
> > > > > > > interceptor that extends
> > > > > > > AbstractEndpointInterceptor very similar to the example.
The
> > > > > > > only problem I
> > > > > > > see is
> > > > > > > that the incoming set of endpoints to my selectEndpoint
> > > > > > > methid is always
> > > > > > > null. My no arg constructor is calling
> > > > > > > super(Phase.POST_STREAM) and then
> > > > > > > addBefore(StaxInterceptor.class.getName())
> > > > > > > Am I doing this correctly? Or could it be because I
> > only have
> > > > > > > one endpoint?
> > > > > > >
> > > > > > > On 9/14/07, Jean-François Daune <jfd@cigersoft.be>
wrote:
> > > > > > > >
> > > > > > > >
> > > > > > > > This document is quite interesting about this subject:
> > > > > > > >
> > > > > > > >
> > > > >
> > http://blogs.iona.com/sos/20070410-WSDL-Versioning-Best-Practise.pdf
> > > > > > > >
> > > > > > > > Cheers,
> > > > > > > >
> > > > > > > > J-F
> > > > > > > >
> > > > > > > > -----Message d'origine-----
> > > > > > > > De : Liu, Jervis [mailto: jliu@iona.com]
> > > > > > > > Envoyé : vendredi 14 septembre 2007 3:55
> > > > > > > > À : cxf-user@incubator.apache.org
> > > > > > > > Objet : RE: Wsdl Versioning
> > > > > > > >
> > > > > > > >
> > > > > > > > Hi Dave, we've had a very basic versioning implementation.
> > > > > > > Basically how
> > > > > > > > it works is an interceptor sitting at the beginning
of
> > > > > > > in-bound interceptor
> > > > > > > > chain as a mediator to inspect then dispatch the coming
> > > > > > > request to different
> > > > > > > > endpoints. An example can be found from a system
> > test sample:
> > > > > > > >
> > > > > > >
> > \trunk\systests\src\test\java\org\apache\cxf\systest\versionin
> > > > > > > g. Let me know
> > > > > > > > if you have any further questions. Willem Jiang is
> > > > > > > currently working on
> > > > > > > > adding a much more powerful routing support using
Apache
> > > > > > > Camel, hopefully
> > > > > > > > this will provide a better foundation for implementing
> > > > > > > versioning in CXF
> > > > > > > > once it is done.
> > > > > > > >
> > > > > > > > Cheers,
> > > > > > > > Jervis
> > > > > > > >
> > > > > > > >
> > > > > > > > > -----Original Message-----
> > > > > > > > > From: Dave Kallstrom [mailto:dave.kallstrom@gmail.com]
> > > > > > > > > Sent: 2007?9?14? 2:53
> > > > > > > > > To: cxf-user@incubator.apache.org
> > > > > > > > > Subject: Wsdl Versioning
> > > > > > > > >
> > > > > > > > >
> > > > > > > > > We have recently migrated our web services offering
from
> > > > > > > > > xfire to cxf and
> > > > > > > > > everything is going well. Now the issue is that
we have
> > > > > > > > > several clients who
> > > > > > > > > would like different features and I am
> > wondering how best to
> > > > > > > > > accomplish
> > > > > > > > > this. The changes being requested will likely
> > result in a
> > > > > > > > > different wsdl so
> > > > > > > > > I would like to be able to version our wsdls
> > with different
> > > > > > > > > namespaces. The
> > > > > > > > > question is where do I inspect the wsdl
> > namespace and then
> > > > > > > > > how do I provide
> > > > > > > > > different functionality depending on the
> > incoming namespace?
> > > > > > > > > I am using
> > > > > > > > > aegis bindings and cxf.xml with the cxf servlet.
> > > > > > > > > Any ideas would be appreciated.
> > > > > > > > >
> > > > > > > > > --
> > > > > > > > > Dave Kallstrom
> > > > > > > > >
> > > > > > > >
> > > > > > > > ----------------------------
> > > > > > > > IONA Technologies PLC (registered in Ireland)
> > > > > > > > Registered Number: 171387
> > > > > > > > Registered Address: The IONA Building, Shelbourne
Road,
> > > > > > > Dublin 4, Ireland
> > > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > --
> > > > > > > Dave Kallstrom
> > > > > > >
> > > > > >
> > > > > > ----------------------------
> > > > > > IONA Technologies PLC (registered in Ireland)
> > > > > > Registered Number: 171387
> > > > > > Registered Address: The IONA Building, Shelbourne Road,
> > > > > Dublin 4, Ireland
> > > > > >
> > > > >
> > > > >
> > > > >
> > > > > --
> > > > > Dave Kallstrom
> > > > >
> > > >
> > > > ----------------------------
> > > > IONA Technologies PLC (registered in Ireland)
> > > > Registered Number: 171387
> > > > Registered Address: The IONA Building, Shelbourne Road, Dublin 4,
> > > > Ireland
> > > >
> > >
> > >
> > >
> > > --
> > > Dave Kallstrom
> >
> >
> >
> >
> > --
> > Dave Kallstrom
> >
>
> ----------------------------
> IONA Technologies PLC (registered in Ireland)
> Registered Number: 171387
> Registered Address: The IONA Building, Shelbourne Road, Dublin 4, Ireland
>



-- 
Dave Kallstrom

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message