This happens when you have an xs:string element in your service and you try to pass a value that contains a character forbidden in XML 1.0. Yes, there are Unicode characters forbidden in XML 1.0, such as the form feed (or, in your case, SUBSTITUTE). If you must send characters outside of XML 1.0, you have to use some other XML schema type other than string, or move the data to an attachment.
On Sat, Oct 22, 2011 at 3:18 PM, jp_listero <[email protected]> wrote: > hi, > > I implemented a client with CXF and I have some times exceptions like this > > [javax.xml.stream.XMLStreamException: ParseError at [row,col]:[16,27] > Message: An invalid XML character (Unicode: 0x1a) was found in the > element content of the document.] > at > com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.handleStreamException(UnmarshallerImpl.java:426) > at > com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:362) > at > com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:339) > at > org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:610) > at > org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:530) > at org.apache.cxf.jaxb.io.DataReaderImpl.read(DataReaderImpl.java:114) > at > org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(DocLiteralInInterceptor.java:188) > at > org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:236) > at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:658) > at > org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:2139) > at > org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:2022) > at > org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1947) > at > org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:66) > at > org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:632) > at > org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62) > at > org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:236) > at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:472) > at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:302) > at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:254) > at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73) > at > org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:123) > ... 8 more > > > this is my source code: > > private void initWs1Config(){ > JaxWsProxyFactoryBean factoryBean = new > JaxWsProxyFactoryBean(); > factoryBean.setServiceClass(WspresC4SoapPort.class); > factoryBean.setAddress("http://"+getIpPort()+getUrlC4()); > > String endpointURL= "http://"+getIpPort()+getUrlC4(); > port = (WspresC4SoapPort)factoryBean.create(); > BindingProvider bp = (BindingProvider)port; > > bp.getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, > endpointURL); > > Client client = ClientProxy.getClient(port); > HTTPConduit http = (HTTPConduit) client.getConduit(); > HTTPClientPolicy httpClientPolicy = new HTTPClientPolicy(); > httpClientPolicy.setConnectionTimeout(36000); > httpClientPolicy.setAllowChunking(false); > http.setClient(httpClientPolicy); > > AuthorizationPolicy authorization = new AuthorizationPolicy(); > > authorization.setUserName(getUser()); > authorization.setPassword(getPassword()); > http.setAuthorization(authorization); > } > > maybe is something in the server side ? > thanks ! >
