I haven't done it in a while but on older versions you set it like this
<jaxws:endpoint id="NotificationProducer"
implementor="#notificationProducerImpl"
address="${wcs.subscribe.httpEndpoint}"
wsdlLocation="classpath:NNEW-SubscriptionManagement.wsdl"
>
<jaxws:properties></jaxws:properties>
<jaxws:features>
<wsa:addressing xmlns:wsa="http://cxf.apache.org/ws/addressing"/>
</jaxws:features>
<jaxws:dataBinding>
<ref component-id="jaxb"/>
</jaxws:dataBinding>
<jaxws:inFaultInterceptors>
<bean class="org.apache.cxf.interceptor.LoggingInInterceptor"/>
</jaxws:inFaultInterceptors>
</jaxws:endpoint>
Where jaxb is
<bean class="aaa.bbb.ccc.jaxbcontext.engine.AAAJaxbContext" id="jaxb">
<property name="engineContext" ref="globalContext"/>
</bean>
And that bean extends JAXBDataBinding
On Apr 13, 2013, at 9:50 AM, Avner Levy <[email protected]> wrote:
> Thanks Dan.
> I've tried the following configuration:
> http://stackoverflow.com/questions/15989583/how-to-configure-cxf-to-share-jaxb-context-between-services
> But obviously I'm doing something very wrong.
> Any help will be greatly appreciated (I'm trying to solve this one for few
> months).
> Thanks in advance,
> Avner
>
> * I'm working with CXF 2.7.4
>
> -----Original Message-----
> From: Daniel Kulp [mailto:[email protected]]
> Sent: Monday, January 28, 2013 9:02 PM
> To: [email protected]
> Subject: Re: Reuse JAXB context in jaxws
>
>
> On Jan 27, 2013, at 3:37 AM, Avner Levy <[email protected]> wrote:
>
>> In the past I've posted a question about reusing jaxb context between
>> services.
>> Daniel Kulp suggested configure a data binding object in the following form
>> (for the specific scenario):
>>
>> <jaxws:endpoint xmlns:tns="urn:ihe:iti:xcpd:2009" .......>
>> <jaxws:dataBinding>
>> <bean class="org.apache.cxf.jaxb.JAXBDataBinding" >
>> <constructor-arg index="0" ref="globalJAXBContextBean"/>
>> </bean>
>> </jaxws:dataBinding>
>>
>> I've tried to do the same through code:
>>
>>
>> jaxwsEndpoint.getProperties().put("org.apache.cxf.jaxb.JAXBDataBinding",
>> jaxbDataBinding); before calling:
>> jaxwsEndpoint.publish(URL);
>
> The data binding isn't a property in the jaxws:endpoint, otherwise it would
> be set in a <jaxws:properties> type element.
>
> To do this, you would need to use the JaxWsServerFactoryBean to create a
> server instead of the Endpoint.publish methods. The server factory has a
> setDataBinding method on it that can be used.
>
> Dan
>
>
>
>>
>> And the service starts very fast as if they are reusing the context in the
>> jaxbDataBinding object passed.
>> But when connecting later I've discovered that the service context contains
>> only 50 classes while the original contained 700.
>> Any idea how come I finish with a different context?
>> Thanks in advance,
>> Avner
>>
>
> --
> Daniel Kulp
> [email protected] - http://dankulp.com/blog Talend Community Coder -
> http://coders.talend.com
>
>
> Email secured by Check Point