Greg
Greg

Reputation: 714

ClassNotFoundException in Domino 9

Domino 9.0.1
ExtLib: 9.0.1 v 4_20140226_1506
ODA: 1.5.0.201406241744

Current Situation
I develop my applications on a local server. I use a great deal of java along with both the extension libraries and the openNTF Domino API. My java classes are created in the perspective view in a Web Content/Web-INF/src folder. When I am ready for deployment, I create a template and convert the src files into a jar, and copy it into a Web Content/Web-INF/lib folder and add them to the build path while removing and deleting the src folder from build path and application respectively. I have found this to be a much more stable approach.

My templates from multiple applications run without issues on my local servers. Up until a week ago, these applications were also running without issue on a customer server. At some point, something on the server has changed and multiple applications are no longer running. I am getting the following Messages (some text is darkened out to protect the customer):
enter image description here


And the following stack trace:

com.ibm.xsp.exception.EvaluationExceptionEx: Error while executing JavaScript computed expression
    com.ibm.xsp.binding.javascript.JavaScriptValueBinding.getValue(JavaScriptValueBinding.java:132)
    javax.faces.component.UISelectItems.getValue(UISelectItems.java:123)
    com.ibm.xsp.component.UISelectItemsEx.getValue(UISelectItemsEx.java:64)
    com.sun.faces.util.Util.getSelectItems(Util.java:492)
    com.sun.faces.renderkit.html_basic.MenuRenderer.getOptionNumber(MenuRenderer.java:410)
    com.sun.faces.renderkit.html_basic.MenuRenderer.renderSelect(MenuRenderer.java:388)
    com.sun.faces.renderkit.html_basic.MenuRenderer.encodeEnd(MenuRenderer.java:357)
    com.ibm.xsp.renderkit.html_basic.MenuRenderer.encodeEnd(MenuRenderer.java:47)
    com.ibm.xsp.renderkit.ReadOnlyAdapterRenderer.encodeEnd(ReadOnlyAdapterRenderer.java:180)
    javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:1005)
    com.ibm.xsp.component.UISelectOneEx.encodeEnd(UISelectOneEx.java:331)
    com.ibm.xsp.util.FacesUtil.renderComponent(FacesUtil.java:858)
    com.ibm.xsp.util.FacesUtil.renderChildren(FacesUtil.java:873)
    com.ibm.xsp.renderkit.html_extended.HtmlBasicRenderer.encodeChildren(HtmlBasicRenderer.java:206)
    com.ibm.xsp.renderkit.ReadOnlyAdapterRenderer.encodeChildren(ReadOnlyAdapterRenderer.java:162)
    javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:979)
    com.ibm.xsp.util.FacesUtil.renderComponent(FacesUtil.java:844)
    com.ibm.xsp.util.FacesUtil.renderChildren(FacesUtil.java:873)
    com.ibm.xsp.renderkit.html_extended.HtmlBasicRenderer.encodeChildren(HtmlBasicRenderer.java:206)
    com.ibm.xsp.renderkit.ReadOnlyAdapterRenderer.encodeChildren(ReadOnlyAdapterRenderer.java:162)
    javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:979)
    com.ibm.xsp.util.FacesUtil.renderComponent(FacesUtil.java:844)
    com.ibm.xsp.util.FacesUtil.renderChildren(FacesUtil.java:873)
    com.ibm.xsp.renderkit.html_extended.HtmlBasicRenderer.encodeChildren(HtmlBasicRenderer.java:206)
    com.ibm.xsp.renderkit.ReadOnlyAdapterRenderer.encodeChildren(ReadOnlyAdapterRenderer.java:162)
    javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:979)
    com.ibm.xsp.util.FacesUtil.renderComponent(FacesUtil.java:844)
    com.ibm.xsp.util.FacesUtil.renderComponent(FacesUtil.java:853)
    com.ibm.xsp.util.FacesUtil.renderComponent(FacesUtil.java:853)
    com.ibm.xsp.util.FacesUtil.renderComponent(FacesUtil.java:853)
    com.ibm.xsp.util.FacesUtil.renderComponent(FacesUtil.java:853)
    com.ibm.xsp.util.FacesUtil.renderComponent(FacesUtil.java:853)
    com.ibm.xsp.util.FacesUtil.renderComponent(FacesUtil.java:853)
    com.ibm.xsp.component.UIViewRootEx._renderView(UIViewRootEx.java:1317)
    com.ibm.xsp.component.UIViewRootEx.renderView(UIViewRootEx.java:1255)
    com.ibm.xsp.application.ViewHandlerExImpl.doRender(ViewHandlerExImpl.java:651)
    com.ibm.xsp.application.ViewHandlerExImpl._renderView(ViewHandlerExImpl.java:321)
    com.ibm.xsp.application.ViewHandlerExImpl.renderView(ViewHandlerExImpl.java:336)
    com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:103)
    com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:210)
    com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:120)
    com.ibm.xsp.controller.FacesControllerImpl.render(FacesControllerImpl.java:270)
    com.ibm.xsp.webapp.FacesServlet.serviceView(FacesServlet.java:261)
    com.ibm.xsp.webapp.FacesServletEx.serviceView(FacesServletEx.java:157)
    com.ibm.xsp.webapp.FacesServlet.service(FacesServlet.java:160)
    com.ibm.xsp.webapp.FacesServletEx.service(FacesServletEx.java:138)
    com.ibm.xsp.webapp.DesignerFacesServlet.service(DesignerFacesServlet.java:103)
    com.ibm.designer.runtime.domino.adapter.ComponentModule.invokeServlet(ComponentModule.java:576)
    com.ibm.domino.xsp.module.nsf.NSFComponentModule.invokeServlet(NSFComponentModule.java:1335)
    com.ibm.designer.runtime.domino.adapter.ComponentModule$AdapterInvoker.invokeServlet(ComponentModule.java:853)
    com.ibm.designer.runtime.domino.adapter.ComponentModule$ServletInvoker.doService(ComponentModule.java:796)
    com.ibm.designer.runtime.domino.adapter.ComponentModule.doService(ComponentModule.java:565)
    com.ibm.domino.xsp.module.nsf.NSFComponentModule.doService(NSFComponentModule.java:1319)
    com.ibm.domino.xsp.module.nsf.NSFService.doServiceInternal(NSFService.java:662)
    com.ibm.domino.xsp.module.nsf.NSFService.doService(NSFService.java:482)
    org.openntf.domino.xsp.adapter.OpenntfHttpService.doService(OpenntfHttpService.java:89)
    com.ibm.designer.runtime.domino.adapter.LCDEnvironment.doService(LCDEnvironment.java:350)
    com.ibm.designer.runtime.domino.adapter.LCDEnvironment.service(LCDEnvironment.java:306)
    com.ibm.domino.xsp.bridge.http.engine.XspCmdManager.service(XspCmdManager.java:272)
javax.faces.FacesException: javax.faces.FacesException: Can't instantiate class: 'de.holistic.XXXX.searchEngine.SUDValuesManager'.. java.lang.ClassNotFoundException: class java.lang.NullPointerException: null
    com.sun.faces.application.ApplicationAssociate.createAndMaybeStoreManagedBeans(ApplicationAssociate.java:278)
    com.sun.faces.el.VariableResolverImpl.resolveVariable(VariableResolverImpl.java:135)
    com.ibm.xsp.el.VariableResolverImpl.resolveVariable(VariableResolverImpl.java:71)
    com.ibm.xsp.javascript.ServerSideLocalObject.resolveVariable(ServerSideLocalObject.java:97)
    com.ibm.xsp.javascript.ServerSideLocalObject.resolveAttribute(ServerSideLocalObject.java:73)
    com.ibm.xsp.javascript.AbstractLocalObject._get(AbstractLocalObject.java:119)
    com.ibm.xsp.javascript.AbstractLocalObject.getPropertyReference(AbstractLocalObject.java:101)
    com.ibm.jscript.engine.ProgramContext.findGlobalScopeIdentifier(ProgramContext.java:143)
    com.ibm.jscript.engine.ProgramContext.findIdentifier(ProgramContext.java:134)
    com.ibm.jscript.ASTTree.ASTIdentifier.interpret(ASTIdentifier.java:105)
    com.ibm.jscript.ASTTree.ASTMember.interpret(ASTMember.java:106)
    com.ibm.jscript.ASTTree.ASTCall.interpret(ASTCall.java:88)
    com.ibm.jscript.ASTTree.ASTArgumentList.interpretArguments(ASTArgumentList.java:65)
    com.ibm.jscript.types.FBSObject.call(FBSObject.java:153)
    com.ibm.jscript.ASTTree.ASTCall.interpret(ASTCall.java:197)
    com.ibm.jscript.ASTTree.ASTProgram.interpret(ASTProgram.java:119)
    com.ibm.jscript.ASTTree.ASTProgram.interpretEx(ASTProgram.java:139)
    com.ibm.jscript.JSExpression._interpretExpression(JSExpression.java:435)
    com.ibm.jscript.JSExpression.access$1(JSExpression.java:424)
    com.ibm.jscript.JSExpression$2.run(JSExpression.java:414)
    java.security.AccessController.doPrivileged(AccessController.java:362)
    com.ibm.jscript.JSExpression.interpretExpression(JSExpression.java:410)
    com.ibm.jscript.JSExpression.evaluateValue(JSExpression.java:251)
    com.ibm.jscript.JSExpression.evaluateValue(JSExpression.java:234)
    com.ibm.xsp.javascript.JavaScriptInterpreter.interpret(JavaScriptInterpreter.java:222)
    com.ibm.xsp.javascript.JavaScriptInterpreter.interpret(JavaScriptInterpreter.java:194)
    com.ibm.xsp.binding.javascript.JavaScriptValueBinding.getValue(JavaScriptValueBinding.java:78)
    javax.faces.component.UISelectItems.getValue(UISelectItems.java:123)
    com.ibm.xsp.component.UISelectItemsEx.getValue(UISelectItemsEx.java:64)
    com.sun.faces.util.Util.getSelectItems(Util.java:492)
    com.sun.faces.renderkit.html_basic.MenuRenderer.getOptionNumber(MenuRenderer.java:410)
    com.sun.faces.renderkit.html_basic.MenuRenderer.renderSelect(MenuRenderer.java:388)
    com.sun.faces.renderkit.html_basic.MenuRenderer.encodeEnd(MenuRenderer.java:357)
    com.ibm.xsp.renderkit.html_basic.MenuRenderer.encodeEnd(MenuRenderer.java:47)
    com.ibm.xsp.renderkit.ReadOnlyAdapterRenderer.encodeEnd(ReadOnlyAdapterRenderer.java:180)
    javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:1005)
    com.ibm.xsp.component.UISelectOneEx.encodeEnd(UISelectOneEx.java:331)
    com.ibm.xsp.util.FacesUtil.renderComponent(FacesUtil.java:858)
    com.ibm.xsp.util.FacesUtil.renderChildren(FacesUtil.java:873)
    com.ibm.xsp.renderkit.html_extended.HtmlBasicRenderer.encodeChildren(HtmlBasicRenderer.java:206)
    com.ibm.xsp.renderkit.ReadOnlyAdapterRenderer.encodeChildren(ReadOnlyAdapterRenderer.java:162)
    javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:979)
    com.ibm.xsp.util.FacesUtil.renderComponent(FacesUtil.java:844)
    com.ibm.xsp.util.FacesUtil.renderChildren(FacesUtil.java:873)
    com.ibm.xsp.renderkit.html_extended.HtmlBasicRenderer.encodeChildren(HtmlBasicRenderer.java:206)
    com.ibm.xsp.renderkit.ReadOnlyAdapterRenderer.encodeChildren(ReadOnlyAdapterRenderer.java:162)
    javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:979)
    com.ibm.xsp.util.FacesUtil.renderComponent(FacesUtil.java:844)
    com.ibm.xsp.util.FacesUtil.renderChildren(FacesUtil.java:873)
    com.ibm.xsp.renderkit.html_extended.HtmlBasicRenderer.encodeChildren(HtmlBasicRenderer.java:206)
    com.ibm.xsp.renderkit.ReadOnlyAdapterRenderer.encodeChildren(ReadOnlyAdapterRenderer.java:162)
    javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:979)
    com.ibm.xsp.util.FacesUtil.renderComponent(FacesUtil.java:844)
    com.ibm.xsp.util.FacesUtil.renderComponent(FacesUtil.java:853)
    com.ibm.xsp.util.FacesUtil.renderComponent(FacesUtil.java:853)
    com.ibm.xsp.util.FacesUtil.renderComponent(FacesUtil.java:853)
    com.ibm.xsp.util.FacesUtil.renderComponent(FacesUtil.java:853)
    com.ibm.xsp.util.FacesUtil.renderComponent(FacesUtil.java:853)
    com.ibm.xsp.util.FacesUtil.renderComponent(FacesUtil.java:853)
    com.ibm.xsp.component.UIViewRootEx._renderView(UIViewRootEx.java:1317)
    com.ibm.xsp.component.UIViewRootEx.renderView(UIViewRootEx.java:1255)
    com.ibm.xsp.application.ViewHandlerExImpl.doRender(ViewHandlerExImpl.java:651)
    com.ibm.xsp.application.ViewHandlerExImpl._renderView(ViewHandlerExImpl.java:321)
    com.ibm.xsp.application.ViewHandlerExImpl.renderView(ViewHandlerExImpl.java:336)
    com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:103)
    com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:210)
    com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:120)
    com.ibm.xsp.controller.FacesControllerImpl.render(FacesControllerImpl.java:270)
    com.ibm.xsp.webapp.FacesServlet.serviceView(FacesServlet.java:261)
    com.ibm.xsp.webapp.FacesServletEx.serviceView(FacesServletEx.java:157)
    com.ibm.xsp.webapp.FacesServlet.service(FacesServlet.java:160)
    com.ibm.xsp.webapp.FacesServletEx.service(FacesServletEx.java:138)
    com.ibm.xsp.webapp.DesignerFacesServlet.service(DesignerFacesServlet.java:103)
    com.ibm.designer.runtime.domino.adapter.ComponentModule.invokeServlet(ComponentModule.java:576)
    com.ibm.domino.xsp.module.nsf.NSFComponentModule.invokeServlet(NSFComponentModule.java:1335)
    com.ibm.designer.runtime.domino.adapter.ComponentModule$AdapterInvoker.invokeServlet(ComponentModule.java:853)
    com.ibm.designer.runtime.domino.adapter.ComponentModule$ServletInvoker.doService(ComponentModule.java:796)
    com.ibm.designer.runtime.domino.adapter.ComponentModule.doService(ComponentModule.java:565)
    com.ibm.domino.xsp.module.nsf.NSFComponentModule.doService(NSFComponentModule.java:1319)
    com.ibm.domino.xsp.module.nsf.NSFService.doServiceInternal(NSFService.java:662)
    com.ibm.domino.xsp.module.nsf.NSFService.doService(NSFService.java:482)
    org.openntf.domino.xsp.adapter.OpenntfHttpService.doService(OpenntfHttpService.java:89)
    com.ibm.designer.runtime.domino.adapter.LCDEnvironment.doService(LCDEnvironment.java:350)
    com.ibm.designer.runtime.domino.adapter.LCDEnvironment.service(LCDEnvironment.java:306)
    com.ibm.domino.xsp.bridge.http.engine.XspCmdManager.service(XspCmdManager.java:272)
javax.faces.FacesException: Can't instantiate class: 'de.holistic.<removed for customer anonyminity>.searchEngine.SUDValuesManager'.. java.lang.ClassNotFoundException: class java.lang.NullPointerException: null
    com.sun.faces.config.ManagedBeanFactory.newInstance(ManagedBeanFactory.java:234)
    com.sun.faces.application.ApplicationAssociate.createAndMaybeStoreManagedBeans(ApplicationAssociate.java:269)
    com.sun.faces.el.VariableResolverImpl.resolveVariable(VariableResolverImpl.java:135)
    com.ibm.xsp.el.VariableResolverImpl.resolveVariable(VariableResolverImpl.java:71)
    com.ibm.xsp.javascript.ServerSideLocalObject.resolveVariable(ServerSideLocalObject.java:97)
    com.ibm.xsp.javascript.ServerSideLocalObject.resolveAttribute(ServerSideLocalObject.java:73)
    com.ibm.xsp.javascript.AbstractLocalObject._get(AbstractLocalObject.java:119)
    com.ibm.xsp.javascript.AbstractLocalObject.getPropertyReference(AbstractLocalObject.java:101)
    com.ibm.jscript.engine.ProgramContext.findGlobalScopeIdentifier(ProgramContext.java:143)
    com.ibm.jscript.engine.ProgramContext.findIdentifier(ProgramContext.java:134)
    com.ibm.jscript.ASTTree.ASTIdentifier.interpret(ASTIdentifier.java:105)
    com.ibm.jscript.ASTTree.ASTMember.interpret(ASTMember.java:106)
    com.ibm.jscript.ASTTree.ASTCall.interpret(ASTCall.java:88)
    com.ibm.jscript.ASTTree.ASTArgumentList.interpretArguments(ASTArgumentList.java:65)
    com.ibm.jscript.types.FBSObject.call(FBSObject.java:153)
    com.ibm.jscript.ASTTree.ASTCall.interpret(ASTCall.java:197)
    com.ibm.jscript.ASTTree.ASTProgram.interpret(ASTProgram.java:119)
    com.ibm.jscript.ASTTree.ASTProgram.interpretEx(ASTProgram.java:139)
    com.ibm.jscript.JSExpression._interpretExpression(JSExpression.java:435)
    com.ibm.jscript.JSExpression.access$1(JSExpression.java:424)
    com.ibm.jscript.JSExpression$2.run(JSExpression.java:414)
    java.security.AccessController.doPrivileged(AccessController.java:362)
    com.ibm.jscript.JSExpression.interpretExpression(JSExpression.java:410)
    com.ibm.jscript.JSExpression.evaluateValue(JSExpression.java:251)
    com.ibm.jscript.JSExpression.evaluateValue(JSExpression.java:234)
    com.ibm.xsp.javascript.JavaScriptInterpreter.interpret(JavaScriptInterpreter.java:222)
    com.ibm.xsp.javascript.JavaScriptInterpreter.interpret(JavaScriptInterpreter.java:194)
    com.ibm.xsp.binding.javascript.JavaScriptValueBinding.getValue(JavaScriptValueBinding.java:78)
    javax.faces.component.UISelectItems.getValue(UISelectItems.java:123)
    com.ibm.xsp.component.UISelectItemsEx.getValue(UISelectItemsEx.java:64)
    com.sun.faces.util.Util.getSelectItems(Util.java:492)
    com.sun.faces.renderkit.html_basic.MenuRenderer.getOptionNumber(MenuRenderer.java:410)
    com.sun.faces.renderkit.html_basic.MenuRenderer.renderSelect(MenuRenderer.java:388)
    com.sun.faces.renderkit.html_basic.MenuRenderer.encodeEnd(MenuRenderer.java:357)
    com.ibm.xsp.renderkit.html_basic.MenuRenderer.encodeEnd(MenuRenderer.java:47)
    com.ibm.xsp.renderkit.ReadOnlyAdapterRenderer.encodeEnd(ReadOnlyAdapterRenderer.java:180)
    javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:1005)
    com.ibm.xsp.component.UISelectOneEx.encodeEnd(UISelectOneEx.java:331)
    com.ibm.xsp.util.FacesUtil.renderComponent(FacesUtil.java:858)
    com.ibm.xsp.util.FacesUtil.renderChildren(FacesUtil.java:873)
    com.ibm.xsp.renderkit.html_extended.HtmlBasicRenderer.encodeChildren(HtmlBasicRenderer.java:206)
    com.ibm.xsp.renderkit.ReadOnlyAdapterRenderer.encodeChildren(ReadOnlyAdapterRenderer.java:162)
    javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:979)
    com.ibm.xsp.util.FacesUtil.renderComponent(FacesUtil.java:844)
    com.ibm.xsp.util.FacesUtil.renderChildren(FacesUtil.java:873)
    com.ibm.xsp.renderkit.html_extended.HtmlBasicRenderer.encodeChildren(HtmlBasicRenderer.java:206)
    com.ibm.xsp.renderkit.ReadOnlyAdapterRenderer.encodeChildren(ReadOnlyAdapterRenderer.java:162)
    javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:979)
    com.ibm.xsp.util.FacesUtil.renderComponent(FacesUtil.java:844)
    com.ibm.xsp.util.FacesUtil.renderChildren(FacesUtil.java:873)
    com.ibm.xsp.renderkit.html_extended.HtmlBasicRenderer.encodeChildren(HtmlBasicRenderer.java:206)
    com.ibm.xsp.renderkit.ReadOnlyAdapterRenderer.encodeChildren(ReadOnlyAdapterRenderer.java:162)
    javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:979)
    com.ibm.xsp.util.FacesUtil.renderComponent(FacesUtil.java:844)
    com.ibm.xsp.util.FacesUtil.renderComponent(FacesUtil.java:853)
    com.ibm.xsp.util.FacesUtil.renderComponent(FacesUtil.java:853)
    com.ibm.xsp.util.FacesUtil.renderComponent(FacesUtil.java:853)


Attempted Solutions

  1. All projects have been resigned and rebuilt (numerous times).
  2. Notes.ini has been checked to ensure the loading of OSGi libraries. Additionally, console commands have been executed and loading of the libraries have been confirmed.
  3. Originally, the ExtLib Update site was changed in the Notes.ini. This was changed to point to the correct updateSite.nsf.
  4. Test XPage applications have been created on the server using ODA, ExtLibs, and basic classes. All Java classes could load properly, however these tests only use java classes stored in Web Content/WEB-INF/src and not jars. No issues with the test databases could be found.
  5. Using the Navigator, the Web Content/WEB-INF/Classes file has been deleted manually, and the projects have been rebuilt.
  6. Local content was deleted manually and the application was rebuilt.
  7. The domino server security document tab was checked to confirm that the signature of the applications was listed as allowed to run java and xpages.
  8. It goes without saying that the faces-config.xml file was checked to confirm proper spellings and for completeness. No issues were found.
  9. The build paths were checked to confirm that they are correctly set. No issues were seen.

Questions
If it can be assumed that someone changed server settings (as the OSGI notes.ini variable was changed) what could also be changed that would cause ClassNotFound runtime exceptions?

What else can I do to solve this issue? Again, locally, all applications are running normally. Only on the customer's test server am I getting these runtime exceptions.

Upvotes: 2

Views: 633

Answers (1)

Cameron Gregor
Cameron Gregor

Reputation: 1460

Something in your Constructor of SUDValuesManager is throwing a NullPointerException. I am fairly confident this is the case... because I have just had the same Exception of the same format:

javax.faces.FacesException: Can't instantiate class: 
<INSERT CLASS NAME HERE>.. 
java.lang.ClassNotFoundException: class java.lang.NullPointerException: null

NullPointerException is the real exception here, not the ClassNotFoundException. In my case, In my constructor I was accessing a view to populate some values. I wasn't testing for null on a view that I was retrieving (hence the NullPointerException) and this then also threw the ClassNotFoundException. Because I had not yet refreshed the design of the target database, it did not have the view, and this the Null Pointer Exception when I tried to retreive a viewEntryCollection from it.

Check your code in your constructor for SUDValuesManager for any possible NPE's that you are not guarding against, or surround it in a try/catch (Exception e) and print the stack trace of any caught exceptions.

Upvotes: 2

Related Questions