That did it. Thanks again.

On 9/18/07, Dave Kallstrom <[EMAIL PROTECTED]> wrote:
>
> I was wondering about that. I'll give that a shot tomorrow.
> Thanks a lot for the help.
>
> On 9/18/07, Liu, Jervis < [EMAIL PROTECTED]> 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:[EMAIL PROTECTED]
> > > Sent: 2007?9?19? 3:05
> > > To: [email protected]
> > > 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 <[EMAIL PROTECTED]> 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 < [EMAIL PROTECTED]> 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: [EMAIL PROTECTED]
> > > > > > Sent: 2007?9?17? 23:58
> > > > > > To: [email protected]
> > > > > > 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 <[EMAIL PROTECTED] > 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:[EMAIL PROTECTED]
> > > > > > > > Sent: 2007?9?15? 2:39
> > > > > > > > To: [email protected]
> > > > > > > > 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 <[EMAIL PROTECTED]> 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: [EMAIL PROTECTED] ]
> > > > > > > > > Envoyé : vendredi 14 septembre 2007 3:55
> > > > > > > > > À : [email protected]
> > > > > > > > > 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: [EMAIL PROTECTED]
> > > > > > > > > > Sent: 2007?9?14? 2:53
> > > > > > > > > > To: [email protected]
> > > > > > > > > > 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




-- 
Dave Kallstrom

Reply via email to