Monday, August 19, 2013

How to manage with: INFO: JSF1027: [null] The ELResolvers for JSF were not registered with the JSP container.

The warning "The ELResolvers for JSF were not registered with the JSP container" thrown by JSF implementation layer has its source in class ELResolverInitPhaseListener in method populateFacesELResolverForJsp. This can occur when there can't be created appropriate instance of the Faces EL Resolver for JSF pages. As defined in JSF specification the implementation for the Faces ELResolver for JSP Pages is a set of ELResolvers inside of a CompositeELResolverinstance.

The main cause of cited error is any problem with implementation of ExpressionFactory. Faces 1.1 used the Application class as a factory for ValueBindingand and MethodBinding instances, but the Unified EL in JSF 1.2 and 2.* has the ExpressionFactory class instead as a factory for ValueExpression and MethodExpression instances.

The problem with ExpressionFactory denotes that Faces layer wasn't properly initialized. To resolve this error in the first check, if /WEB-INF/faces-config.xml configuration file is present and valid.


Additionaly in Faces 2.* and  Tomcat 6.0 you should perform additional steps:
  1. Download and put el-api2.* and el-impl2.* jar files in $TOMCAT_HOME/lib directory
  2. Register EL Factory in web.xml deployment descriptor:
<context-param>
     <param-name>com.sun.faces.expressionFactory</param-name>
     <param-value>com.sun.el.ExpressionFactoryImpl</param-value>
</context-param>

Friday, August 9, 2013

UCM CHECKIN_NEW_FOLIO Problem: Unable to checkin folio

Today about another UCM problem. How to avoid following error:
Unable to checkin folio. Unable to execute service GET_FILE and function computeDocID. Either dID must be specified or RevisionSelectionMethod must not force the choice of a dID.

I've got this error as from code as calling UCM service "by hand":
http://192.168.1.18:16200/cs/idcplg?IdcService=CHECKIN_NEW_FOLIO&templateName=&dDocType=Administration&dSecurityGroup=Public&dDocAuthor=sysadmin&dDocTitle=Nowe_folo_1&IsSoap=1

Here is the error stact trace:
!csUserEventMessage,weblogic,192.168.1.18:16200!$!csServiceDataException,GET_FILE,computeDocID!$!csGetFileNeedsParameter,LatestReleased
intradoc.common.ServiceException: !csServiceDataException,GET_FILE,computeDocID!$
*ScriptStack CHECKIN_NEW_FOLIO
3:loadOrCreateNewFolio,**no captured values**
        at intradoc.server.ServiceRequestImplementor.buildServiceException(ServiceRequestImplementor.java:2115)
        at intradoc.server.Service.buildServiceException(Service.java:2326)
        at intradoc.server.Service.createServiceExceptionEx(Service.java:2320)
        at intradoc.server.Service.createServiceException(Service.java:2315)
        at intradoc.server.ServiceRequestImplementor.handleActionException(ServiceRequestImplementor.java:1766)
        at intradoc.server.ServiceRequestImplementor.doAction(ServiceRequestImplementor.java:1716)
        at intradoc.server.Service.doAction(Service.java:547)
        at intradoc.server.ServiceRequestImplementor.doActions(ServiceRequestImplementor.java:1458)
        at intradoc.server.Service.doActions(Service.java:542)
        at folios.FolioManager.computeFolioFilePath(FolioManager.java:191)
        at folios.FolioManager.computeFolioFilePathSimple(FolioManager.java:78)
        at folios.FolioManager.readFolio(FolioManager.java:100)
        at folios.FolioHandler.loadOrCreateNewFolio(FolioHandler.java:176)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at intradoc.common.IdcMethodHolder.invokeMethod(IdcMethodHolder.java:86)
        at intradoc.common.ClassHelperUtils.executeMethodReportStatus(ClassHelperUtils.java:324)
        at intradoc.server.ServiceHandler.executeAction(ServiceHandler.java:79)
        at intradoc.server.Service.doCodeEx(Service.java:603)
        at intradoc.server.Service.doCode(Service.java:575)
        at intradoc.server.ServiceRequestImplementor.doAction(ServiceRequestImplementor.java:1643)
        at intradoc.server.Service.doAction(Service.java:547)
        at intradoc.server.ServiceRequestImplementor.doActions(ServiceRequestImplementor.java:1458)
        at intradoc.server.Service.doActions(Service.java:542)
        at intradoc.server.ServiceRequestImplementor.executeActions(ServiceRequestImplementor.java:1391)
        at intradoc.server.Service.executeActions(Service.java:528)
        at intradoc.server.ServiceRequestImplementor.doRequest(ServiceRequestImplementor.java:737)
        at intradoc.server.Service.doRequest(Service.java:1956)
        at intradoc.server.ServiceManager.processCommand(ServiceManager.java:437)
        at intradoc.server.IdcServerThread.processRequest(IdcServerThread.java:265)
        at intradoc.idcwls.IdcServletRequestUtils.doRequest(IdcServletRequestUtils.java:1354)
        at intradoc.idcwls.IdcServletRequestUtils.processFilterEvent(IdcServletRequestUtils.java:1731)
        at intradoc.idcwls.IdcIntegrateWrapper.processFilterEvent(IdcIntegrateWrapper.java:222)
        at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at idcservlet.common.IdcMethodHolder.invokeMethod(IdcMethodHolder.java:87)
        at idcservlet.common.ClassHelperUtils.executeMethodEx(ClassHelperUtils.java:305)
        at idcservlet.common.ClassHelperUtils.executeMethodWithArgs(ClassHelperUtils.java:278)
        at idcservlet.ServletUtils.executeContentServerIntegrateMethodOnConfig(ServletUtils.java:1704)
        at idcservlet.IdcFilter.doFilter(IdcFilter.java:457)
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
        at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:119)
        at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:315)
        at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:442)
        at oracle.security.jps.ee.http.JpsAbsFilter.runJaasMode(JpsAbsFilter.java:103)
        at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:171)
        at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:71)
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
        at oracle.dms.servlet.DMSServletFilter.doFilter(DMSServletFilter.java:139)
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
        at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:119)
        at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:315)
        at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:442)
        at oracle.security.jps.ee.http.JpsAbsFilter.runJaasMode(JpsAbsFilter.java:103)
        at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:171)
        at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:71)
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
        at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3730)
        at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3696)
        at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
        at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
        at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2273)
        at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2179)
        at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1490)
        at weblogic.work.ExecuteThread.execute(ExecuteThread.java:256)
        at weblogic.work.ExecuteThread.run(ExecuteThread.java:221)
Caused by: intradoc.data.DataException: !csGetFileNeedsParameter,LatestReleased
        at intradoc.server.utils.FileRevisionSelectionUtils.computeDocumentRevisionMethod(FileRevisionSelectionUtils.java:164)
        at intradoc.server.FileService.computeDocID(FileService.java:375)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at intradoc.common.IdcMethodHolder.invokeMethod(IdcMethodHolder.java:86)
        at intradoc.common.ClassHelperUtils.executeMethodEx(ClassHelperUtils.java:310)
        at intradoc.common.ClassHelperUtils.executeMethod(ClassHelperUtils.java:295)
        at intradoc.server.Service.doCodeEx(Service.java:621)
        at ziprenditions.ZipRenditionsHandler.callMethodRecursively(ZipRenditionsHandler.java:1704)
        at ziprenditions.ZipRenditionsHandler.computeDocID(ZipRenditionsHandler.java:700)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at intradoc.common.IdcMethodHolder.invokeMethod(IdcMethodHolder.java:86)
        at intradoc.common.ClassHelperUtils.executeMethodReportStatus(ClassHelperUtils.java:324)
        at intradoc.server.ServiceHandler.executeAction(ServiceHandler.java:79)
        at intradoc.server.Service.doCodeEx(Service.java:603)
        at intradoc.server.Service.doCode(Service.java:576)
        at intradoc.server.ServiceRequestImplementor.doAction(ServiceRequestImplementor.java:1643)
        at intradoc.server.Service.doAction(Service.java:547)
        at intradoc.server.ServiceRequestImplementor.doActions(ServiceRequestImplementor.java:1458)
        at intradoc.server.Service.doActions(Service.java:543)
        ... 70 more

As you can see I tried "check in" new simple folio (without template). Till now used solution works for me perfectly, and cited error was for me surprise.
After few hour of searching I found new, better solution. The service CHECKIN_NEW_FOLIO can be run with new parameter: CheckinType=simple, and service call URL should look like:
http://192.168.1.18:16200/cs/idcplg?IdcService=CHECKIN_NEW_FOLIO&CheckinType=simple&dDocType=Administration&dSecurityGroup=Public&dDocAuthor=sysadmin&dDocTitle=Nowe_folo_1&IsSoap=1