Tuesday, 30 October 2018

IBM Operational Decision Manager - JSF a-no-no

I saw this: -

...
[30/10/18 14:56:55:795 GMT] 000000b0 ServletWrappe E com.ibm.ws.webcontainer.servlet.ServletWrapper service SRVE0014E: Uncaught service() exception root cause Faces Servlet: com.ibm.websphere.servlet.error.ServletErrorReport: com.ibm.ws.jsp.JspCoreException: Unable to convert string '#{ManagerBean.localeStr}' to class javax.el.ValueExpression for attribute locale: java.lang.IllegalArgumentException: Property Editor not registered with the PropertyEditorManager
        at org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:732)

...
Caused by: com.ibm.ws.jsp.JspCoreException: Unable to convert string '#{ManagerBean.localeStr}' to class javax.el.ValueExpression for attribute locale: java.lang.IllegalArgumentException: Property Editor not registered with the PropertyEditorManager

whilst attempting to log into a newly built IBM Operational Decision Manager (ODM) Rules environment, specifically the Decision Center ( aka the Rule Team Server ) : -


For the record, I'm running ODM 8.9.2.1 on WAS ND 8.5.5.14 and IBM Java 8: -

/opt/ibm/InstallationManager/eclipse/tools/imcl listInstalledPackages -features

com.ibm.cic.agent_1.8.9001.20180709_1302 : 
com.ibm.websphere.ND.v85_8.5.5014.20180802_1018 : com.ibm.sdk.6_64bit,ejbdeploy,embeddablecontainer,thinclient
com.ibm.websphere.odm.dc.v89_8.9.2001.20180723_1215 : Decision Center,com.ibm.wbdm.dts.was.feature
com.ibm.websphere.odm.ds.rules.v89_8.9.2001.20180723_1224 : com.ibm.wds.rules.res.feature,com.ibm.wds.rules.res.was.feature


This IBM developerWorks Answer: -


had the … answer 

It looks like it's a disparity between the version of Java Server Faces (JSF) that ODM uses and either WAS or Java.

The solution is to reconfigure the underlying Java Enterprise Edition (JEE) web applications ( Web Archives / WAR files ) to load their via own class loader first ( parent last ) rather than the default of using the WAS class loader.

Apart from that, it was also necessary to override session management and clear down the WAS temp folder at the profile root: -

ls /opt/ibm/WebSphere/AppServer/profiles/AppSrv01/temp/Node1/DecisionCenterClusterMember1/ILOG_Rule_Team_Server/

decisioncenter.war  teamserver.war

As it's my own VM, I simply chose to nuke the entire temp folder: -

rm -Rf ls /opt/ibm/WebSphere/AppServer/profiles/AppSrv01/temp

but that's definitely a YMMV case.

Once I did all of the above, and restarted the Decision Center cluster, all was good :-)

No comments:

Note to self - use kubectl to query images in a pod or deployment

In both cases, we use JSON ... For a deployment, we can do this: - kubectl get deployment foobar --namespace snafu --output jsonpath="{...