0

我是一名开发人员 Opentext,我需要知道如何从应用程序 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的ContentService服务的一个实例(les-services/services/ContentService)。
  2. PATHFILE+NAMEFILE 是文件的名称和名称。
  3. _id_code_document 是文档 ID。

当此代码运行时出现此错误:

    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 提前!

4

2 回答 2

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);

之前已经回答过这个问题:如何使用 Java 从 Internet 下载和保存文件?

于 2014-03-12T20:10:40.880 回答
0

您得到的错误是由 opentext 提供的代码示例生成的。确保 contentserviceclient 正在使用 contentserviceclient.otauthentication,因为在提供的代码中他们正在使用 documentmanagementclient.otauthentication,我对其进行了修改并且代码运行良好:)

于 2014-06-06T12:17:11.147 回答