David Voets created CXF-5563:
--------------------------------

             Summary: Setting the attribute 'namespace' of the 
{http://cxf.apache.org/policy}policies configuration element causes a 
NotWritablePropertyException to be thrown
                 Key: CXF-5563
                 URL: https://issues.apache.org/jira/browse/CXF-5563
             Project: CXF
          Issue Type: Bug
          Components: Configuration
    Affects Versions: 2.7.8
            Reporter: David Voets
            Priority: Minor


According to https://cxf.apache.org/docs/wspconfiguration.html you can specify 
the ws-policy namespace to be used when configuring the Policies feature using 
the namespace attribute.

However when I do this:
{code}
<beans xmlns="http://www.springframework.org/schema/beans";
        xmlns:cxf="http://cxf.apache.org/core"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
        xmlns:sec="http://cxf.apache.org/configuration/security"; 
xmlns:http="http://cxf.apache.org/transports/http/configuration";
        xmlns:httpj="http://cxf.apache.org/transports/http-jetty/configuration";
        xmlns:jaxws="http://cxf.apache.org/jaxws"; 
xmlns:p="http://cxf.apache.org/policy";
        xsi:schemaLocation="
            http://cxf.apache.org/core
            http://cxf.apache.org/schemas/core.xsd 
            http://cxf.apache.org/configuration/security                      
            http://cxf.apache.org/configuration/schemas/security.xsd
            http://cxf.apache.org/jaxws
            http://cxf.apache.org/schemas/jaxws.xsd
            http://cxf.apache.org/transports/http/configuration
            http://cxf.apache.org/transports/http/schemas/http-conf.xsd
            http://cxf.apache.org/transports/http-jetty/configuration
            http://cxf.apache.org/transports/http-jetty/schemas/http-jetty.xsd
            http://www.springframework.org/schema/beans
            http://www.springframework.org/schema/beans/spring-beans.xsd
            http://cxf.apache.org/policy 
            http://cxf.apache.org/schemas/policy.xsd";>



        <bean id="abstractLoggingInterceptor" abstract="true">
                <property name="prettyLogging" value="true" />
        </bean>
        <bean id="loggingInInterceptor" 
class="org.apache.cxf.interceptor.LoggingInInterceptor"
                parent="abstractLoggingInterceptor" />
        <bean id="loggingOutInterceptor" 
class="org.apache.cxf.interceptor.LoggingOutInterceptor"
                parent="abstractLoggingInterceptor" />

        <cxf:bus>
                <cxf:inInterceptors>
                        <ref bean="loggingInInterceptor" />
                </cxf:inInterceptors>
                <cxf:outInterceptors>
                        <ref bean="loggingOutInterceptor" />
                </cxf:outInterceptors>
                <cxf:outFaultInterceptors>
                        <ref bean="loggingOutInterceptor" />
                </cxf:outFaultInterceptors>
                <cxf:inFaultInterceptors>
                        <ref bean="loggingInInterceptor" />
                </cxf:inFaultInterceptors>
                <cxf:features>
                        <p:policies ignoreUnknownAssertions="true" 
namespace="http://schemas.xmlsoap.org/ws/2004/09/policy"; />
                </cxf:features>
        </cxf:bus>



        

</beans>
{code}

the following exception is thrown:
{code}
Exception in thread "main" java.lang.RuntimeException: 
org.springframework.beans.factory.BeanCreationException: Error creating bean 
with name 'cxf' defined in class path resource [META-INF/cxf/cxf.xml]: Cannot 
create inner bean 'p:policies#43191701' of type 
[org.apache.cxf.ws.policy.WSPolicyFeature] while setting bean property 
'features' with key [0]; nested exception is 
org.springframework.beans.factory.BeanCreationException: Error creating bean 
with name 'p:policies#43191701': Error setting property values; nested 
exception is org.springframework.beans.NotWritablePropertyException: Invalid 
property 'namespace' of bean class [org.apache.cxf.ws.policy.WSPolicyFeature]: 
Bean property 'namespace' is not writable or has an invalid setter method. Does 
the parameter type of the setter match the return type of the getter?
        at 
org.apache.cxf.bus.spring.SpringBusFactory.createBus(SpringBusFactory.java:151)
        at 
org.apache.cxf.bus.spring.SpringBusFactory.createBus(SpringBusFactory.java:124)
        at 
org.apache.cxf.bus.spring.SpringBusFactory.createBus(SpringBusFactory.java:94)

Caused by: org.springframework.beans.factory.BeanCreationException: Error 
creating bean with name 'cxf' defined in class path resource 
[META-INF/cxf/cxf.xml]: Cannot create inner bean 'p:policies#43191701' of type 
[org.apache.cxf.ws.policy.WSPolicyFeature] while setting bean property 
'features' with key [0]; nested exception is 
org.springframework.beans.factory.BeanCreationException: Error creating bean 
with name 'p:policies#43191701': Error setting property values; nested 
exception is org.springframework.beans.NotWritablePropertyException: Invalid 
property 'namespace' of bean class [org.apache.cxf.ws.policy.WSPolicyFeature]: 
Bean property 'namespace' is not writable or has an invalid setter method. Does 
the parameter type of the setter match the return type of the getter?
        at 
org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveInnerBean(BeanDefinitionValueResolver.java:281)
        at 
org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:120)
        at 
org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveManagedList(BeanDefinitionValueResolver.java:353)
        at 
org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:153)
        at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1327)
        at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1085)
        at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:516)
        at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:455)
        at 
org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:293)
        at 
org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
        at 
org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:290)
        at 
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:192)
        at 
org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:585)
        at 
org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:895)
        at 
org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:425)
        at 
org.apache.cxf.bus.spring.BusApplicationContext$1.run(BusApplicationContext.java:107)
        at 
org.apache.cxf.bus.spring.BusApplicationContext$1.run(BusApplicationContext.java:105)
        at java.security.AccessController.doPrivileged(Native Method)
        at 
org.apache.cxf.bus.spring.BusApplicationContext.<init>(BusApplicationContext.java:105)
        at 
org.apache.cxf.bus.spring.SpringBusFactory.createApplicationContext(SpringBusFactory.java:157)
        at 
org.apache.cxf.bus.spring.SpringBusFactory.createBus(SpringBusFactory.java:148)
        ... 3 more
Caused by: org.springframework.beans.factory.BeanCreationException: Error 
creating bean with name 'p:policies#43191701': Error setting property values; 
nested exception is org.springframework.beans.NotWritablePropertyException: 
Invalid property 'namespace' of bean class 
[org.apache.cxf.ws.policy.WSPolicyFeature]: Bean property 'namespace' is not 
writable or has an invalid setter method. Does the parameter type of the setter 
match the return type of the getter?
        at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1363)
        at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1085)
        at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:516)
        at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:455)
        at 
org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveInnerBean(BeanDefinitionValueResolver.java:270)
        ... 23 more
Caused by: org.springframework.beans.NotWritablePropertyException: Invalid 
property 'namespace' of bean class [org.apache.cxf.ws.policy.WSPolicyFeature]: 
Bean property 'namespace' is not writable or has an invalid setter method. Does 
the parameter type of the setter match the return type of the getter?
        at 
org.springframework.beans.BeanWrapperImpl.setPropertyValue(BeanWrapperImpl.java:1052)
        at 
org.springframework.beans.BeanWrapperImpl.setPropertyValue(BeanWrapperImpl.java:921)
        at 
org.springframework.beans.AbstractPropertyAccessor.setPropertyValues(AbstractPropertyAccessor.java:76)
        at 
org.springframework.beans.AbstractPropertyAccessor.setPropertyValues(AbstractPropertyAccessor.java:58)
        at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1360)
        ... 27 more
{code}



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)

Reply via email to