Hi,
I want to attach large files to oracle web center content remotely. At first I use generic web services for doing that but exception occurred. Then I realized generic web service don't support MTOM so we can't use them for attaching large files!
after that I use RIDC java API to do that. in this case when I upload file with about 700MB everything is OK but when I choose larger file near 1G the exception below occur:
oracle.stellent.ridc.protocol.ServiceException: Content item 'TESTRIDC111' was not successfully checked in. IOException The error was caused by an internally generated issue. The error has been logged.
at oracle.stellent.ridc.protocol.ServiceResponse.getResponseAsBinder(ServiceResponse.java:142)
at oracle.stellent.ridc.protocol.ServiceResponse.getResponseAsBinder(ServiceResponse.java:108)
at com.irisaco.CallECMServices.checkIn(CallECMServices.java:172)
at com.irisaco.CallECMServices.main(CallECMServices.java:67)
and when I choose file with 2G below error occur:
WARNING: Bad socket detected, attempting retry [2]
- oracle.stellent.ridc.protocol.ProtocolException: java.net.SocketTimeoutException: Read timed out
at oracle.stellent.ridc.protocol.intradoc.HdaProtocol.readResponse(HdaProtocol.java:255)
at oracle.stellent.ridc.IdcClient.sendRequest(IdcClient.java:184)
at com.irisaco.CallECMServices.checkIn(CallECMServices.java:164)
at com.irisaco.CallECMServices.main(CallECMServices.java:64)
My code is :
IdcClientManager manager = new IdcClientManager();
IdcClient idcClient;
idcClient = manager.createClient(ECMServer);
idcClient.getConfig ().setSocketTimeout (900000);
IdcContext userContext = new IdcContext(weblogicUser);
DataBinder binder = idcClient.createBinder();
// populate the binder with the parameters
binder.putLocal("IdcService", "CHECKIN_UNIVERSAL");
// get the binder
binder.putLocal("dDocTitle", dDocTitle);
binder.putLocal("dDocName", dDocName);
binder.putLocal("dDocType", dDocType);
binder.putLocal("dSecurityGroup", dSecurityGroup);
binder.putLocal("dDocAuthor", dDocAuthor);
binder.putLocal("dDocAccount", dDocAccount);
binder.addFile("primaryFile", new TransferFile(new File(path)));
// check in the file
ServiceResponse response =
idcClient.sendRequest(userContext, binder);
DataBinder responseBinder = response.getResponseAsBinder();
String dID = responseBinder.getLocal("dID");
At first please inform me is there any way to use generic web service for doing that?
Second is there any limitation for calling RIDC API in file size? if there is not why these exception occur?
any help would be appreciated