XPages - 'Simple' open page issue

Hi,

Another problem I’m afraid. I have 2 Xpages “page 1” and “page 2”. Page 1 has a button which when the ‘onclick’ event is fired, it runs a ‘simple action’ of ‘open page’ (which is page 2 in this case). When I run this under basic authentication (http) this works, but if I run it under secure (https) it doesn’t. Instead I get the following error output. Anyone have any suggestions about what could be causing the issue?

One possible workaround I have is, if I could have a line of code (server side javascript) where I could declare the full url path of the new page and not just the page name (as you do in the ‘simple action open page’ function) this should work. Does anyone know how to open a url in server side javascript? (i.e. the SS JS equivalent of the client side version “window.open(url);”)

As always, thanks for any suggestions.

[Stack trace removed]

Subject: Open url in SSJS

You can use this code to redirect to a specified URL

var extCont = facesContext.getExternalContext();

extCont.redirect(“YOUR_URL”)

Subject: Works in Http but not Https (SSL)

Thanks for the suggestion, I appreciate the help.

The code works great when not using SSL on our system but fails miserably when we have SSL turned on in the database (https).

In case I am going about this completely wrong, here’s what I’m trying to achieve:-

We have a submit button that has a ‘simple action’ that ‘executes script’ (SSJS). The idea is onclick, the SSJS is run (which pulls information from a table and converts them into text lists for the notes database) and then the document is submitted. This part works great. We have a second ‘simple action’ of ‘open page’ after the execute script section, that redirects them back to the main page. This is where it goes wrong. This all works without SSL but when SSL is turned on again it doesn’t like the ‘open page’ simple action anymore (see first post for stack trace).

With the ‘simple action’ going out the window I thought maybe my only resort would be to approach this from SSJS but it looks like even that hasn’t gone well.

I have copied in the latest stack trace (when using Paul’s suggestion; thanks again Paul) in case it gives anyone a clue why we’re having trouble with this … it shouldn’t be this hard to redirect to another page after submitting… should it?

Error source

Page Name:/test.xsp

Control Id: button1

Property: onclick

Exception

Error while executing JavaScript action expression

Script interpreter error, line=2, col=9: Error calling method ‘redirect(string)’ on java class ‘com.ibm.xsp.domino.context.DominoExternalContext’

Portal.xsp

Javascript code

1: var extCont = facesContext.getExternalContext();

2: extCont.redirect(“Portal.xsp”)

► ▼ Stack Trace

javax.faces.FacesException: Error while executing JavaScript action expression

com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:102)

com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:210)

com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:96)

com.ibm.xsp.controller.FacesControllerImpl.execute(FacesControllerImpl.java:226)

com.ibm.xsp.webapp.FacesServlet.serviceView(FacesServlet.java:183)

com.ibm.xsp.webapp.FacesServletEx.serviceView(FacesServletEx.java:151)

com.ibm.xsp.webapp.FacesServlet.service(FacesServlet.java:148)

com.ibm.xsp.webapp.FacesServletEx.service(FacesServletEx.java:128)

com.ibm.xsp.webapp.DesignerFacesServlet.service(DesignerFacesServlet.java:113)

com.ibm.designer.runtime.domino.adapter.ComponentModule.invokeServlet(ComponentModule.java:354)

com.ibm.domino.xsp.module.nsf.NSFComponentModule.invokeServlet(NSFComponentModule.java:414)

com.ibm.designer.runtime.domino.adapter.ComponentModule$AdapterInvoker.invokeServlet(ComponentModule.java:508)

com.ibm.designer.runtime.domino.adapter.ComponentModule$ServletInvoker.doService(ComponentModule.java:451)

com.ibm.designer.runtime.domino.adapter.ComponentModule.doService(ComponentModule.java:343)

com.ibm.domino.xsp.module.nsf.NSFComponentModule.doService(NSFComponentModule.java:398)

com.ibm.domino.xsp.module.nsf.NSFService.doService(NSFService.java:143)

com.ibm.designer.runtime.domino.adapter.LCDEnvironment.doService(LCDEnvironment.java:221)

com.ibm.designer.runtime.domino.adapter.LCDEnvironment.service(LCDEnvironment.java:183)

com.ibm.domino.xsp.bridge.http.engine.XspCmdManager.service(XspCmdManager.java:222)

com.ibm.xsp.exception.EvaluationExceptionEx: Error while executing JavaScript action expression

com.ibm.xsp.binding.javascript.JavaScriptMethodBinding.invoke(JavaScriptMethodBinding.java:117)

com.ibm.xsp.application.ActionListenerImpl.processAction(ActionListenerImpl.java:59)

javax.faces.component.UICommand.broadcast(UICommand.java:324)

com.ibm.xsp.component.UIEventHandler.broadcast(UIEventHandler.java:333)

com.ibm.xsp.component.FacesEventWrapper.broadcast(FacesEventWrapper.java:69)

com.ibm.xsp.component.UIFormEx.broadcast(UIFormEx.java:239)

com.ibm.xsp.component.FacesEventWrapper.broadcast(FacesEventWrapper.java:69)

com.ibm.xsp.component.UIViewRootEx.broadcast(UIViewRootEx.java:817)

javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:289)

javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:409)

com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:94)

com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:210)

com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:96)

com.ibm.xsp.controller.FacesControllerImpl.execute(FacesControllerImpl.java:226)

com.ibm.xsp.webapp.FacesServlet.serviceView(FacesServlet.java:183)

com.ibm.xsp.webapp.FacesServletEx.serviceView(FacesServletEx.java:151)

com.ibm.xsp.webapp.FacesServlet.service(FacesServlet.java:148)

com.ibm.xsp.webapp.FacesServletEx.service(FacesServletEx.java:128)

com.ibm.xsp.webapp.DesignerFacesServlet.service(DesignerFacesServlet.java:113)

com.ibm.designer.runtime.domino.adapter.ComponentModule.invokeServlet(ComponentModule.java:354)

com.ibm.domino.xsp.module.nsf.NSFComponentModule.invokeServlet(NSFComponentModule.java:414)

com.ibm.designer.runtime.domino.adapter.ComponentModule$AdapterInvoker.invokeServlet(ComponentModule.java:508)

com.ibm.designer.runtime.domino.adapter.ComponentModule$ServletInvoker.doService(ComponentModule.java:451)

com.ibm.designer.runtime.domino.adapter.ComponentModule.doService(ComponentModule.java:343)

com.ibm.domino.xsp.module.nsf.NSFComponentModule.doService(NSFComponentModule.java:398)

com.ibm.domino.xsp.module.nsf.NSFService.doService(NSFService.java:143)

com.ibm.designer.runtime.domino.adapter.LCDEnvironment.doService(LCDEnvironment.java:221)

com.ibm.designer.runtime.domino.adapter.LCDEnvironment.service(LCDEnvironment.java:183)

com.ibm.domino.xsp.bridge.http.engine.XspCmdManager.service(XspCmdManager.java:222)

com.ibm.jscript.InterpretException: Script interpreter error, line=2, col=9: Error calling method ‘redirect(string)’ on java class ‘com.ibm.xsp.domino.context.DominoExternalContext’

com.ibm.jscript.types.JavaAccessObject.call(JavaAccessObject.java:273)

com.ibm.jscript.types.FBSObject.call(FBSObject.java:142)

com.ibm.jscript.ASTTree.ASTCall.interpret(ASTCall.java:146)

com.ibm.jscript.ASTTree.ASTProgram.interpretEx(ASTProgram.java:100)

com.ibm.jscript.JSExpression.interpretExpression(JSExpression.java:396)

com.ibm.jscript.JSExpression.evaluateValue(JSExpression.java:247)

com.ibm.jscript.JSExpression.evaluateValue(JSExpression.java:234)

com.ibm.xsp.javascript.JavaScriptInterpreter.interpret(JavaScriptInterpreter.java:193)

com.ibm.xsp.binding.javascript.JavaScriptMethodBinding.invoke(JavaScriptMethodBinding.java:102)

com.ibm.xsp.application.ActionListenerImpl.processAction(ActionListenerImpl.java:59)

javax.faces.component.UICommand.broadcast(UICommand.java:324)

com.ibm.xsp.component.UIEventHandler.broadcast(UIEventHandler.java:333)

com.ibm.xsp.component.FacesEventWrapper.broadcast(FacesEventWrapper.java:69)

com.ibm.xsp.component.UIFormEx.broadcast(UIFormEx.java:239)

com.ibm.xsp.component.FacesEventWrapper.broadcast(FacesEventWrapper.java:69)

com.ibm.xsp.component.UIViewRootEx.broadcast(UIViewRootEx.java:817)

javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:289)

javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:409)

com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:94)

com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:210)

com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:96)

com.ibm.xsp.controller.FacesControllerImpl.execute(FacesControllerImpl.java:226)

com.ibm.xsp.webapp.FacesServlet.serviceView(FacesServlet.java:183)

com.ibm.xsp.webapp.FacesServletEx.serviceView(FacesServletEx.java:151)

com.ibm.xsp.webapp.FacesServlet.service(FacesServlet.java:148)

com.ibm.xsp.webapp.FacesServletEx.service(FacesServletEx.java:128)

com.ibm.xsp.webapp.DesignerFacesServlet.service(DesignerFacesServlet.java:113)

com.ibm.designer.runtime.domino.adapter.ComponentModule.invokeServlet(ComponentModule.java:354)

com.ibm.domino.xsp.module.nsf.NSFComponentModule.invokeServlet(NSFComponentModule.java:414)

com.ibm.designer.runtime.domino.adapter.ComponentModule$AdapterInvoker.invokeServlet(ComponentModule.java:508)

com.ibm.designer.runtime.domino.adapter.ComponentModule$ServletInvoker.doService(ComponentModule.java:451)

com.ibm.designer.runtime.domino.adapter.ComponentModule.doService(ComponentModule.java:343)

com.ibm.domino.xsp.module.nsf.NSFComponentModule.doService(NSFComponentModule.java:398)

com.ibm.domino.xsp.module.nsf.NSFService.doService(NSFService.java:143)

com.ibm.designer.runtime.domino.adapter.LCDEnvironment.doService(LCDEnvironment.java:221)

com.ibm.designer.runtime.domino.adapter.LCDEnvironment.service(LCDEnvironment.java:183)

com.ibm.domino.xsp.bridge.http.engine.XspCmdManager.service(XspCmdManager.java:222)

java.lang.IllegalArgumentException: Portal.xsp

com.ibm.domino.xsp.bridge.http.servlet.XspCmdHttpServletResponse.toAbsolute(XspCmdHttpServletResponse.java:512)

com.ibm.domino.xsp.bridge.http.servlet.XspCmdHttpServletResponse.sendRedirect(XspCmdHttpServletResponse.java:491)

com.ibm.designer.runtime.domino.adapter.servlet.LCDAdapterHttpServletResponse.sendRedirect(LCDAdapterHttpServletResponse.java:237)

com.ibm.xsp.webapp.XspHttpServletResponse.sendRedirect(XspHttpServletResponse.java:340)

com.sun.faces.context.ExternalContextImpl.redirect(ExternalContextImpl.java:336)

com.ibm.xsp.context.ExternalContextEx.redirect(ExternalContextEx.java:437)

com.ibm.xsp.domino.context.DominoExternalContext.redirect(DominoExternalContext.java:512)

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)

com.ibm.jscript.types.JavaAccessObject.call(JavaAccessObject.java:260)

com.ibm.jscript.types.FBSObject.call(FBSObject.java:142)

com.ibm.jscript.ASTTree.ASTCall.interpret(ASTCall.java:146)

com.ibm.jscript.ASTTree.ASTProgram.interpretEx(ASTProgram.java:100)

com.ibm.jscript.JSExpression.interpretExpression(JSExpression.java:396)

com.ibm.jscript.JSExpression.evaluateValue(JSExpression.java:247)

com.ibm.jscript.JSExpression.evaluateValue(JSExpression.java:234)

com.ibm.xsp.javascript.JavaScriptInterpreter.interpret(JavaScriptInterpreter.java:193)

com.ibm.xsp.binding.javascript.JavaScriptMethodBinding.invoke(JavaScriptMethodBinding.java:102)

com.ibm.xsp.application.ActionListenerImpl.processAction(ActionListenerImpl.java:59)

javax.faces.component.UICommand.broadcast(UICommand.java:324)

com.ibm.xsp.component.UIEventHandler.broadcast(UIEventHandler.java:333)

com.ibm.xsp.component.FacesEventWrapper.broadcast(FacesEventWrapper.java:69)

com.ibm.xsp.component.UIFormEx.broadcast(UIFormEx.java:239)

com.ibm.xsp.component.FacesEventWrapper.broadcast(FacesEventWrapper.java:69)

com.ibm.xsp.component.UIViewRootEx.broadcast(UIViewRootEx.java:817)

javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:289)

javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:409)

com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:94)

com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:210)

com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:96)

com.ibm.xsp.controller.FacesControllerImpl.execute(FacesControllerImpl.java:226)

com.ibm.xsp.webapp.FacesServlet.serviceView(FacesServlet.java:183)

com.ibm.xsp.webapp.FacesServletEx.serviceView(FacesServletEx.java:151)

com.ibm.xsp.webapp.FacesServlet.service(FacesServlet.java:148)

com.ibm.xsp.webapp.FacesServletEx.service(FacesServletEx.java:128)

com.ibm.xsp.webapp.DesignerFacesServlet.service(DesignerFacesServlet.java:113)

com.ibm.designer.runtime.domino.adapter.ComponentModule.invokeServlet(ComponentModule.java:354)

com.ibm.domino.xsp.module.nsf.NSFComponentModule.invokeServlet(NSFComponentModule.java:414)

com.ibm.designer.runtime.domino.adapter.ComponentModule$AdapterInvoker.invokeServlet(ComponentModule.java:508)

com.ibm.designer.runtime.domino.adapter.ComponentModule$ServletInvoker.doService(ComponentModule.java:451)

com.ibm.designer.runtime.domino.adapter.ComponentModule.doService(ComponentModule.java:343)

com.ibm.domino.xsp.module.nsf.NSFComponentModule.doService(NSFComponentModule.java:398)

com.ibm.domino.xsp.module.nsf.NSFService.doService(NSFService.java:143)

com.ibm.designer.runtime.domino.adapter.LCDEnvironment.doService(LCDEnvironment.java:221)

com.ibm.designer.runtime.domino.adapter.LCDEnvironment.service(LCDEnvironment.java:183)

com.ibm.domino.xsp.bridge.http.engine.XspCmdManager.service(XspCmdManager.java:222)