Which seeded page is called when session timeout happens
Hi All,
Our requirement is to route to custom page when session timeout happens. We are working on R11.
Any suggestions which seeded JSP/JAVA file is called when we try to access application after session time out ?
How to route to custom page when session timeout happens ?
Thanks in advance.
Regards,
S.K.
Hi Sk;
Please check below and see its helpful for your issue,similar topic discussed before here,
EBS connection time out
Re: ICX : Session Timeout
Forms session timeout
Also check:
http://www.solutionbeacon.com/best7.htm
Hope it helps
Regard
Helios
Similar Messages
-
Generating error page(in jsp) when session expires....
hello,
i want to generate error page(in jsp) when session get expires...
plz help me out.............You could do it according to the line BalusC supplied in another topic:
<meta http-equiv="refresh" content="<%= session.getMaxInactiveInterval() %>;url=login.jsp">The only thing you gotta change, is the URL, make it:
<meta http-equiv="refresh" content="<%= session.getMaxInactiveInterval() %>;url=error.jsp">Create 'error.jsp' and have the message 'Session expired, sorry!' or something printed. If you want to use error.jsp for more than just the session expiration, add a parameter to it:
<meta http-equiv="refresh" content="<%= session.getMaxInactiveInterval() %>;url=error.jsp?error=sessionexpired"> Place the following lines in your error.jsp:
String errormessage = request.getParameter("error");
if(errormessage.equals("sessionexpired")){
out.println("Your session has expired, sorry!");
}else if(errormessage.equals("whatever")){
// To do code here.
} -
How can i redirect a page to Login screen when sessionis timeout???
I have a problem in my portal development.
I set the "<b>Session timeout= 01</b>" parameter in the<b> Visual Administrator</b>
server_0 > services > Web Container
Runtime > sap.com/irj > irj (view button)
However, when the session is timeout then the page become to be "red"!!! That is, there is an Exception. I'd like to redirect the page to the "Login screen", but I don't know how. <b>Does anybody know how can I do it</b>?
Thanks in advance.Hi,
the http session invalidation must be checked at application level do it DYNPAGE only .you can call the following method.
public void expireSession(IPortalComponentRequest request)
long lastAccessedTime=request.getServletRequest().getSession().getLastAccessedTime();
Date currentDate = new Date();
Calendar currentDateCal = new GregorianCalendar();
currentDateCal.setTime(currentDate);
long systemTime = currentDateCal.getTimeInMillis();
long sessionExpiryTime = systemTime - lastAccessedTime;
long sessionExpiryTimeProp = 600000; //dont hard code.get from property file
if(sessionExpiryTime >= sessionExpiryTimeProp)
try
IPortalComponentResponse response=(IPortalComponentResponse)this.getResponse();
String sessionExpiryPage ="/irj/servlet/prt/portal/prtroot/com.sap.portal.masthead.LogOutComponent?logout_submit=true";
response.write ("<script language="javascript">");
response.write("parent.window.location.replace('"+sessionExpiryPage+"','','toolbar:No,status: No,location: N0');");
response.write("</script>");
}catch(Exception e) -
Which method will be called, when invoking home.create() ?
Hi,
In a Stateless session Bean, I want initialize some variables, whenever a bean is created or retrieved from the pool. So I used the ejbCreate() method to initialize the variables, but it is called only first time when I call the home.create(). If I call the home.create() method next time it doesn't call the ejbCreate().
Which method will be called, whenever I call home.create();.hi siva,
first of all Ejbcontainers maintain a pool of stateless sessionbeans .when you call home.create() the ejbCreate () method is definitely called and you said you are initializing some variable and may be you are trying to retrive that value after home.create() method.. when you try to retrive the value thee value may be same as you have initialized or different depending upon the no of stateless session beans in the container. you have created a bean and there is no guarantee that the same bean will be called when you invoke retrieval method..
i hope you understood.
cheers -
Session timeout happening every 2 2-3 hours
Hi All,
We are having one requirement that our dedicated session to Oracle Database 10g (10.2.0.5) should not get timeout, but it is getting timeout after 2-3 hours of idle time with connection lost contact error. We have checked that oracle user which connect to database is having profile (dba_profiles) which have idle time as "UNLIMITED" , apart from that also we have checked sqlnet.ora, this file is blank. Could you plz suggest that after these setting also why connection is getting timeout. We are connecting by pl-sql developer, toad session and sqlplus and we are getting same result.
Any suggestion is welcome.
ThanksThe issue might be caused by a network timeout, caused by exceeding the tcp_keep_alive time and/or by the general timeout for terminal sessions which exist in most Unix platforms.
As you don't specify any details as to what you are doing, on what platform you are, and where the session is running, there might be better solutions (like running stuff in batch, or in the background), but we are not at your desk, so no advice is possible.
Sybrand Bakker
Senior Oracle DBA -
In APEX clicking the hyper link doesn't trigger session timeout page
Hi All,
I have a question about the session time out in APEX application. I have created a simple APEX application. In the SQL report region section, i have code like this:
SELECT DOC_Name, DOC_URL,
'<a href="' || DOC_URL || ' target="_blank"/">Download file</a>' pdf_link
FROM test_table
where emp_number =00010001
When user clicks on the hyper link, it will display the destination page to user(for example if DOC_URL = 'http://forums.oracle.com', it will display the oracle forum page in a new browser).
But the issue is that, after user's session timeout (I set for 240 seconds through Shared Components>Edit Security Attributes, i set max the session timeout for example 240 seconds), when i click on this hyperlink, it doesn't trigger my session timeout page and it still displays the page (oracle forum page).
Why in APEX clicking the hyper link doesn't trigger session timeout page after the user session timeout???
how to implememt or fix to trigger the session timeout page after clicking on the hyperlinks?
(BTW, our APEX version is 3.2)
Thanks!Hi Lily,
the reason for that behavior is that APEX is not involved anymore if you click on an external link. That's completely handled by your browser.
To involve APEX timeout handling you could redirect to a specific page in your application which performs the final redirect.
For example:
1) Create a new page 999
2) Create hidden page item P999_URL
3) Create a before header PL/SQL process with the following source
owa_util.redirect_url('http://'||:P999_URL);
apex_application.g_unrecoverable_error := TRUE;If you want to embed a link, create a link to page 999 and set the page item P999_URL to forums.oracle.com
You could also add a white list into the above code to verify that you are just redirecting to valid URLs, so that nobody is using your trusted application URL for phishing attacks.
Hope that gives you a direction
Patrick
Regards
Patrick
My Blog: http://www.inside-oracle-apex.com
APEX 4.0 Plug-Ins: http://apex.oracle.com/plugins
Twitter: http://www.twitter.com/patrickwolf -
Webcenter Spaces internal error page and session timeout page customization
Hi
On what basis is an internal error page shown in webcenter spaces? What triggers it?
Is it possible to customize the internal error page that shows up on webcenter spaces?
Or atleast redirect to a custom error page on any exception occured?
Is there any other way to handle it?
Also, how to customize the session timeout page? Is it possible?
There seems to be a servlet being called for session timeout display i dont see any page being redirected to.
Environment details: Webcenter Spaces 11.1.1.6
Help needed on this asap please.
ThanksHi,
I was experiencing the same problem with customizing the session timeout page. I found out that you can set a custom webcenter attribute in the webcenter-config.xml called "wcSessionTimeoutURL" which overrides the default servlet response and redirects the the specified path.
In my example, I created a business role page, set it to be publically accessible, then used the Red Samurai MDS Cleaner taskflow to modify the custom attributes in webcenter-config.xml in the following way:
<webcenter:custom-attributes>
<attribute name="wcSessionTimeoutPeriod">
<description/>
<type>java.lang.String</type>
<value>45</value>
<visible/>
</attribute>
*<attribute name="wcSessionTimeoutURL">*
*<description/>*
*<type>java.lang.String</type>*
*<value>/faces/oracle/webcenter/page/scopedMD/s8bba98ff_4cbb_40b8_beee_296c916a23ed/businessRolePages/Page1.jspx</value>*
*<visible/>*
*</attribute>*
</webcenter:custom-attributes>
Hope that helps! -
How can I interrupt the blocking call when call timeout?
Hi,Guys
I wrote an application server(daemon process) to talk with oracle server
continuous which used oracle9 OCCI lib, each 5 min it executes the procedure
on the DB server.
Now I have come cross a problem:
If the network is blocked, app server will blocked at occi call and would
never pass, and no exception was catched :-(
for e.g.
1. Oracle server reboot without shutdown oracle process
2. udp broadcast message storm blocked the connection between app server and
oracle DB.
I consider maybe it's because OCCI using the blocking mode of connection
that caused this problem.
How can I interrupt the blocking call when call timeout?Manage the timeout using a separate thread. When the timeout happens, issue a break on the OCCI connection. There is no direct way as of now. You need to do this to break a OCCI connection.
retrieve the OCI handle from the OCCI handle (e.g. using Connection::getOCIServer or Connection::getOCIServiceContext methods) and issue a OCIBreak on it. Do not forget to allocate a error handle which should be passed to OCIBreak call. -
Hi everybody,
I have a question about portal session timeout. Now we have a javascript for session timeout in Masthead iview, which can increase the time for the active user. It uses EPCM to rase the event. But our page has four iveiws, and there is a iview form that use the javascript to submit the request, and don't refresh the whole page, so it can't call our session timeout javascript to increase the time.
Whether we can call the javascript from other iviews? Or do we have other ways to do the session timeout judge and increase the time by user's activity in sap portal ?
ThanksHi,
Try to subscribe to EPCM events on all navigations in your code, which will in turn update the timer
EPCM.subscribeEvent("urn:com.sapportals:navigation", "Navigate", pop);
EPCM.subscribeEvent("urn:com.foo.bar.myapp", "myEvent", pop);
You can also call the update timer method (in masthead) from your I view form code using AJAX, which will be more simpler.
Regards,
Santhosh -
Popu window before session timeout
I am trying to display a session expiration message first when the session times out before.
I have write some code -
SessionListener.java - in which we create xml file when session is created and deleted when session is destroyed,. A structure of xml file -
<root>
<username>test</username>
<lastAcessTime>1185598316541</lastAcessTime><!-- updated when session is updated -->
<currentTime>1185598316541</currentTime> <!-- updated when session is not updated -->
</root>
SessionTimeout.js - in which we load xml file in every 5 sec .
Check -
if (currentTime-lastAcessTime) > sessionWarningTime then
we popup new window with message (refresh session)Use the Javascript setTimeout() function in combination with HttpSession#getMaxInactiveInterval().
-
Discoverer Plus - Kills the browser with error msg for session timeout
If left idle for more than few minutes, Discoverer Plus instance will kill itself with an error.
i guess it kills the IE browser instance with an error message when Session Timeout occurs. The problem is I have to re-login in a new IE browser.
Is this normal behavious, or a bug. Any workaround to stop this happen. Please can someone help me, we are going on for a production rollover very soon.
I appreciate your help.
Regards, BB,
The pref.txt file has session time out parameter that can be controlled. You can increase the time out value.
Regards -
Which script is called when click "edit page" option from SharePoint gear icon?
HI All,
Which script is called when click "edit page" option from SharePoint gear icon?Hi,
By inspecting the “Edit” button in the ribbon using IE Developer(F12), we can see that there is a function “CoreInvoke” in the click event of this button.
By default, the “CoreInvoke” is defined in
Init.js file which locates in 15 hive.
Best regards
Patrick Liang
TechNet Community Support -
Session Timeout directly taking to login page
Hi,
In our application when session time out happens, it is directly taking to login page, instead of showing the time out error message . We have a CustomExceptionHandler defined in our application. When I debugged, I identified that the following error message
<StateManagerImpl><restoreView> Could not find saved view state for token -ppfn0o4n8 (*ADF_FACES-30107)*
comes when user clicks login the second time.
We want to know how to get the error message first before it goes to the login page? Any configuration we are missing?
Here is our applications web.xml
<?xml version = '1.0' encoding = 'UTF-8'?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5" xmlns="http://java.sun.com/xml/ns/javaee">
<description>Empty web.xml file for Web Application</description>
<context-param>
<param-name>javax.faces.STATE_SAVING_METHOD</param-name>
<param-value>client</param-value>
</context-param>
<context-param>
<param-name>jndiContext</param-name>
<param-value>inv</param-value>
</context-param>
<context-param>
<param-name>UserEnvironmentName</param-name>
<param-value>UserEnvironment</param-value>
</context-param>
<context-param>
<param-name>CacheConfigureFile</param-name>
<param-value>inv-cache.xml</param-value>
</context-param>
<context-param>
<param-name>SecurityRepositoryClass</param-name>
<param-value>oracle.communications.inventory.api.framework.security.impl.SecurityRepositoryImpl</param-value>
</context-param>
<context-param>
<description>Whether the 'Generated by...' comment at the bottom of ADF Faces HTML pages should contain version number information.</description>
<param-name>oracle.adf.view.rich.versionString.HIDDEN</param-name>
<param-value>false</param-value>
</context-param>
<context-param>
<param-name>oracle.adfinternal.view.rich.libraryPartitioning.ENABLED</param-name>
<param-value>true</param-value>
</context-param>
<context-param>
<param-name>ilog.views.faces.CONTROLLER_PATH</param-name>
<param-value>/_contr</param-value>
</context-param>
<context-param>
<param-name>ilog.views.faces.CONTENT_LENGTH_ENABLED</param-name>
<param-value>true</param-value>
</context-param>
<context-param>
<description>If this parameter is true, there will be an automatic check of the modification date of your JSPs, and saved state will be discarded when JSP's change. It will also automatically check if your skinning css files have changed without you having to restart the server. This makes development easier, but adds overhead. For this reason this parameter should be set to false when your application is deployed.</description>
<param-name>org.apache.myfaces.trinidad.CHECK_FILE_MODIFICATION</param-name>
<param-value>false</param-value>
</context-param>
<context-param>
<param-name>APPLICATION_NAME</param-name>
<param-value>Unified Inventory Management</param-value>
</context-param>
<context-param>
<param-name>COPYRIGHT_FROM_YEAR</param-name>
<param-value>2007</param-value>
</context-param>
<context-param>
<param-name>COPYRIGHT_TO_YEAR</param-name>
<param-value>2011</param-value>
</context-param>
<context-param>
<!-- Maximum memory per request (in bytes) -->
<param-name>org.apache.myfaces.trinidad.UPLOAD_MAX_MEMORY</param-name>
<!-- Use 500K -->
<param-value>512000</param-value>
</context-param>
<context-param>
<!-- Maximum disk space per request (in bytes) -->
<param-name>org.apache.myfaces.trinidad.UPLOAD_MAX_DISK_SPACE</param-name>
<!-- Use 100M -->
<param-value>104857600</param-value>
</context-param>
<filter>
<filter-name>trinidad</filter-name>
<filter-class>org.apache.myfaces.trinidad.webapp.TrinidadFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>trinidad</filter-name>
<servlet-name>Faces Servlet</servlet-name>
<dispatcher>FORWARD</dispatcher>
<dispatcher>REQUEST</dispatcher>
</filter-mapping>
<listener>
<listener-class>oracle.communications.inventory.api.framework.listener.ContextListener</listener-class>
</listener>
<listener>
<listener-class>oracle.communications.inventory.ui.framework.IlogContextListener</listener-class>
</listener>
<!-- Cartridge Installer servlet for post re-deploy -->
<listener>
<listener-class>
oracle.communications.inventory.cartridge.deploy.CartridgeInstallerServletContextListener
</listener-class>
</listener>
<persistence-context-ref>
<persistence-context-ref-name>persistence/EntityManager</persistence-context-ref-name>
<persistence-unit-name>default</persistence-unit-name>
</persistence-context-ref>
<listener>
<listener-class>oracle.adf.mbean.share.connection.ADFConnectionLifeCycleCallBack</listener-class>
</listener>
<listener>
<listener-class>oracle.adf.mbean.share.config.ADFConfigLifeCycleCallBack</listener-class>
</listener>
<servlet>
<servlet-name>BIGRAPHSERVLET</servlet-name>
<servlet-class>oracle.adfinternal.view.faces.bi.renderkit.graph.GraphServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>BIGAUGESERVLET</servlet-name>
<servlet-class>oracle.adfinternal.view.faces.bi.renderkit.gauge.GaugeServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>MapProxyServlet</servlet-name>
<servlet-class>oracle.adfinternal.view.faces.bi.renderkit.geoMap.servlet.MapProxyServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>GatewayServlet</servlet-name>
<servlet-class>oracle.adfinternal.view.faces.bi.renderkit.graph.FlashBridgeServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>media</servlet-name>
<servlet-class>oracle.communications.inventory.ui.media.servlet.MediaServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>BIGRAPHSERVLET</servlet-name>
<url-pattern>/servlet/GraphServlet/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>BIGAUGESERVLET</servlet-name>
<url-pattern>/servlet/GaugeServlet/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>MapProxyServlet</servlet-name>
<url-pattern>/mapproxy/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>resources</servlet-name>
<url-pattern>/bi/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>GatewayServlet</servlet-name>
<url-pattern>/flashbridge/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>media</servlet-name>
<url-pattern>/media_image</url-pattern>
</servlet-mapping>
<resource-ref>
<res-ref-name>wm/ruleWorkManager</res-ref-name>
<res-type>commonj.work.WorkManager</res-type>
<res-auth>Container</res-auth>
<res-sharing-scope>Unshareable</res-sharing-scope>
</resource-ref>
<filter>
<filter-name>JpsFilter</filter-name>
<filter-class>oracle.security.jps.ee.http.JpsFilter</filter-class>
<init-param>
<param-name>enable.anonymous</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>remove.anonymous.role</param-name>
<param-value>false</param-value>
</init-param>
<init-param>
<param-name>addAllRoles</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>jaas.mode</param-name>
<param-value>doasprivileged</param-value>
</init-param>
</filter>
<filter>
<filter-name>ADFLibraryFilter</filter-name>
<filter-class>oracle.adf.library.webapp.LibraryFilter</filter-class>
</filter>
<filter>
<filter-name>adfBindings</filter-name>
<filter-class>oracle.adf.model.servlet.ADFBindingFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>JpsFilter</filter-name>
<servlet-name>Faces Servlet</servlet-name>
<dispatcher>FORWARD</dispatcher>
<dispatcher>REQUEST</dispatcher>
<dispatcher>INCLUDE</dispatcher>
</filter-mapping>
<filter-mapping>
<filter-name>ADFLibraryFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>adfBindings</filter-name>
<servlet-name>Faces Servlet</servlet-name>
<dispatcher>FORWARD</dispatcher>
<dispatcher>REQUEST</dispatcher>
</filter-mapping>
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet>
<servlet-name>resources</servlet-name>
<servlet-class>org.apache.myfaces.trinidad.webapp.ResourceServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>adflibResources</servlet-name>
<servlet-class>oracle.adf.library.webapp.ResourceServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>adfAuthentication</servlet-name>
<servlet-class>oracle.adf.share.security.authentication.AuthenticationServlet</servlet-class>
<init-param>
<param-name>success_url</param-name>
<param-value>/faces/InventoryUIShell</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet>
<servlet-name>Controller</servlet-name>
<servlet-class>ilog.views.faces.IlvFacesController</servlet-class>
<load-on-startup>3</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>/faces/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>resources</servlet-name>
<url-pattern>/adf/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>resources</servlet-name>
<url-pattern>/afr/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>adflibResources</servlet-name>
<url-pattern>/adflib/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>adfAuthentication</servlet-name>
<url-pattern>/adfAuthentication</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>Controller</servlet-name>
<url-pattern>/_contr/*</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>35</session-timeout>
</session-config>
<mime-mapping>
<extension>html</extension>
<mime-type>text/html</mime-type>
</mime-mapping>
<mime-mapping>
<extension>txt</extension>
<mime-type>text/plain</mime-type>
</mime-mapping>
<jsp-config>
<jsp-property-group>
<url-pattern>*.jsff</url-pattern>
<is-xml>true</is-xml>
</jsp-property-group>
</jsp-config>
<security-constraint>
<web-resource-collection>
<web-resource-name>allPages</web-resource-name>
<url-pattern>/</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>valid-users</role-name>
</auth-constraint>
</security-constraint>
<security-constraint>
<web-resource-collection>
<web-resource-name>Unsecured resources</web-resource-name>
<url-pattern>/images/</url-pattern>
<url-pattern>*.png</url-pattern>
<url-pattern>*.gif</url-pattern>
<url-pattern>*.jpg</url-pattern>
<url-pattern>*.jpeg</url-pattern>
<url-pattern>*.bmp</url-pattern>
<url-pattern>*.css</url-pattern>
<url-pattern>*.js</url-pattern>
<url-pattern>/css/*</url-pattern>
<url-pattern>/afr/blank.html</url-pattern>
</web-resource-collection>
</security-constraint>
<security-constraint>
<web-resource-collection>
<web-resource-name>adfAuthentication</web-resource-name>
<url-pattern>/adfAuthentication</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>valid-users</role-name>
</auth-constraint>
</security-constraint>
<login-config>
<auth-method>FORM</auth-method>
<form-login-config>
<form-login-page>/faces/login.jspx</form-login-page>
<form-error-page>/faces/error.jspx</form-error-page>
</form-login-config>
</login-config>
<security-role>
<role-name>valid-users</role-name>
</security-role>
<welcome-file-list>
<welcome-file>/faces/InventoryUIShell</welcome-file>
</welcome-file-list>
</web-app>hi
this can be done using a simple "Servlet Filters" which will check whether the user session is valid or not. so for every connect to the server the filter runs and redirects to the login page if the session has expired. here you can configure your filter to be activated for every URL or a patterns of urls.
u need servlet2.3 supported server for this.
hope this helps
shrini
I have an business j2ee application run on oc4j. When the session timeout declared on the web.xml expire, i want to redirect automaticaly the user to my login.jsp to force him to reconnect. I try j_security_chek, but i want to restart the business application at the top and not to the page which are request. Somebody know who i can do this mechanism. I try too special tag in jsp, this run very good but i have to repeate this call on every page. I look for an other simply mechanism to that
Thanks -
Re: [iPlanet-JATO] Re: session timeout when not submitting to a handler
Mark--
I know what's happening here, but am curious about your approach. You said
in an earlier email that you were generating links directly to JSPs, but
from what you are describing, you are generating JATO-style links to access
JATO pages. Nothing wrong with that, but there is a signficant difference.
Actually, it just occurred to me, I'm wondering what your URLs look like.
The way the request dispatching works in JATO is it ignores anything after
an initial "." in the final part of the URL path. For example, a request
for "/myapp/module1/MyPage.jsp" doesn't actually try to hit the JSP, instead
it tries to hit the JATO page "/myapp/module1/MyPage".
The end result is that you may think you are accessing a JSP directly, but
are instead accessing a JATO page. The reason the request dispatching works
this way is because it is illegal to access JATO JSPs directly, and there is
actually a (disabled) JATO feature that piggybacks on the use of the
dot-delimited URL.
So, now I need to understand your intent. I wasn't really sure why you were
generating direct JSP/page links to begin with. This works against the Type
II architecture JATO uses, in which all JATO requests go back to the
controller servlet.
If you are trying to design something like a menu page, you may have thought
that it was burdensome to create a number of HREF children, plus implement
event handlers for each of them. This definitely would be burdensome beyond
just a handful of links, but this is why JATO provides other mechanisms for
doing what I'll call here "polymorphic HREFs".
Assuming this menu page scenario, the easiest thing to do is to simply use
one HREF child on the page, and add a value to it each time it is rendered
that distinguishes it from the other instances on the page. In your event
handler for the HREF, you simply check this value and use it to decide which
page to forward to. You can add a value to an HREF or Button by using the
"addExtraValue()" method. Or, if you are using JATO 1.2, you can add extra
query string NVPs right in the JSP document using the "queryParams"
attribute of the <jato:href> tag. Thus, your one HREFchild and event
handler become "polymorphic" because what they do depends on the context in
which they are invoked.
Now, I still don't have confirmation that this is what you were trying to
do, so until I do, let me explain the exception you're seeing. JATO assumes
that when a request comes in for a page that includes the pageAttributes
NVP, it is a request coming from a previously generated JATO page. Because
of the way JATO works, this means that the request dispatching code should
send the request back to the originally rendered page. For example, if Page
A renders an HREF, which the user then activates, JATO sends the request
back to Page A for handling. All of the HREFs and forms generated during
rendering of Page A actually refer back to Page A, regardless of where those
links or buttons actually pass the request in their event handlers/Command
objects.
So, what's happening when you include the pageAttributes in your HREFs is
that JATO is assuming that a request is being sent to the target page, with
the assumption that the target page has a mechanism in place to handle the
request. This assumption relies on the specification of the "originator" of
the request being specified in the request. For links/HREFs, the name and
value of the HREF is sent along with the request. For forms, the name and
value of the button that was pressed are sent in the request. JATO uses the
presence of these name/value pairs to decide which event handler, or which
Command object, to invoke to handle the request.
The exception you are receiving is saying that there was no object on the
target page that indicated it could handle the request. This is to be
expected, since you have not specified a query parameter that indicates
which CommandField child is responsible the request. However, this is where
I see the disconnect, because that is not what I believe you were trying to
do (as explained above).
So now, given all the information above, can you tell me what you're trying
to accomplish, and whether or not the info I've given you has helped you to
design a mechanism more in line with a JATO approach? If not, given that I
understand what you're trying to do, I can offer a more concrete solution.
Todd
----- Original Message -----
From: <Mark_Dubinsky@p...>
Sent: Monday, November 05, 2001 2:54 PM
Subject: [iPlanet-JATO] Re: session timeout when not submitting to a handler
This is the exception we get:
(And BTW, leaving a blank value for the pageAttributes doesn't help)
[05/Nov/2001 17:49:18:4] error: <portalServlet.processRequest>
javax.servlet.ServletException: The request was not be handled by the
specified handler
at java.lang.Throwable.fillInStackTrace(Native Method)
at java.lang.Throwable.fillInStackTrace(Compiled Code)
at java.lang.Throwable.<init>(Compiled Code)
at java.lang.Exception.<init>(Compiled Code)
at
javax.servlet.ServletException.<init>(ServletException.java:107)
at
com.putnaminvestments.common.jato.ApplicationServletBase.dispatchRequ
est(Compiled Code)
at
com.putnaminvestments.common.jato.ApplicationServletBase.processReque
st(Compiled Code)
at
com.putnaminvestments.bp.portal.portalServlet.processRequest(Compiled
Code)
at
com.putnaminvestments.common.jato.ApplicationServletBase.doPost(Compi
led Code)
at
com.putnaminvestments.common.jato.ApplicationServletBase.doGet(Compil
ed Code)
at javax.servlet.http.HttpServlet.service(Compiled Code)
at com.putnaminvestments.bp.bpServletBase.service(Compiled
Code)
at javax.servlet.http.HttpServlet.service(Compiled Code)
at
com.netscape.server.servlet.servletrunner.ServletInfo.service(Compile
d Code)
at
com.netscape.server.servlet.servletrunner.ServletRunner.execute(Compi
led Code)
at com.kivasoft.applogic.AppLogic.execute(Compiled Code)
at com.kivasoft.applogic.AppLogic.execute(Compiled Code)
at com.kivasoft.thread.ThreadBasic.run(Native Method)
at com.kivasoft.thread.ThreadBasic.run(Native Method)
at com.kivasoft.thread.ThreadBasic.run(Native Method)
at com.kivasoft.thread.ThreadBasic.run(Native Method)
at com.kivasoft.thread.ThreadBasic.run(Compiled Code)
at java.lang.Thread.run(Compiled Code)
--- In iPlanet-JATO@y..., "Todd Fast" <Todd.Fast@S...> wrote:
Mark--
Initially we tried to add the pageAttributes NVP as well, but that
was
causing an exception, so we stopped doing that.That's odd--what was the exception?
Our problem now is that when the SessionTimes out it does not go
to
onSessionTimeout method as in processRequestMethod of the
ApplicationServletBase it looks for pageAttributes. If it is notnull
then only onSessionTimeOut method is called.This is sadly the only technique for determining if a session hastimed out
and a new one been created, versus the initial creation of thesession.
Is there any work around for this? Maybe you can suggest how topass
the pageAttributes without causing the initial exception?Definitely--let me know what the exception was and I'll be able tosuggest
something. However, it shouldn't really be any harder thanappending a
"jato.pageAttributes=" empty NVP on the HREF.
Todd
Todd Fast
Senior Engineer
Sun/Netscape Alliance
todd.fast@s...
For more information about JATO, please visit:
http://developer.iplanet.com/tech/appserver/framework/index.jspOK, here's what I'm trying to do: We have, like you said, a menu
page. The pages that it goes to and the number of links are all
variable and read from the database. In NetD we were able to create
URLs in the form
pgXYZ?SPIDERSESSION=abcd
so this is what I'm trying to replicate here. So the URL that works
is
pgContactUs?GXHC_GX_jst=fc7b7e61662d6164&GXHC_gx_session_id_=cc9c6dfa5
601afa7
which I interpreted to be the equivalent of the old Netd way. Our
javascript also loads other frames of the page in the same manner.
And I believe the URL-rewritten frame sources of a frameset look like
this too.
This all worked except for the timeout problem. In theory we could
rewrite all URLs to go to a handler, but that would be...
inconvenient. -
Session timeouts for login page with in a html frame
Hi, i have a login page which when the session times out gets redisplayed within the frame of the html page where the session timed out , i have tried setting the session timeouts to be less than the other application so that the login page will timeout before the documentum application but this does not make a difference.
does any one know how i could get the login page to redisplay by itself, outside of the html frame. do i need to have some javascript to figure out if there is a frame then redraw the page etc...and how should i di this ? any working examples will be appreciated.You would certainly need some Javascript or use the meta-refresh tag to the session timeout time. If you set the meta-refresh tag in a frame to a time just a little bit bigger than the session timeout time and the set your security mechanisms to force the user to login in again when the session times out, the frame will refresh after the session has timed out and the application should forward the frame to the login page.
<meta http-equiv="refresh" content="session-timeout-timeout+1">
(timeout time is in seconds)
Maybe you are looking for
-
CONNECTING DELL MONITOR TO BROKEN SCREEN G4
Hi I want to connect a tft monitor to a broken screen G4. Can I do this without being able to use the computer screen to configure the settings. ......I was thinking about a std VGA connection into the mini DVI via an adaptor......but then realized i
-
How can I Disable or Remove the entire Bookmarks Toolbar Feature?
I really LOVE Firefox. With over thirty years into the desktop computing industry, I can honestly say it's one of the most impressive development efforts I've seen. Thank you, seriously, all of you, everyone who has worked toward creating, maintainin
-
I have a licence code for Adobe CS6 Master Collection which I'm using for more than a year, suddeny I am in trial mode (all programs) an it seems that this code is not accepted anymore. Help needed!!
-
When creating new file servers we always need to set up the NTFS rights manually and that takes forever... Instead I would like to have a powershell command/script that configures the NTFS security settings on the folders. I have two needs that hopef
-
LR5.7.1 does not recognize all files on SD or CF cards?
I have been using LR 5.7.1 through creative cloud. Using LR since verison 1 ) Using a card reader to import, LR now does not recognize all of the files on either SD or CF cards. To get LR to see all of the files, I must close LR and sturn off comptue