See this recent thread about the same: http://cxf.547215.n5.nabble.com/String-with-Ctrl-Character-marshalling-unmarshalling-error-td4924570.html
2011/10/24 jp_listero <[email protected]>: > and what caracters are forbidden ? > > how I fix that ? > something like this: > > System.Text.Encoding.UTF8.GetString(value); > > ? > > thanks! > > 2011/10/22 Benson Margulies <[email protected]>: >> 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 ! >>> >> > -- -- David J. M. Karlsen - http://www.linkedin.com/in/davidkarlsen
