Maybe that faq should refer to how to configure the endpoints for "full
schema validation" (e.g. not only based off the JAXB annotations). The
annotations lack some metadata so that the validation is not 100% like in
the schema.

Needed configuration:
1. delcare a prefix for the namespace of the service
2. declare the serviceName attribute to point to the name in the wsdl
3. declare the endpointName attribute to point to the name in the wsdl
Like this:

        <jaxws:endpoint xmlns:cust="urn:srv.jfr.tac.fs.edb.com:
ws:customer:v1"
                serviceName="cust:TACSCustomerService_V1"
                endpointName="cust:TACSCustomerService_V1PortTypeSoap11"
                implementor="#customerServiceV1Ws"
                address="/TACSCustomerService_V1"
                wsdlLocation="wsdl/TACSCustomerService_V1.wsdl">
                <jaxws:properties>
                        <entry key="schema-validation-enabled"
value="${cxf.schemaValidation:true}" />
                        <entry key="faultStackTraceEnabled"
value="${cxf.faultStackTraceEnabled}" />
                        <entry key="exceptionMessageCauseEnabled"
value="${cxf.exceptionMessageCauseEnabled}" />
                </jaxws:properties>
        </jaxws:endpoint>




2013/6/19 Daniel Kulp <[email protected]>

>
> Answered in the FAQ:
>
>
> http://cxf.apache.org/faq.html#FAQ-HowcanIturnonschemavalidationforjaxwsendpoint%3F
>
> Dan
>
>
>
> On Jun 19, 2013, at 12:20 PM, Hilderich <[email protected]> wrote:
>
> > Hello All!
> >
> > we are using Apache CXF together with Apache Camel inside Apache Karaf:
> >
> > - Apache CXF Compatibility Bundle Jar (2.6.3)
> > - camel-cxf (2.10.2)
> >
> > We are using a web service via code first apprach.
> >
> > The issue we are encounter is that an missing parameter inside the
> > /complexType /
> > (XML Schema) is ignored by the validation although the /complexType /is
> > configured
> > as follows (WSDL snippet):
> > ...
> > <xs:complexType name="orderDataMergingBean">
> >   <xs:sequence>
> >            <xs:element name="brandNo" type="xs:string"/>
> >            <xs:element name="brandName" type="xs:string"/>
> >            <xs:element name="packageType" type="xs:string"/>
> >            <xs:element name="packageFormat" type="xs:string"/>
> >            <xs:element name="inputDir" type="xs:string"/>
> >            <xs:element minOccurs="0" name="acceptanceTimestamp"
> > type="xs:dateTime"/>
> >           <xs:element minOccurs="0" name="orderSource" type="xs:string"/>
> >           <xs:element name="override" type="xs:boolean"/>
> >    </xs:sequence>
> > </xs:complexType>
> > ...
> >
> > When we omit e.g. the /packageType /information for the request the web
> > service can be
> > used still though /packageTyp /is equipped implicit with minOccurs=1 and
> > maxOccurs=1.
> >
> > How can we configure the web service properly to refuse such a request
> and
> > tell the client
> > that such a request is invalid?
> >
> > The Java class (code first approach) looks as below:
> >
> > @XmlRootElement(name = "order")
> > @XmlAccessorType(XmlAccessType.FIELD)
> > public class OrderDataMergingBean implements Serializable {
> >
> >       ...
> >       @XmlElement(required=true)
> >       private TecdocType packageType;
> > ...
> >
> > Many thanks in advanced
> > Hilderich
> >
> >
> >
> > --
> > View this message in context:
> http://cxf.547215.n5.nabble.com/elements-with-minOccurs-1-in-a-complexType-not-honoured-tp5729512.html
> > Sent from the cxf-user mailing list archive at Nabble.com.
>
> --
> Daniel Kulp
> [email protected] - http://dankulp.com/blog
> Talend Community Coder - http://coders.talend.com
>
>


-- 
--
David J. M. Karlsen - http://www.linkedin.com/in/davidkarlsen

Reply via email to