Загрузить документ с контент-сервера

Я разработчик Opentext, и мне нужно знать, как загрузить файл с сервера контента Opentext из приложения Java. У меня есть этот код:

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

Где:

  1. Контент является экземпляром службы ContentService Opentext (les-services/services/ContentService).
  2. PATHFILE+NAMEFILE — это идентификатор и имя файла.
  3. _id_code_document — идентификатор документа.

При запуске этого кода появляется эта ошибка:

    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)

Кто-нибудь знает, как это решить?

Спасибо 4 заранее!


person Roldanhollow    schedule 12.03.2014    source источник
comment
Вы должны указать, какой интерфейс вы используете (Content Web Services, REST API, LAPI, Enterprise Webservices?) и к какой версии Content Server вы обращаетесь (CS 10, CS 10.5?). Затем вы должны опубликовать фрагмент кода, который кто-то может скомпилировать и запустить на своей машине. Если код длинный, то поместите его в Pastebin. Тогда вы вернетесь и спросите снова - и вам помогут.   -  person Steffen Roller    schedule 13.03.2014


Ответы (2)


Я думаю, вы просто хотите сохранить файл, вы можете использовать это:

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?

person Hugo Kerstens    schedule 12.03.2014

ошибка, которую вы получили, генерируется из примеров кода, предоставленных opentext. убедитесь, что contentserviceclient использует contentserviceclient.otauthentication, так как в предоставленном коде они используют documentmanagementclient.otauthentication, я изменил его, и код отлично работает :)

person Abd H.    schedule 06.06.2014
comment
Это не может быть ответом. Если вы столкнулись с какой-либо проблемой, вы можете либо оставить комментарий (для этого вам требуется не менее 50 репутации), либо задать новый вопрос. - person Paresh Mayani; 06.06.2014