wcf - Java-WS XML serialization failed before JAXB unmarshaling occured -
in environment, have client (java 6) call wcf (.net 3.5) wcf service using jax-ws , basichttpbinding.
i have invalid xml characters return wcf service string values.
i added custom jaxb converter,
<jaxb:javatype name="java.lang.string" xmltype="xs:string" parsemethod="myclass.parsestringtosafexmlstring" printmethod="myclassprintstringtosafexmlstring" /> myclass have methods
public static string parsestringtosafexmlstring(string value) { return stripnonvalidxmlcharacters(value); } public static string printstringtosafexmlstring(string value) { return stripnonvalidxmlcharacters(value); } where stripnonvalidxmlcharacters - method remove invalid chars (does not meter how does).
but when receive string invalid xml chars, code failed exception before parsestringtosafexmlstring called (for valid strings, method called , stopped break point.
caused by: javax.xml.stream.xmlstreamexception: parseerror @ [row,col]:[1,834] message: character reference "" invalid xml character. @ com.sun.org.apache.xerces.internal.impl.xmlstreamreaderimpl.next(xmlstreamreaderimpl.java:594) ~[?:1.6.0_24] @ com.sun.xml.internal.ws.util.xml.xmlstreamreaderfilter.next(xmlstreamreaderfilter.java:81) ~[?:1.6.0_24] @ com.sun.xml.internal.bind.v2.runtime.unmarshaller.staxstreamconnector.bridge(staxstreamconnector.java:181) ~[?:1.6.0_24] @ com.sun.xml.internal.bind.v2.runtime.unmarshaller.unmarshallerimpl.unmarshal0(unmarshallerimpl.java:349) ~[?:1.6.0_24] @ com.sun.xml.internal.bind.v2.runtime.bridgeimpl.unmarshal(bridgeimpl.java:109) ~[?:1.6.0_24] @ com.sun.xml.internal.bind.api.bridge.unmarshal(bridge.java:222) ~[?:1.6.0_24] @ com.sun.xml.internal.ws.message.stream.streammessage.readpayloadasjaxb(streammessage.java:249) ~[?:1.6.0_24] @ com.sun.xml.internal.ws.client.sei.responsebuilder$body.readresponse(responsebuilder.java:458) ~[?:1.6.0_24] @ com.sun.xml.internal.ws.client.sei.syncmethodhandler.invoke(syncmethodhandler.java:110) ~[?:1.6.0_24]
so have 2 questions:
- how can fix it?
- may (and how) run
stripnonvalidxmlcharactersorany_other_remove_invalid_charsmethod before failed (probably before xml serializer start works)?
thanks lot!!!
Comments
Post a Comment