【问题标题】:Caliing the getContentStream() function in FileNET/CMIS Web Services在 FileNET/CMIS Web 服务中调用 getContentStream() 函数
【发布时间】:2021-10-07 18:36:33
【问题描述】:

我正在尝试调用 FileNET/CMIS SOAP/web 服务中的 getContentStream() 函数。它需要 2 个必需参数,一个用于存储库 ID 的字符串,一个用于文档 ID 的字符串。其余参数是可选的。方法签名是这样的:

org.oasis_open.docs.ns.cmis.ws._200908.ObjectServicePort.getContentStream(

@WebParam(name="repositoryId", 字符串 arg0,

@WebParam(name="objectId", 字符串 arg1,

@WebParam(name="streamId", 字符串 arg2,

@WebParam(name="offset", BigInteger arg3,

@WebParam(name="length", BigInteger arg4,

@WebParam(name="extension", CmisExtensionType arg5) 抛出 CmisException

在我的 Java 代码中,我有这个:

...

字符串 guid = "";

guid = request.getParameter("guid").trim();

//连接到 FileNET/CMIS Web 服务:

GetObject objRequest = new GetObject();

ObjectService objService = new ObjectService();

ObjectServicePort objectServicePort = objService.getObjectServicePort();

((SOAPBinding)((BindingProvider) objectServicePort).getBinding()).setMTOMEnabled(true);

((BindingProvider) objectServicePort).getRequestContext().put(BindingProvider.USERNAME_PROPERTY, "username");

((BindingProvider) objectServicePort).getRequestContext().put(BindingProvider.PASSWORD_PROPERTY, "password");

((BindingProvider) objectServicePort).getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, "https://filenet.web.address.there/openfncmis/services11/ObjectService");

// 调用 getContentStream():

CmisContentStreamType cmisContentStreamType = objectServicePort.getContentStream(reposName, guid, "", null, null, null);

...

当我运行代码时,它在控制台中出现以下错误:

[10/7/21 13:52:28:724 EDT] 000000db webapp E com.ibm.ws.webcontainer.webapp.WebApp logServletError SRVE0293E:[Servlet 错误]-[操作]:org.oasis_open.docs。 ns.cmis.ws._200908.CmisException: CIL1500: 服务无法完成。

说明:出现此错误的原因如下:

  • IBM CMIS 应用程序中的错误

  • 存储库出错 操作:请参阅 HTTP 响应或应用程序服务器 SystemOut.log 文件以获取更多信息并查看堆栈跟踪以查找异常。 默认情况下,SystemOut.log 文件位于应用服务器安装目录的 [WAS_profile_location]/logs/[server]/logs 子目录中。

    在 sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 在 sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:88) 在 sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:57) 在 java.lang.reflect.Constructor.newInstance(Constructor.java:437) 在 org.apache.axis2.jaxws.marshaller.impl.alt.MethodMarshallerUtils.createServiceException(MethodMarshallerUtils.java:1331) 在 org.apache.axis2.jaxws.marshaller.impl.alt.MethodMarshallerUtils.demarshalFaultResponse(MethodMarshallerUtils.java:1142) 在 org.apache.axis2.jaxws.marshaller.impl.alt.DocLitWrappedMethodMarshaller.demarshalFaultResponse(DocLitWrappedMethodMarshaller.java:680) 在 org.apache.axis2.jaxws.client.proxy.JAXWSProxyHandler.getFaultResponse(JAXWSProxyHandler.java:626) 在 org.apache.axis2.jaxws.client.proxy.JAXWSProxyHandler.createResponse(JAXWSProxyHandler.java:566) 在 org.apache.axis2.jaxws.client.proxy.JAXWSProxyHandler.invokeSEIMethod(JAXWSProxyHandler.java:432) 在 org.apache.axis2.jaxws.client.proxy.JAXWSProxyHandler.invoke(JAXWSProxyHandler.java:213) 在 com.sun.proxy.$Proxy208.getContentStream(未知来源) 在 gov.ohio.jfs.wotcweb.actions.DisplayFileNETDocuments.execute(DisplayFileNETDocuments.java:131) 在 org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:425) 在 org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:228) 在 org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913) 在 org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:449) 在 javax.servlet.http.HttpServlet.service(HttpServlet.java:687) 在 javax.servlet.http.HttpServlet.service(HttpServlet.java:790) 在 com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1235) 在 com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:779) 在 com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:478) 在 com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:178) 在 com.ibm.ws.webcontainer.filter.WebAppFilterChain.invokeTarget(WebAppFilterChain.java:143) 在 com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:78) 在 com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:969) 在 com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters(WebAppFilterManager.java:1109) 在 com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:4144) 在 com.ibm.ws.webcontainer.webapp.WebAppImpl.handleRequest(WebAppImpl.java:2208) 在 com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:304) 在 com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:1030) 在 com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1817) 在 com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:382) 在 com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:465) 在 com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewRequest(HttpInboundLink.java:532) 在 com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.processRequest(HttpInboundLink.java:318) 在 com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete(HttpICLReadCallback.java:88) 在 com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:175) 在 com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217) 在 com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161) 在 com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:138) 在 com.ibm.io.async.ResultHandler.complete(ResultHandler.java:204) 在 com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:775) 在 com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:905) 在 com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1892)

FileNET 错误日志表明:

[10/7/21 10:18:37:541 EDT] 000000c1 DALP8Exceptio E com.ibm.ecm.cmis.dal.p8.DALP8ExceptionHandler handleException null

                             com.ibm.ecm.cmis.exceptions.CMISRuntimeException: CIL1500: The service cannot be completed.

说明:出现此错误的原因如下:

  • IBM CMIS 应用程序中的错误

  • 存储库出错

操作:请参阅 HTTP 响应或应用程序服务器 SystemOut.log 文件以获取更多信息并查看堆栈跟踪以查找异常。 默认情况下,SystemOut.log 文件位于应用程序服务器安装目录的 [WAS_profile_location]/logs/[server]/logs 子目录中。 在 com.ibm.ecm.cmis.dal.p8.DALP8Document.getContent(DALP8Document.java:633) 在 com.ibm.ecm.cmis.openserverfn.FnCmisService.getContentStream(FnCmisService.java:1562) 在 com.ibm.ecm.cmis.extensions.BasicPchListener.getContentStream(BasicPchListener.java:240)

at org.apache.chemistry.opencmis.server.support.wrapper.ConformanceCmisServiceWrapper.getContentStream(ConformanceCmisServiceWrapper.java:940)
at org.apache.chemistry.opencmis.server.impl.webservices.ObjectService.getContentStream(ObjectService.java:403)
at sun.reflect.GeneratedMethodAccessor205.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:55)
at java.lang.reflect.Method.invoke(Method.java:508)
at org.apache.cxf.service.invoker.AbstractInvoker.performInvocation(AbstractInvoker.java:181)
at org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:97)
at org.apache.cxf.jaxws.AbstractJAXWSMethodInvoker.invoke(AbstractJAXWSMethodInvoker.java:232)
at org.apache.cxf.jaxws.JAXWSMethodInvoker.invoke(JAXWSMethodInvoker.java:69)
at org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:75)
at org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:59)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:522)
at java.util.concurrent.FutureTask.run(FutureTask.java:277)
at org.apache.cxf.interceptor.ServiceInvokerInterceptor$2.run(ServiceInvokerInterceptor.java:126)
at org.apache.cxf.workqueue.SynchronousExecutor.execute(SynchronousExecutor.java:37)
at org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceInvokerInterceptor.java:131)
at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:307)
at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121)
at org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:252)
at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:234)
at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:208)
at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:160)
at org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:180)
at org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:298)
at org.apache.chemistry.opencmis.server.impl.webservices.CmisWebServicesServlet.handleRequest(CmisWebServicesServlet.java:182)
at org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost(AbstractHTTPServlet.java:217)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
at org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:273)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1235)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:779)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:478)
at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:178)
at com.ibm.ws.webcontainer.filter.WebAppFilterChain.invokeTarget(WebAppFilterChain.java:143)
at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:78)
at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:969)
at com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters(WebAppFilterManager.java:1109)
at com.ibm.ws.webcontainer.servlet.CacheServletWrapper.handleRequest(CacheServletWrapper.java:82)
at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:963)
at com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1817)
at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:382)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:465)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewRequest(HttpInboundLink.java:532)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.processRequest(HttpInboundLink.java:318)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpInboundLink.java:289)
at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.sendToDiscriminators(NewConnectionInitialReadCallback.java:214)
at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.complete(NewConnectionInitialReadCallback.java:113)
at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:175)
at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217)
at com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161)
at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:138)
at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:204)
at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:816)
at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:905)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1909)

原因:java.lang.NullPointerException 在 com.ibm.ecm.cmis.dal.p8.DALP8Document.getContent(DALP8Document.java:605) ... 56 更多

现在,我知道文档存储库 ID 和 GUID 都很好,因为当我使用我们的 SOAP_UI 工具查询 FileNET 存储库时,我得到了一个 PDF 文档。谁能告诉我我在 Java 代码中做错了什么,当我尝试在我的 Java 代码中调用 CMIS Web 服务时,我一直收到这个错误?

提前感谢您的帮助!

此致,

约翰·M·扬特

【问题讨论】:

    标签: java web soap


    【解决方案1】:

    我发现了问题!

    对于第三个参数,我有“”,而我应该有“null”。

    现在可以了!

    j.

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多