Skip to Main Content

Application Development Software

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Error proxying resource in WSRP Portlet - invalid soap message.

User_QW15JFeb 18 2014 — edited Apr 10 2014

Hi,

We are trying to use portlet in WebCenter Portla (11.1.1.7).

In simple application with jsr-286 Portlet over WSRP, we are faced with the problem to send embedder binary resource(like image) in serveResource method, using OutputStream of ResourceResponse.

If resource are simple text (javascript file) - all transmitted successfully.


Example:

view.jsp

<img src="<portlet:resourceURL id="image"/>"/>

Portlet1.java

    @Override
    public void serveResource(ResourceRequest request, ResourceResponse response)
                                        throws PortletException, IOException {
        String resourceID = request.getResourceID();
        System.out.println("Serving resources, resourceId = " + resourceID);

        InputStream is = Portlet1.class.getClassLoader().getResourceAsStream("test.png");
        System.out.println("inputStream = " + is);
        ByteArrayOutputStream buffer = new ByteArrayOutputStream();
        int nRead;
        byte[] data = new byte[16384];
        while ((nRead = is.read(data, 0, data.length)) != -1) {
                        buffer.write(data, 0, nRead);
        }
        OutputStream outStream = response.getPortletOutputStream();
        outStream.write(buffer.toByteArray());     
        outStream.flush();       
        System.out.println("end of serveResource");
    }

When open portal page with located portlet, image not loaded. And exception in server log is:

Serving resources, resourceId = image
inputStream = java.io.BufferedInputStream@3dd981
end of serveResource
<PortletResourceServlet> <_process> Error proxying resource.
oracle.portlet.client.container.PortletRemoteException: oracle.portlet.wsrp.WSRPRemoteException: java.rmi.RemoteException: Error parsing envelope: most likely due to an invalid SOAP message.: Illegal character ((CTRL-CHAR, code 26))
at [row,col {unknown-source}]: [3,1]; nested exception is:
    javax.xml.soap.SOAPException: Error parsing envelope: most likely due to an invalid SOAP message.: Illegal character ((CTRL-CHAR, code 26))
at [row,col {unknown-source}]: [3,1]
    at oracle.portlet.client.techimpl.wsrp.WSRPBaseTerminalPipe.processException(WSRPBaseTerminalPipe.java:119)
    at oracle.portlet.client.techimpl.wsrp.WSRPResourceOperationPipe.execute(WSRPResourceOperationPipe.java:309)
    at oracle.portlet.client.techimpl.wsrp.WSRPResourceOperationPipe.pre(WSRPResourceOperationPipe.java:55)
    at oracle.portlet.client.service.pipeline.PipeContext.internalExecute2(PipeContext.java:650)
    at oracle.portlet.client.service.pipeline.PipeContext.access$000(PipeContext.java:48)
    at oracle.portlet.client.service.pipeline.PipeContext$1.run(PipeContext.java:498)
    at java.security.AccessController.doPrivileged(Native Method)
    at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:324)
    at oracle.security.jps.internal.jaas.AccActionExecutor.execute(AccActionExecutor.java:74)
    at oracle.security.jps.internal.jaas.AbstractSubjectSecurity$ActionExecutorWrapper.execute(AbstractSubjectSecurity.java:242)
    at oracle.security.jps.internal.jaas.CascadeActionExecutor$SubjectPrivilegedExceptionAction.run(CascadeActionExecutor.java:83)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363)
    at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:146)
    at weblogic.security.Security.runAs(Security.java:61)
    at oracle.security.jps.wls.jaas.WlsActionExecutor.execute(WlsActionExecutor.java:51)
    at oracle.security.jps.internal.jaas.CascadeActionExecutor.execute(CascadeActionExecutor.java:56)
    at oracle.security.jps.internal.jaas.AbstractSubjectSecurity$ActionExecutorWrapper.execute(AbstractSubjectSecurity.java:242)
    at oracle.security.jps.internal.jaas.AbstractSubjectSecurity.executeAs(AbstractSubjectSecurity.java:196)
    at oracle.portlet.client.service.pipeline.PipeContext.internalExecute(PipeContext.java:502)
    at oracle.portlet.client.service.pipeline.PipeContextRunnable.run(PipeContextRunnable.java:23)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
    at java.util.concurrent.FutureTask.run(FutureTask.java:138)
    at oracle.portlet.client.service.pipeline.ModifiedThreadPoolExecutor$Worker.runTask(ModifiedThreadPoolExecutor.java:391)
    at oracle.portlet.client.service.pipeline.ModifiedThreadPoolExecutor$Worker.run(ModifiedThreadPoolExecutor.java:416)
    at java.lang.Thread.run(Thread.java:662)
Caused by: oracle.portlet.wsrp.WSRPRemoteException: java.rmi.RemoteException: Error parsing envelope: most likely due to an invalid SOAP message.: Illegal character ((CTRL-CHAR, code 26))
at [row,col {unknown-source}]: [3,1]; nested exception is:
    javax.xml.soap.SOAPException: Error parsing envelope: most likely due to an invalid SOAP message.: Illegal character ((CTRL-CHAR, code 26))
at [row,col {unknown-source}]: [3,1]
    at oracle.portlet.wsrp.v2.WSRP_v2_Markup_PortTypeJaxbToSoap.getResource(WSRP_v2_Markup_PortTypeJaxbToSoap.java:333)
    at oracle.portlet.wsrp.v2.ServerToWSRPv2.getResource(ServerToWSRPv2.java:6146)
    at oracle.portlet.client.connection.wsrp.ActivityServerWrapper.getResource(ActivityServerWrapper.java:236)
    at oracle.portlet.client.techimpl.wsrp.WSRPResourceOperationPipe.execute(WSRPResourceOperationPipe.java:141)
    ... 24 more
Caused by: java.rmi.RemoteException: Error parsing envelope: most likely due to an invalid SOAP message.: Illegal character ((CTRL-CHAR, code 26))
at [row,col {unknown-source}]: [3,1]; nested exception is:
    javax.xml.soap.SOAPException: Error parsing envelope: most likely due to an invalid SOAP message.: Illegal character ((CTRL-CHAR, code 26))
at [row,col {unknown-source}]: [3,1]
    at oracle.portlet.wsrp.v2.soap.runtime.WSRP_v2_Markup_Binding_SOAP_Stub.getResource(WSRP_v2_Markup_Binding_SOAP_Stub.java:567)
    at oracle.portlet.wsrp.v2.WSRP_v2_Markup_PortTypeJaxbToSoap.getResource(WSRP_v2_Markup_PortTypeJaxbToSoap.java:229)
    ... 27 more
Caused by: javax.xml.soap.SOAPException: Error parsing envelope: most likely due to an invalid SOAP message.: Illegal character ((CTRL-CHAR, code 26))
at [row,col {unknown-source}]: [3,1]
    at oracle.j2ee.ws.saaj.soap.AbstractSOAPImplementation.createEnvelope(AbstractSOAPImplementation.java:137)
    at oracle.j2ee.ws.saaj.soap.SOAPPartImpl.getEnvelope(SOAPPartImpl.java:95)
    at oracle.j2ee.ws.saaj.soap.SOAPPartImpl.getEnvelope(SOAPPartImpl.java:64)
    at oracle.j2ee.ws.saaj.soap.MessageImpl.getSOAPBody(MessageImpl.java:1586)
    at oracle.j2ee.ws.client.StubBase._preHandlingHook(StubBase.java:887)
    at oracle.j2ee.ws.client.StreamingSender._sendImpl(StreamingSender.java:275)
    at oracle.j2ee.ws.client.StreamingSender._send(StreamingSender.java:148)
    at oracle.portlet.wsrp.v2.soap.runtime.WSRP_v2_Markup_Binding_SOAP_Stub.getResource(WSRP_v2_Markup_Binding_SOAP_Stub.java:507)
    ... 28 more
Caused by: com.ctc.wstx.exc.WstxUnexpectedCharException: Illegal character ((CTRL-CHAR, code 26))
at [row,col {unknown-source}]: [3,1]
    at com.ctc.wstx.sr.StreamScanner.throwInvalidSpace(StreamScanner.java:639)
    at com.ctc.wstx.sr.BasicStreamReader.readTextSecondary(BasicStreamReader.java:4624)
    at com.ctc.wstx.sr.BasicStreamReader.finishToken(BasicStreamReader.java:3661)
    at com.ctc.wstx.sr.BasicStreamReader.safeFinishToken(BasicStreamReader.java:3615)
    at com.ctc.wstx.sr.BasicStreamReader.getText(BasicStreamReader.java:845)
    at oracle.j2ee.ws.saaj.util.ResettableXMLStreamReader.getText(ResettableXMLStreamReader.java:153)
    at oracle.j2ee.ws.saaj.soap.StaxHandler.staxParse(StaxHandler.java:124)
    at oracle.j2ee.ws.saaj.soap.StaxHandler.staxParse(StaxHandler.java:66)
    at oracle.j2ee.ws.saaj.soap.AbstractSOAPImplementation.getStaXParsedEnvelope(AbstractSOAPImplementation.java:207)
    at oracle.j2ee.ws.saaj.soap.AbstractSOAPImplementation.createEnvelope(AbstractSOAPImplementation.java:58)
    ... 35 more

What am i doing wrong?

This post has been answered by User_QW15J on Apr 10 2014
Jump to Answer
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on May 8 2014
Added on Feb 18 2014
2 comments
2,122 views