On Oct 17, 2012, at 8:18 AM, Christian Gräfe <[email protected]> wrote:
> Hello again,
>
> I've found the reason of empty line and column numbers. It was a
> "conflicting" SoapMessageHandler, which was injected by handler chain.
> But the following line is still not printed at system.out
> System.out.println("Server XmlEventHandler: NodeName=" +
> event.getLocator().getNode().getNodeName());
Do a:
System.out.println("Is Null? " + event.getLocator().getNode());
and see if it's null. My gut feeling is that the Node will be null as we use
the XMLStreamReader method of parsing and not the DOM based methods. Thus,
there isn't a Node.
Most likely, it's throwing an NPE that JAXB is catching and ignore at this
particular point.
Dan
>
> regards
> Christian
>
> 2012/10/17 Christian Gräfe <[email protected]>
>
>> Hello,
>>
>> i tried your way to get a customized validation error message, but it
>> doesn't work for me. Do you have any idea why it doesn't work?
>> The second system.out of the "NodeName" is not printed?
>>
>> My validation event handler code:
>> =========================
>> package eu.myCompany.schemas.wsdl.precalculation;
>>
>> import javax.xml.bind.ValidationEvent;
>> import javax.xml.bind.helpers.DefaultValidationEventHandler;
>>
>> public class MyValidationEventHandler extends
>> DefaultValidationEventHandler {
>> @Override
>> public boolean handleEvent(ValidationEvent event) {
>>
>> System.out.println("Server XmlEventHandler: handleEvent()......");
>> System.out.println("Server XmlEventHandler: Serverity=" +
>> String.valueOf(event.getSeverity()));
>> System.out.println("Server XmlEventHandler: Message=" +
>> event.getMessage());
>> System.out.println("Server XmlEventHandler: Line Number=" +
>> event.getLocator().getLineNumber());
>> System.out.println("Server XmlEventHandler: Column Number= " +
>> event.getLocator().getColumnNumber());
>> System.out.println("Server XmlEventHandler: NodeName=" +
>> event.getLocator().getObject());
>> System.out.println("Server XmlEventHandler: NodeName=" +
>> event.getLocator().getNode().getNodeName());
>>
>> if (event.getSeverity() == ValidationEvent.WARNING) {
>> System.out.println("Server XmlEventHandler: WARNING");
>> return super.handleEvent(event);
>>
>> }
>> else
>> {
>>
>> //System.out.println("Server XmlEventHandler:
>> handleEvent()......" + event.getLocator().getNode().getNodeName());
>> System.out.println("Server XmlEventHandler: handleEvent()......"
>> + event.getMessage() + " [line:"+event.getLocator().getLineNumber()+"]");
>> throw new RuntimeException(event.getMessage() + "
>> [line:"+event.getLocator().getLineNumber()+"]");
>> }
>> }
>> }
>> =========================
>> Code in cxf-servlet.xml
>> =========================
>> <jaxws:properties>
>> <entry key="schema-validation-enabled" value="true" />
>> <entry key="jaxb-validation-event-handler">
>> <bean
>> class="eu.myCompany.schemas.wsdl.precalculation.MyValidationEventHandler" />
>> </entry>
>> </jaxws:properties>
>> =========================
>>
>> 2012/9/20 Glen Mazza <[email protected]>
>>
>>> Hmm, when I did this (2 years ago), the error messages *did* give the
>>> element that failed, see here for the sample output:
>>> http://www.jroller.com/gmazza/**entry/soap_xml_schema_**validation<http://www.jroller.com/gmazza/entry/soap_xml_schema_validation>
>>>
>>> Glen
>>>
>>>
>>> On 09/19/2012 03:13 PM, Christian Gräfe wrote:
>>>
>>>> Hello,
>>>>
>>>> I'm using the CXF version 2.6.2 on the server side with enabled schema
>>>> validation.
>>>> Due to special requirements I need to catch the soap faults, which
>>>> happens
>>>> after a validation error, and wrap the message into a defined structure.
>>>> Curently I'm using a SOAPMessageHandler to filter he soap fault message.
>>>>
>>>> I get a fault message like this:
>>>> cvc-enumeration-valid: Value 'Y' is not facet-valid with respect to
>>>> enumeration '[J, N]'. It must be a value from the enumeration.
>>>>
>>>> It is possible to get the xml element which is causing the problem?
>>>>
>>>>
>>>> best regards
>>>> Christian G.
>>>>
>>>>
>>>
>>> --
>>> Glen Mazza
>>> Talend Community Coders - coders.talend.com
>>> blog: www.jroller.com/gmazza
>>>
>>>
>>
--
Daniel Kulp
[email protected] - http://dankulp.com/blog
Talend Community Coder - http://coders.talend.com