You may be hitting a circular bean problem. Creating the bus requires the
feature which requires the client which requires a bus. Not really sure
though. Any chance you could package up a small sample and send it along to
me to dig into?
Dan
On Friday 05 September 2008 8:21:13 am Wulff, Oliver wrote:
> Hi there
>
> I develop a custom feature which registers an OutInterceptor which invokes
> another webservice within the handleMessage method. The idea is to use
> injection and configure the jaxws:client bean in the spring configuration.
>
> There are two options:
> 1) set/get Method in Feature class
> 2) Java Resource annotation in Feature class
>
> Both doesn't work for me.
>
> option 1:
> ---------
>
> public class MyFeature...
> ....
> public EncryptionInterfaceV10 getEncryptionProxy() {
> return encryptionProxy;
> }
>
> public void setEncryptionProxy(EncryptionInterfaceV10 encryptionProxy) {
> this.encryptionProxy = encryptionProxy;
> }
> ...
>
> Here the configuration on the client side:
> <cxf:bus>
> <cxf:features>
> <ref bean="MyFeature"/>
> </cxf:features>
> </cxf:bus>
>
> <jaxws:client id="encryptionProxyId"
> xmlns:ns1="...."
> serviceClass="..."
> wsdlLocation="...."
> serviceName="..."
> endpointName="...."
> address="..." />
>
> <bean id="MyFeature" class="MyFeature">
> <property name="encryptionProxy">
> <ref bean="encryptionProxyId" />
> </property>
> </bean>
>
> When I run the cxf client, I get the following exception:
>
> 05.09.2008 13:48:06 org.apache.cxf.bus.spring.SpringBusFactory createBus
> WARNUNG: Failed to create application context.
> org.springframework.beans.factory.BeanCreationException: Error creating
> bean with name 'cxf': Cannot resolve reference to bean 'PMPFeature' while
> setting bean property 'features' with key [0]; nested exception is
> org.springframework.beans.factory.BeanCreationException: Error creating
> bean with name 'PMPFeature' defined in class path resource [client.xml]:
> Cannot resolve reference to bean 'encryptionProxyId' while setting bean
> property 'encryptionProxy'; nested exception is
> org.springframework.beans.factory.BeanCreationException: Error creating
> bean with name 'encryptionProxyId': Instantiation of bean failed; nested
> exception is
> org.springframework.beans.factory.BeanDefinitionStoreException: Factory
> method [public java.lang.Object
> org.apache.cxf.frontend.ClientProxyFactoryBean.create()] threw exception;
> nested exception is java.lang.NullPointerException Caused by:
> org.springframework.beans.factory.BeanCreationException: Error creating
> bean with name 'PMPFeature' defined in class path resource [client.xml]:
> Cannot resolve reference to bean 'encryptionProxyId' while setting bean
> property 'encryptionProxy'; nested exception is
> org.springframework.beans.factory.BeanCreationException: Error creating
> bean with name 'encryptionProxyId': Instantiation of bean failed; nested
> exception is
> org.springframework.beans.factory.BeanDefinitionStoreException: Factory
> method [public java.lang.Object
> org.apache.cxf.frontend.ClientProxyFactoryBean.create()] threw exception;
> nested exception is java.lang.NullPointerException Caused by:
> org.springframework.beans.factory.BeanCreationException: Error creating
> bean with name 'encryptionProxyId': Instantiation of bean failed; nested
> exception is
> org.springframework.beans.factory.BeanDefinitionStoreException: Factory
> method [public java.lang.Object
> org.apache.cxf.frontend.ClientProxyFactoryBean.create()] threw exception;
> nested exception is java.lang.NullPointerException Caused by:
> org.springframework.beans.factory.BeanDefinitionStoreException: Factory
> method [public java.lang.Object
> org.apache.cxf.frontend.ClientProxyFactoryBean.create()] threw exception;
> nested exception is java.lang.NullPointerException Caused by:
> java.lang.NullPointerException
>
> Option 2:
> ---------
>
> public class MyFeature...
> ...
> @Resource(name = "encryptionProxyId")
> private EncryptionInterfaceV10 encryptionProxy;
> ...
>
> The proxy instance is null. It looks like that CXF doesn't try to
> initialize it at all.
>
>
> I don't understand why injection doesn't work in this situation whereas it
> works fine for a jaxws:endpoint bean.
>
> Any ideas?
>
> Thanks
> Oliver
--
Daniel Kulp
[EMAIL PROTECTED]
http://www.dankulp.com/blog