Hi Wentao, OpenCMIS has only been tested with Woodstox 4.1 and later. Woodstox 4.0.5 is pretty old (2009) and I don't know if and how com.bea.core.woodstox_1.0.0.0_4-0-5 has been modified. In other words, I don't know if the WebLogic Woodstox works with OpenCMIS.
- Florian > Hi Florian, > > "woodstox-core-asl-4.2.0.jar" is under the war file WEB-INF/lib folder, when > I checked with WebLogic class loader, I found WebLogic instead load its own > jar file "com.bea.core.woodstox_1.0.0.0_4-0-5.jar" which is version 4.0.5, do > we have to use 4.2.0.jar? > > > Thanks > Wentao > > -----Original Message----- > From: Florian Müller [mailto:f...@apache.org] > Sent: 2014, September 16 12:22 AM > To: Lu, Wentao; dev@chemistry.apache.org > Subject: RE: "Stream already closed" error when upload a big file through > OpenCMIS bridge > > Hi Wentao, > > A "Limit exceeded!" error is an indicator for an unsupported XML parser. > Please make sure you have Woodstox 4 on your class path (or switch to > OpenCMIS 0.12.0, which forces the use of Woodstox 4). > With a correct setup you can send an arbitrary big document via the AtomPub > binding. It has been tested with documents that were several GB big. > > > - Florian > > >> Hi Florian, >> >> I did not modify any code from the downloaded war file, just modify >> the "repository.properties" file pointing to our backend CMIS server >> and then use workbench to test. >> >> >From temp folder, I can see a "MIME*.tmp" with the same size is >>> created, it seems not a permission issue. >> After digging further, I guess I know what happened: >> >> by default AtomEntryParser.java set max_stream_length = 10MB >> >> private static final long MAX_STREAM_LENGTH = 10 * 1024 * 1024; >> >> When create document with a bigger (more than 10MB) file via Atompub >> from workbench, it base64 encoded the content, but exceed the limit, >> so somehow it returned a weird error when client using web service >> binding, but when client using atom binding from the bridge, I got >> below errors which I think it is the real error: >> >> org.apache.chemistry.opencmis.commons.exceptions.CmisInvalidArgumentException: >> Limit exceeded! >> at >> org.apache.chemistry.opencmis.server.shared.CappedInputStream.checkLength(CappedInputStream.java:71) >> at >> org.apache.chemistry.opencmis.server.shared.CappedInputStream.read(CappedInputStream.java:107) >> at java.io.FilterInputStream.read(FilterInputStream.java:116) >> >> So I changed my code logic to "set document first, then set content >> stream later", by this approach, I was able to upload very big files >> (200MB) via the bridge (using soap to atom forward) >> >> Thanks >> Wentao >> >> >> >> -----Original Message----- >> From: Florian Müller [mailto:f...@apache.org] >> Sent: 2014, September 13 9:18 AM >> To: dev@chemistry.apache.org >> Cc: Lu, Wentao >> Subject: Re: "Stream already closed" error when upload a big file >> through OpenCMIS bridge >> >> Hi Wentao, >> >> There could be many reasons. >> Are you processing the stream in the bridge somehow or do you just >> forward the request? >> Big documents are buffered on disk. Is your temp directory writable >> for the bridge? >> >> >> - Florian >> >> >>> Hi, >>> >>> I am testing OpenCMIS bridge 0.10. Client side uses soap to call >>> "createDocument" and we setup OpenCMIS bridge to convert the soap >>> request to atompub to our backend CMIS server (IBM CMIS). >>> >>> It works fine with small document, but failed when I tried a 10MB >>> file. It works if I test directly to backend CMIS server. >>> Below is the error get from SOAPUI: >>> >>> <S:Detail> >>> <cmisFault:cmisFault >>> xmlns:ns2="http://docs.oasis-open.org/ns/cmis/core/200908/" >>> xmlns="http://docs.oasis-open.org/ns/cmis/messaging/200908/" >>> xmlns:cmisFault="http://docs.oasis-open.org/ns/cmis/messaging/200908/"> >>> <type>runtime</type> >>> <code>0</code> >>> <message>Cannot access >>> http://mydev:7002/fncmis/resources/IMM_QA01/ContentFlat/idf_E5A8A3C4-B2F2-4100-9A96-B7429037B58E?versioningState=major: >>> Stream already closed</message> >>> <stacktrace:stacktrace >>> xmlns="http://chemistry.apache.org/opencmis/exception" >>> xmlns:stacktrace="http://chemistry.apache.org/opencmis/exception">org.apache.chemistry.opencmis.commons.exceptions.CmisConnectionException: >>> Cannot access >>> http://mydev:7002/fncmis/resources/IMM_QA01/ContentFlat/idf_E5A8A3C4-B2F2-4100-9A96-B7429037B58E?versioningState=major: >>> Stream already closed >>> at >>> org.apache.chemistry.opencmis.client.bindings.spi.http.DefaultHttpInvoker.invoke(DefaultHttpInvoker.java:224) >>> at >>> org.apache.chemistry.opencmis.client.bindings.spi.http.DefaultHttpInvoker.invokePOST(DefaultHttpInvoker.java:63) >>> at >>> org.apache.chemistry.opencmis.client.bindings.spi.atompub.AbstractAtomPubService.post(AbstractAtomPubService.java:625) >>> at >>> org.apache.chemistry.opencmis.client.bindings.spi.atompub.ObjectServiceImpl.createDocument(ObjectServiceImpl.java:119) >>> at >>> org.apache.chemistry.opencmis.bridge.FilterCmisService.createDocument(FilterCmisService.java:201) >>> at >>> org.apache.chemistry.opencmis.server.support.CmisServiceWrapper.createDocument(CmisServiceWrapper.java:719) >>> at >>> org.apache.chemistry.opencmis.server.impl.webservices.ObjectService.createDocument(ObjectService.java:84) >>> at >>> sun.reflect.GeneratedMethodAccessor420.invoke(Unknown >>> Source) >>> at >>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37) >>> at java.lang.reflect.Method.invoke(Method.java:600) >>> at >>> com.sun.xml.ws.api.server.InstanceResolver$1.invoke(InstanceResolver.java:246) >>> at >>> com.sun.xml.ws.server.InvokerTube$2.invoke(InvokerTube.java:151) >>> at >>> com.sun.xml.ws.server.sei.EndpointMethodHandlerImpl.invoke(EndpointMethodHandlerImpl.java:268) >>> at >>> com.sun.xml.ws.server.sei.SEIInvokerTube.processRequest(SEIInvokerTube.java:100) >>> at com.sun.xml.ws.api.pipe.Fiber.__doRun(Fiber.java:866) >>> at com.sun.xml.ws.api.pipe.Fiber._doRun(Fiber.java:815) >>> at com.sun.xml.ws.api.pipe.Fiber.doRun(Fiber.java:778) >>> at com.sun.xml.ws.api.pipe.Fiber.runSync(Fiber.java:680) >>> at >>> com.sun.xml.ws.server.WSEndpointImpl$2.process(WSEndpointImpl.java:403) >>> at >>> com.sun.xml.ws.transport.http.HttpAdapter$HttpToolkit.handle(HttpAdapter.java:532) >>> at >>> com.sun.xml.ws.transport.http.HttpAdapter.handle(HttpAdapter.java:253) >>> at >>> com.sun.xml.ws.transport.http.servlet.ServletAdapter.handle(ServletAdapter.java:140) >>> at >>> com.sun.xml.ws.transport.http.servlet.WSServletDelegate.doGet(WSServletDelegate.java:129) >>> at >>> com.sun.xml.ws.transport.http.servlet.WSServletDelegate.doPost(WSServletDelegate.java:160) >>> at >>> com.sun.xml.ws.transport.http.servlet.WSServlet.doPost(WSServlet.java:75) >>> at >>> javax.servlet.http.HttpServlet.service(HttpServlet.java:727) >>> at >>> org.apache.chemistry.opencmis.server.impl.webservices.CmisWebServicesServlet.service(CmisWebServicesServlet.java:167) >>> at >>> javax.servlet.http.HttpServlet.service(HttpServlet.java:820) >>> at >>> weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227) >>> at >>> weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125) >>> at >>> weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:300) >>> at >>> weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:183) >>> at >>> weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3717) >>> at >>> weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3681) >>> at >>> weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321) >>> at >>> weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120) >>> at >>> weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2277) >>> at >>> weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2183) >>> at >>> weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1454) >>> at >>> weblogic.work.ExecuteThread.execute(ExecuteThread.java:207) >>> at >>> weblogic.work.ExecuteThread.run(ExecuteThread.java:176) >>> Caused by: java.lang.IllegalStateException: Stream already closed >>> at java.lang.Throwable.<init>(Throwable.java:67) >>> at >>> org.jvnet.mimepull.DataHead$ReadMultiStream.fetch(DataHead.java:231) >>> at >>> org.jvnet.mimepull.DataHead$ReadMultiStream.read(DataHead.java:207) >>> at >>> java.io.BufferedInputStream.fill(BufferedInputStream.java:230) >>> at >>> java.io.BufferedInputStream.read(BufferedInputStream.java:249) >>> at >>> org.apache.chemistry.opencmis.commons.impl.Base64$InputStream.read(Base64.java:1671) >>> at >>> org.apache.chemistry.opencmis.client.bindings.spi.atompub.AtomEntryWriter.writeContent(AtomEntryWriter.java:241) >>> at >>> org.apache.chemistry.opencmis.client.bindings.spi.atompub.AtomEntryWriter.write(AtomEntryWriter.java:181) >>> at >>> org.apache.chemistry.opencmis.client.bindings.spi.atompub.ObjectServiceImpl$1.write(ObjectServiceImpl.java:121) >>> at >>> org.apache.chemistry.opencmis.client.bindings.spi.http.DefaultHttpInvoker.invoke(DefaultHttpInvoker.java:192) >>> ... 40 more</stacktrace:stacktrace> >>> </cmisFault:cmisFault> >>> </S:Detail> >>> >>> I am not sure if this related with mimepull version, I tried to >>> replace mimepull 1.3 jar to mimepull 1.9.4, but still get the same error. >>> >>> Any ideas? >>> >>> Thanks >>> Wentao >>> ________________________________ >>> This email and its attachments are intended solely for the personal >>> use of the individual or entity named above. Any use of this >>> communication by an unintended recipient is strictly prohibited. If >>> you have received this email in error, any publication, use, >>> reproduction, disclosure or dissemination of its contents is >>> strictly prohibited. Please immediately delete this message and its >>> attachments from your computer and servers. We would also appreciate >>> if you would contact us by a collect call or return email to notify us of >>> this error. Thank you for your cooperation. >>> -BCHydroDisclaimerID5.2.8.1541 >>>