Skip to Content

Archived discussions are read-only. Learn more about SAP Q&A

"Invalid UTF-8 start byte 0xbf" when changing universes

I'm attempting to change a report to another universe using REST, and I am getting the following error after submitting the mapping:

<error_code>RWS 00070</error_code>
<message>Internal server error. (RWS 00070)</message>
<stack_trace>javax.ws.rs.WebApplicationException: java.lang.RuntimeException: [was class java.io.CharConversionException] Invalid UTF-8 start byte 0xbf (at char #54921, byte #51299)&#13;

    at org.apache.cxf.jaxrs.provider.JAXBElementProvider.readFrom(JAXBElementProvider.java:165)&#13;

    at com.sap.webi.raylight.ExtendedJAXBElementProvider.readFrom(ExtendedJAXBElementProvider.java:63)&#13;

    at org.apache.cxf.jaxrs.utils.JAXRSUtils.readFromMessageBody(JAXRSUtils.java:1030)&#13;

    at org.apache.cxf.jaxrs.utils.JAXRSUtils.processParameter(JAXRSUtils.java:610)&#13;

    at org.apache.cxf.jaxrs.utils.JAXRSUtils.processParameters(JAXRSUtils.java:575)&#13;

    at org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:239)&#13;

    at org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:242)&#13;

    at org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:242)&#13;

    at org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:242)&#13;

    at org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:91)&#13;

    at org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:58)&#13;

    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:439)&#13;

    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)&#13;

    at java.util.concurrent.FutureTask.run(FutureTask.java:138)&#13;

    at org.apache.cxf.workqueue.SynchronousExecutor.execute(SynchronousExecutor.java:37)&#13;

    at org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceInvokerInterceptor.java:106)&#13;

    at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:255)&#13;

    at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:113)&#13;

    at org.apache.cxf.transport.servlet.ServletDestination.invoke(ServletDestination.java:102)&#13;

    at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:464)&#13;

    at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:149)&#13;

    at com.sap.bip.rs.server.servlet.BIPServletController.invoke(BIPServletController.java:93)&#13;

    at org.apache.cxf.transport.servlet.AbstractCXFServlet.invoke(AbstractCXFServlet.java:148)&#13;

    at org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:179)&#13;

    at org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost(AbstractHTTPServlet.java:103)&#13;

    at javax.servlet.http.HttpServlet.service(HttpServlet.java:646)&#13;

    at org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:159)&#13;

    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)&#13;

    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)&#13;

    at com.businessobjects.sdk.actionfilter.WorkflowFilter.doFilter(WorkflowFilter.java:45)&#13;

    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)&#13;

    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)&#13;

    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)&#13;

    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)&#13;

    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501)&#13;

    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)&#13;

    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)&#13;

    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)&#13;

    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)&#13;

    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)&#13;

    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1070)&#13;

    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611)&#13;

    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316)&#13;

    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)&#13;

    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)&#13;

    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)&#13;

    at java.lang.Thread.run(Thread.java:763)&#13;

Caused by: java.lang.RuntimeException: [was class java.io.CharConversionException] Invalid UTF-8 start byte 0xbf (at char #54921, byte #51299)&#13;

    at com.ctc.wstx.util.ExceptionUtil.throwRuntimeException(ExceptionUtil.java:18)&#13;

    at com.ctc.wstx.sr.StreamScanner.throwLazyError(StreamScanner.java:731)&#13;

    at com.ctc.wstx.sr.BasicStreamReader.safeFinishToken(BasicStreamReader.java:3657)&#13;

    at com.ctc.wstx.sr.BasicStreamReader.getTextCharacters(BasicStreamReader.java:830)&#13;

    at com.sun.xml.internal.bind.v2.runtime.unmarshaller.StAXStreamConnector.handleCharacters(StAXStreamConnector.java:312)&#13;

    at com.sun.xml.internal.bind.v2.runtime.unmarshaller.StAXStreamConnector.bridge(StAXStreamConnector.java:176)&#13;

    at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:351)&#13;

    at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:323)&#13;

    at org.apache.cxf.jaxrs.provider.JAXBElementProvider.unmarshalFromInputStream(JAXBElementProvider.java:211)&#13;

    at org.apache.cxf.jaxrs.provider.JAXBElementProvider.doUnmarshal(JAXBElementProvider.java:177)&#13;

    at org.apache.cxf.jaxrs.provider.JAXBElementProvider.readFrom(JAXBElementProvider.java:146)&#13;

    ... 46 more&#13;

Caused by: java.io.CharConversionException: Invalid UTF-8 start byte 0xbf (at char #54921, byte #51299)&#13;

    at com.ctc.wstx.io.UTF8Reader.reportInvalidInitial(UTF8Reader.java:302)&#13;

    at com.ctc.wstx.io.UTF8Reader.read(UTF8Reader.java:188)&#13;

    at com.ctc.wstx.io.ReaderSource.readInto(ReaderSource.java:84)&#13;

    at com.ctc.wstx.io.BranchingReaderSource.readInto(BranchingReaderSource.java:57)&#13;

    at com.ctc.wstx.sr.StreamScanner.loadMore(StreamScanner.java:992)&#13;

    at com.ctc.wstx.sr.BasicStreamReader.readTextSecondary(BasicStreamReader.java:4628)&#13;

    at com.ctc.wstx.sr.BasicStreamReader.readCoalescedText(BasicStreamReader.java:4126)&#13;

    at com.ctc.wstx.sr.BasicStreamReader.finishToken(BasicStreamReader.java:3701)&#13;

    at com.ctc.wstx.sr.BasicStreamReader.safeFinishToken(BasicStreamReader.java:3649)&#13;

    ... 54 more&#13;

Any idea what might be causing this?

Changing the universe manually (via WebI) works fine.

Tags:
Former Member replied

Hi Jo,

I looked at the Azot source code to remember and here is how the content is sent to the server:

final String contentLenght = String.valueOf(singleContent.getBytes().length);

connection.setRequestProperty("Content-Length", contentLenght);

final DataOutputStream out = new DataOutputStream(connection.getOutputStream());

out.write(singleContent.getBytes(Charset.forName("UTF8")));

out.flush();

out.close();

Regards,

Anthony

0 View this answer in context

Helpful Answer

by
Not what you were looking for? View more on this topic or Ask a question