Problem creating session from withing xpage

I have implemented Freemarker as a template engine that returns html to an xpage via serverside javascript. I’m glad to say this works perfectly :slight_smile:

However, in Freemarker you can extend the template engine by making custom directives that are implemented from a Template interface in a custom class. This also works fine, at least with a simple Hello World example.

Of course I want to extend the template so that it can read Notesdata, and to do that, I need to create a NotesSession. The directive class is instanciated once, and kept around, so I can’t start passing Notes classes around, as they will be recycled.

This guy has a similar problem: http://www-10.lotus.com/ldd/nd85forum.nsf/5f27803bba85d8e285256bf10054620d/2de9170c5553accf8525763a00640cbe?OpenDocument&Highlight=0,createSession

So I either Session==null when extending the AgentBase or I get an “Cannot create session from agent” when using the other methods of creating a session.

So, my question: Does anybody have any clue as to how this could possibly be solved?

I am adding my stacktrace, if you can get any meaning from it.

regards,

Bjørn

28.10.2009 23:11:25 HTTP JVM: NotesException: Cannot create a session from an agent

28.10.2009 23:11:25 HTTP JVM: at lotus.domino.local.Session.checkSecurityManagerExtender(Unknown Source)

28.10.2009 23:11:25 HTTP JVM: at lotus.domino.local.Session.createSession(Unknown Source)

28.10.2009 23:11:25 HTTP JVM: at lotus.domino.NotesFactory.createSession(Unknown Source)

28.10.2009 23:11:25 HTTP JVM: at no.wpc.isite.ResourceDirective.execute(ResourceDirective.java:56)

28.10.2009 23:11:25 HTTP JVM: at freemarker.core.Environment.visit(Environment.java:262)

28.10.2009 23:11:25 HTTP JVM: at freemarker.core.UnifiedCall.accept(UnifiedCall.java:126)

28.10.2009 23:11:25 HTTP JVM: at freemarker.core.Environment.visit(Environment.java:209)

28.10.2009 23:11:25 HTTP JVM: at freemarker.core.MixedContent.accept(MixedContent.java:92)

28.10.2009 23:11:25 HTTP JVM: at freemarker.core.Environment.visit(Environment.java:209)

28.10.2009 23:11:25 HTTP JVM: at freemarker.core.Environment.process(Environment.java:189)

28.10.2009 23:11:25 HTTP JVM: at freemarker.template.Template.process(Template.java:237)

28.10.2009 23:11:25 HTTP JVM: at sun.reflect.GeneratedMethodAccessor56.invoke(Unknown Source)

28.10.2009 23:11:25 HTTP JVM: at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)

28.10.2009 23:11:25 HTTP JVM: at java.lang.reflect.Method.invoke(Method.java:599)

28.10.2009 23:11:25 HTTP JVM: at com.ibm.jscript.types.JavaAccessObject.call(JavaAccessObject.java:309)

28.10.2009 23:11:25 HTTP JVM: at com.ibm.jscript.types.FBSObject.call(FBSObject.java:153)

28.10.2009 23:11:25 HTTP JVM: at com.ibm.jscript.ASTTree.ASTCall.interpret(ASTCall.java:171)

28.10.2009 23:11:25 HTTP JVM: at com.ibm.jscript.ASTTree.ASTBlock.interpret(ASTBlock.java:101)

28.10.2009 23:11:25 HTTP JVM: at com.ibm.jscript.ASTTree.ASTTry.interpret(ASTTry.java:100)

28.10.2009 23:11:25 HTTP JVM: at com.ibm.jscript.std.FunctionObject._executeFunction(FunctionObject.java:234)

28.10.2009 23:11:25 HTTP JVM: at com.ibm.jscript.std.FunctionObject.executeFunction(FunctionObject.java:162)

28.10.2009 23:11:25 HTTP JVM: at com.ibm.jscript.std.FunctionObject.call(FunctionObject.java:148)

28.10.2009 23:11:25 HTTP JVM: at com.ibm.jscript.types.FBSObject.call(FBSObject.java:153)

28.10.2009 23:11:25 HTTP JVM: at com.ibm.jscript.ASTTree.ASTCall.interpret(ASTCall.java:171)

28.10.2009 23:11:25 HTTP JVM: at com.ibm.jscript.ASTTree.ASTProgram.interpretEx(ASTProgram.java:102)

28.10.2009 23:11:25 HTTP JVM: at com.ibm.jscript.JSExpression._interpretExpression(JSExpression.java:438)

28.10.2009 23:11:25 HTTP JVM: at com.ibm.jscript.JSExpression.access$1(JSExpression.java:427)

28.10.2009 23:11:25 HTTP JVM: at com.ibm.jscript.JSExpression$2.run(JSExpression.java:417)

28.10.2009 23:11:25 HTTP JVM: at com.ibm.jscript.JSExpression$2.run(JSExpression.java:1)

28.10.2009 23:11:25 HTTP JVM: at java.security.AccessController.doPrivileged(AccessController.java:284)

28.10.2009 23:11:25 HTTP JVM: at com.ibm.jscript.JSExpression.interpretExpression(JSExpression.java:415)

28.10.2009 23:11:25 HTTP JVM: at com.ibm.jscript.JSExpression.evaluateValue(JSExpression.java:250)

28.10.2009 23:11:25 HTTP JVM: at com.ibm.jscript.JSExpression.evaluateValue(JSExpression.java:233)

28.10.2009 23:11:25 HTTP JVM: at com.ibm.xsp.javascript.JavaScriptInterpreter.interpret(JavaScriptInterpreter.java:193)

28.10.2009 23:11:25 HTTP JVM: at com.ibm.xsp.binding.javascript.JavaScriptMethodBinding.invoke(JavaScriptMethodBinding.java:111)

28.10.2009 23:11:25 HTTP JVM: at com.ibm.xsp.component.UIViewRootEx.invokePhaseMethodBinding(UIViewRootEx.java:1419)

28.10.2009 23:11:25 HTTP JVM: at com.ibm.xsp.controller.FacesControllerImpl.invokePhaseMethodBinding(FacesControllerImpl.java:440)

28.10.2009 23:11:25 HTTP JVM: at com.ibm.xsp.controller.FacesControllerImpl.access$0(FacesControllerImpl.java:431)

28.10.2009 23:11:25 HTTP JVM: at com.ibm.xsp.controller.FacesControllerImpl$ViewPhaseListener.afterPhase(FacesControllerImpl.java:485)

28.10.2009 23:11:25 HTTP JVM: at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:218)

28.10.2009 23:11:25 HTTP JVM: at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:120)

28.10.2009 23:11:25 HTTP JVM: at com.ibm.xsp.controller.FacesControllerImpl.render(FacesControllerImpl.java:257)

28.10.2009 23:11:25 HTTP JVM: at com.ibm.xsp.webapp.FacesServletEx.serviceView(FacesServletEx.java:175)

28.10.2009 23:11:25 HTTP JVM: at com.ibm.xsp.webapp.FacesServlet.service(FacesServlet.java:138)

28.10.2009 23:11:25 HTTP JVM: at com.ibm.xsp.webapp.FacesServletEx.service(FacesServletEx.java:131)

28.10.2009 23:11:25 HTTP JVM: at com.ibm.xsp.webapp.DesignerFacesServlet.service(DesignerFacesServlet.java:85)

28.10.2009 23:11:25 HTTP JVM: at com.ibm.designer.runtime.domino.adapter.ComponentModule.invokeServlet(ComponentModule.java:464)

28.10.2009 23:11:25 HTTP JVM: at com.ibm.domino.xsp.module.nsf.NSFComponentModule.invokeServlet(NSFComponentModule.java:673)

28.10.2009 23:11:25 HTTP JVM: at com.ibm.designer.runtime.domino.adapter.ComponentModule$AdapterInvoker.invokeServlet(ComponentModule.java:730)

28.10.2009 23:11:25 HTTP JVM: at com.ibm.designer.runtime.domino.adapter.ComponentModule$ServletInvoker.doService(ComponentModule.java:684)

28.10.2009 23:11:25 HTTP JVM: at com.ibm.designer.runtime.domino.adapter.ComponentModule.doService(ComponentModule.java:453)

28.10.2009 23:11:25 HTTP JVM: at com.ibm.domino.xsp.module.nsf.NSFComponentModule.doService(NSFComponentModule.java:657)

28.10.2009 23:11:25 HTTP JVM: at com.ibm.domino.xsp.module.nsf.NSFService.doService(NSFService.java:254)

28.10.2009 23:11:25 HTTP JVM: at com.ibm.designer.runtime.domino.adapter.LCDEnvironment.doService(LCDEnvironment.java:259)

28.10.2009 23:11:25 HTTP JVM: at com.ibm.designer.runtime.domino.adapter.LCDEnvironment.service(LCDEnvironment.java:216)

28.10.2009 23:11:25 HTTP JVM: at com.ibm.domino.xsp.bridge.http.engine.XspCmdManager.service(XspCmdManager.java:279)