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