从内容服务器下载文档

时间:2014-03-12 19:53:16

标签: java datahandler livelink

我是开发人员Opentext,我需要知道如何从app Java下载内容服务器Opentext中的文件。 我有这段代码:

int nodeID = _id_code_document;
OutputStream os = new FileOutputStream(new File(PATHFILE+NAMEFILE));
DataHandler file= fContent.downloadContent(nodeID + "");
file.writeTo(os);

其中:

  1. Content是Opentext(les-services / services / ContentService)的ContentService服务的实例。
  2. PATHFILE + NAMEFILE是文件的用途和名称。
  3. _id_code_document是文档ID。
  4. 此代码运行时出现此错误:

        javax.xml.ws.soap.SOAPFaultException: CacheUtil: Could not load requested cache object: 2986 (V{<'SEGMENTBLOB'>})
            at com.sun.xml.ws.fault.SOAP11Fault.getProtocolException(SOAP11Fault.java:188)
            at com.sun.xml.ws.fault.SOAPFaultBuilder.createException(SOAPFaultBuilder.java:116)
            at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:119)
            at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:89)
            at com.sun.xml.ws.client.sei.SEIStub.invoke(SEIStub.java:118)
            at com.sun.proxy.$Proxy40.downloadContent(Unknown Source)
    Caused by: javax.xml.ws.soap.SOAPFaultException: CacheUtil: Could not load requested cache object: 2986 (V{<'SEGMENTBLOB'>})
        at com.opentext.livelink.service.core.ExceptionUtil.throwSOAPFaultException(ExceptionUtil.java:162)
        at com.opentext.livelink.service.core.ContentService_JAXWS.downloadContent(ContentService_JAXWS.java:156)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at com.sun.xml.ws.api.server.InstanceResolver$1.invoke(InstanceResolver.java:246)
        at com.sun.xml.ws.server.InvokerTube$2.invoke(InvokerTube.java:146)
        at com.sun.xml.ws.server.sei.EndpointMethodHandler.invoke(EndpointMethodHandler.java:257)
        at com.sun.xml.ws.server.sei.SEIInvokerTube.processRequest(SEIInvokerTube.java:93)
        at com.sun.xml.ws.api.pipe.Fiber.__doRun(Fiber.java:598)
        at com.sun.xml.ws.api.pipe.Fiber._doRun(Fiber.java:557)
        at com.sun.xml.ws.api.pipe.Fiber.doRun(Fiber.java:542)
        at com.sun.xml.ws.api.pipe.Fiber.runSync(Fiber.java:439)
        at com.sun.xml.ws.server.WSEndpointImpl$2.process(WSEndpointImpl.java:243)
        at com.sun.xml.ws.transport.http.HttpAdapter$HttpToolkit.handle(HttpAdapter.java:471)
        at com.sun.xml.ws.transport.http.HttpAdapter.handle(HttpAdapter.java:244)
        at com.sun.xml.ws.transport.http.servlet.ServletAdapter.handle(ServletAdapter.java:135)
        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:643)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
        at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:879)
        at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:617)
        at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1774)
        at java.lang.Thread.run(Unknown Source)
    

    任何人都知道如何解决这个问题?

    Thx 4提前!

2 个答案:

答案 0 :(得分:0)

我猜你只想保存文件,你可以使用:

URL website = new URL("Path to your file on the server");
ReadableByteChannel rbc = Channels.newChannel(website.openStream());
FileOutputStream fos = new FileOutputStream("Path to where you want to save the file");
fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);

之前已经回答过:How to download and save a file from Internet using Java?

答案 1 :(得分:0)

您获得的错误是从opentext提供的代码示例生成的。确保contentserviceclient正在使用contentserviceclient.otauthentication,就像他们使用documentmanagementclient.otauthentication提供的代码一样,我修改了它并且代码工作得很好:)