If I try the alternative approach from the userguide:

<?xml version="1.0" encoding="UTF-8"?>
<!-- CXF configuration file -->
<beans xmlns="http://www.springframework.org/schema/beans"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
        xmlns:http="http://cxf.apache.org/transports/http/configuration"; 
xmlns:cxf="http://cxf.apache.org/core"; 
xmlns:p="http://cxf.apache.org/policy-config";
        xsi:schemaLocation="http://cxf.apache.org/transports/http/configuration 
http://cxf.apache.org/schemas/configuration/http-conf.xsd 
http://www.springframework.org/schema/beans 
http://www.springframework.org/schema/beans/spring-beans.xsd 
http://cxf.apache.org/core http://cxf.apache.org/schemas/core.xsd 
http://cxf.apache.org/policy-config http://cxf.apache.org/policy-config.xsd";>

        <cxf:bus>
                <cxf:features>
                        <p:policies ignoreUnknownAssertions="true" />
                </cxf:features>
        </cxf:bus>
</beans>

I get the following exception about an unknown namespace handler:

     [java] Caused by: 
org.springframework.beans.factory.parsing.BeanDefinitionParsingException: 
Configuration problem: Unable to locate NamespaceHandler for namespace 
[http://cxf.apache.org/policy-config]
     [java] Offending resource: class path resource [cxf.xml]
     [java]     at 
org.springframework.beans.factory.parsing.FailFastProblemReporter.error(FailFastProblemReporter.java:68)
     [java]     at 
org.springframework.beans.factory.parsing.ReaderContext.error(ReaderContext.java:85)
     [java]     at 
org.springframework.beans.factory.parsing.ReaderContext.error(ReaderContext.java:80)
     [java]     at 
org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.error(BeanDefinitionParserDelegate.java:261)
     [java]     at 
org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1111)
     [java]     at 
org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseNestedCustomElement(BeanDefinitionParserDelegate.java:1152)
     [java]     at 
org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parsePropertySubElement(BeanDefinitionParserDelegate.java:781)
     [java]     at 
org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseListElement(BeanDefinitionParserDelegate.java:903)
     [java]     at 
org.apache.cxf.bus.spring.BusDefinitionParser.mapElement(BusDefinitionParser.java:48)
     [java]     at 
org.apache.cxf.configuration.spring.AbstractBeanDefinitionParser.parseChildElements(AbstractBeanDefinitionParser.java:106)
     [java]     at 
org.apache.cxf.configuration.spring.AbstractBeanDefinitionParser.doParse(AbstractBeanDefinitionParser.java:56)
     [java]     at 
org.springframework.beans.factory.xml.AbstractSingleBeanDefinitionParser.parseInternal(AbstractSingleBeanDefinitionParser.java:70)
     [java]     at 
org.springframework.beans.factory.xml.AbstractBeanDefinitionParser.parse(AbstractBeanDefinitionParser.java:56)
     [java]     at 
org.springframework.beans.factory.xml.NamespaceHandlerSupport.parse(NamespaceHandlerSupport.java:69)
     [java]     at 
org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1114)
     [java]     at 
org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1104)
     [java]     at 
org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.parseBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:133)
     [java]     at 
org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.registerBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:90)
     [java]     at 
org.springframework.beans.factory.xml.XmlBeanDefinitionReader.registerBeanDefinitions(XmlBeanDefinitionReader.java:458)
     [java]     at 
org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:353)
     [java]     at 
org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:303)
     [java]     at 
org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:280)
     [java]     at 
org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:131)
     [java]     at 
org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:108)
     [java]     at 
org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:79)
     [java]     at 
org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:100)
     [java]     at 
org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:313)
     [java]     at 
org.apache.cxf.bus.spring.BusApplicationContext.<init>(BusApplicationContext.java:71)
     [java]     at 
org.apache.cxf.bus.spring.SpringBusFactory.createBus(SpringBusFactory.java:84)

> -----Original Message-----
> From: Haselmann, Till
> Sent: Monday, October 29, 2007 2:56 PM
> To: [email protected]
> Subject: Using WS-Policy with CXF
> 
> Dear NG,
> 
> I would like to use WS-Policy with CXF.  For that, I prepared a WSDL-file
> that contains a policy plus a policy reference (working well with Sun's
> Metro).  I followed the scarce info from the user guide to activate the
> policy engine and tried the following config:
> 
> <?xml version="1.0" encoding="UTF-8"?>
> <!-- CXF configuration file -->
> <beans xmlns="http://www.springframework.org/schema/beans";
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
>       xmlns:http="http://cxf.apache.org/transports/http/configuration";
>       xmlns:p="http://cxf.apache.org/policy-config";
>       xsi:schemaLocation="http://cxf.apache.org/transports/http/configurati
> on http://cxf.apache.org/schemas/configuration/http-conf.xsd
>              http://www.springframework.org/schema/beans
> http://www.springframework.org/schema/beans/spring-beans.xsd";>
> 
>       <bean id="org.apache.cxf.ws.policy.PolicyEngine"
> class="org.apache.cxf.ws.policy.spring.InitializingPolicyEngine">
>               <property name="bus" ref="cxf" />
>               <property name="enabled" value="true" />
>       </bean>
> 
>       <p:engine enabled="true" ignoreUnknownAssertions="false" />
> 
> </beans>
> 
> but then I get an error because the assertion to enable the policy engine is
> not recognized by the parser:
> 
>     [java] Caused by: org.xml.sax.SAXParseException: cvc-complex-type.2.4.c:
> The matching wildcard is strict, but no declaration can be found for element
> 'p:engine'.
>      [java]   at
> com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseExc
> eption(Unknown Source)
>      [java]   at
> com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(Unknown
> Source)
>      [java]   at
> com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(Unknown
> Source)
>      [java]   at
> com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(Unknown
> Source)
>      [java]   at
> com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator$XSIErrorReporte
> r.reportError(Unknown Source)
>      [java]   at
> com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.reportSchemaErr
> or(Unknown Source)
>      [java]   at
> com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.handleStartElem
> ent(Unknown Source)
>      [java]   at
> com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.emptyElement(Un
> known Source)
>      [java]   at
> com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartEle
> ment(Unknown Source)
>      [java]   at
> com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$Fragme
> ntContentDriver.next(Unknown Source)
>      [java]   at
> com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(Unknown
> Source)
>      [java]   at
> com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(Unknown
> Source)
>      [java]   at
> com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDo
> cument(Unknown Source)
>      [java]   at
> com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown
> Source)
>      [java]   at
> com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown
> Source)
>      [java]   at
> com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source)
>      [java]   at
> com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(Unknown Source)
>      [java]   at
> com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(Unknown
> Source)
>      [java]   at
> org.springframework.beans.factory.xml.DefaultDocumentLoader.loadDocument(Defa
> ultDocumentLoader.java:76)
>      [java]   at
> org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefin
> itions(XmlBeanDefinitionReader.java:351)
> 
> What's the problem here?  How do I enable CXF to load the policy and conform
> to the security assertions within?  I'm using CXF 2.0.2.
> 
> Regards,
>    Till.
> 
> ---------------------------------------------------------------------
> Till Haselmann
> Diplomand
> viadee Unternehmensberatung GmbH
> [EMAIL PROTECTED]
> www.viadee.de

Reply via email to