Unable to call DOC_INFO_BY_NAME from a Custom WCC Java Service -


i'm creating custom java component processing based on passed in excel files. files keyed off of content id. 1 of first things application after reading excel file call doc_info_by_name.

in short: why can't doc_info_by_name name find dprocessingstate , how fix it?

full details below


however, when following error message:

error getting doc_info 'localhost16200000001'. unable retrieve information 'localhost16200000001'. unable retrieve file format information. cannot find parameter 'dprocessingstate'. [ details ]

an error has occurred. stack trace below shows more information.

!$error getting doc_info 'localhost16200000001'.!csunabletogetrevinfo2,localhost16200000001!csunabletogetfileformatinfo!syparameternotfound,dprocessingstate intradoc.common.serviceexception: !csunabletogetrevinfo2,localhost16200000001!csunabletogetfileformatinfo         @ intradoc.server.servicerequestimplementor.buildserviceexception(servicerequestimplementor.java:2176)         @ intradoc.server.service.buildserviceexception(service.java:2404)         @ intradoc.server.service.createserviceexceptionex(service.java:2398)         @ intradoc.server.service.createserviceexception(service.java:2393)         @ intradoc.server.doccommonhandler.getdocformats(doccommonhandler.java:271)         @ sun.reflect.nativemethodaccessorimpl.invoke0(native method)         @ sun.reflect.nativemethodaccessorimpl.invoke(nativemethodaccessorimpl.java:39)         @ sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl.java:25)         @ java.lang.reflect.method.invoke(method.java:597)         @ intradoc.common.idcmethodholder.invokemethod(idcmethodholder.java:86)         @ intradoc.common.classhelperutils.executemethodreportstatus(classhelperutils.java:324)         @ intradoc.server.servicehandler.executeaction(servicehandler.java:79)         @ intradoc.server.service.docodeex(service.java:622)         @ intradoc.server.service.docode(service.java:594)         @ intradoc.server.servicerequestimplementor.doaction(servicerequestimplementor.java:1693)         @ intradoc.server.service.doaction(service.java:566)         @ intradoc.server.servicerequestimplementor.doactions(servicerequestimplementor.java:1483)         @ intradoc.server.service.doactions(service.java:561)         @ intradoc.server.servicerequestimplementor.executeactions(servicerequestimplementor.java:1415)         @ intradoc.server.service.executeactions(service.java:547)         @ intradoc.server.servicerequestimplementor.dorequestinternalex(servicerequestimplementor.java:958)         @ intradoc.server.servicerequestimplementor.executeservicetoplevelsimple(servicerequestimplementor.java:1070)         @ com.lowes.content.edam.massmetadataupdate.service.types.serviceswrapper.executeservice(serviceswrapper.java:139)         @ com.lowes.content.edam.massmetadataupdate.service.file.getfileservice.getdocinfo(getfileservice.java:478)         @ com.lowes.content.edam.massmetadataupdate.service.servicefieldmapper.getmappings(servicefieldmapper.java:76)         @ com.lowes.content.edam.massmetadataupdate.file.mapper.impl.fieldmapworker.doinbackground(fieldmapworker.java:107)         @ com.lowes.content.edam.massmetadataupdate.file.mapper.impl.fieldmapworker.doinbackground(fieldmapworker.java:37)         @ javax.swing.swingworker$1.call(swingworker.java:277)         @ java.util.concurrent.futuretask$sync.innerrun(futuretask.java:303)         @ java.util.concurrent.futuretask.run(futuretask.java:138)         @ javax.swing.swingworker.run(swingworker.java:316)         @ java.util.concurrent.threadpoolexecutor$worker.runtask(threadpoolexecutor.java:895)         @ java.util.concurrent.threadpoolexecutor$worker.run(threadpoolexecutor.java:918)         @ java.lang.thread.run(thread.java:662) caused by: intradoc.data.dataexception: !syparameternotfound,dprocessingstate         @ intradoc.data.databinder.getex(databinder.java:1258)         @ intradoc.data.databinder.get(databinder.java:1057)         @ intradoc.server.doccommonhandler.getprocessingstate(doccommonhandler.java:277)         @ intradoc.server.doccommonhandler.getdocformats(doccommonhandler.java:184)         @ sun.reflect.nativemethodaccessorimpl.invoke0(native method)         @ sun.reflect.nativemethodaccessorimpl.invoke(nativemethodaccessorimpl.java:39)         @ sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl.java:25)         @ java.lang.reflect.method.invoke(method.java:597)         @ intradoc.common.idcmethodholder.invokemethod(idcmethodholder.java:87)         @ intradoc.common.classhelperutils.executemethodreportstatus(classhelperutils.java:324)         @ intradoc.server.servicehandler.executeaction(servicehandler.java:79)         @ intradoc.server.service.docodeex(service.java:622)         @ intradoc.server.service.docode(service.java:595)         ... 20 more 

i've tried multiple ways of calling additional service.
i'm using:

public databinder executeservice(databinder binder, workspace workspace)         throws dataexception, serviceexception  {     final string servicename = binder.getlocal(services.idcservice);    //check remote_user   string username = binder.getenvironmentvalue("remote_user");    if ( null == username || "".equals(username.trim()))            {      log.warn("username not found, searching binder.");      try { username = binder.get("duser"); }      catch (dataexception de) { log.error("unable username.", de); }      if ( null != username && !"".equals(username.trim()))                  { binder.setenvironmentvalue("remote_user", username); }      else { throw new illegalstateexception("username required!"); }   }    //clear idctoken   binder.getlocaldata().remove("idctoken");    log.info("about run '" + servicename + "' '" + username +"'");    try    {      log.info("calling service " + servicename + ": "               + binder.getlocaldata().tostring());      // execute service      service.createrequestimplementor();      service.getrequestimplementor()             .executeservicetoplevelsimple(binder, servicename,                                            service.getuserdata());      log.info("finished calling service");      return service.getbinder();   }    catch (dataexception e)    {      string msg = "unexpected failure executing service '"+servicename+"'";      log.info(msg, e);      throw e; //log , duck   } } 

so why can't wcc find dprocessingstate, , how fix it?

your way of calling service standard , don't think reason. first guess other code interfering call doc_info_by_name. if disable other custom code (perhaps easier said done) , call service in clean component, think it'll work. second candidate reconsider if custom service should fileservice. not sure if affects result, perhaps worth try.


Comments