<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-5858706713105773272</id><updated>2011-10-11T11:02:35.568-07:00</updated><title type='text'>Java Empericals by Mahesh Ediga</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://emperical.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5858706713105773272/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://emperical.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Mahesh Ediga</name><uri>http://www.blogger.com/profile/04075608775730785530</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>3</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5858706713105773272.post-6278563834758605841</id><published>2011-01-19T20:18:00.000-08:00</published><updated>2011-01-19T20:28:05.897-08:00</updated><title type='text'>Solutions to issue “Using back button upon authentication via SAML SSO gives HTTP 404”</title><content type='html'>&lt;div style="font-family: inherit;"&gt;&lt;i&gt;Typically Achieving SSO using SAML 1.1 between two applications deployed to WebLogic domains involves configuring&lt;/i&gt;&lt;/div&gt;&lt;ol style="font-family: inherit;"&gt;&lt;li&gt;&lt;i&gt;&amp;nbsp;Identity Asserter (IA) on Destination&amp;nbsp; WebLogic domain&lt;/i&gt;&lt;/li&gt;&lt;li&gt;&lt;i&gt;Credential Mapper (CM) on the Source WebLogic domain&lt;/i&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div style="font-family: inherit;"&gt;&lt;i&gt;Details on how to achieve SSO using SAML 1.1 is not the intent of  this article, hence this articles just focuses on one of the major issue  that is faced with SSO using SAML 1.1. Assuming that with the required  IA and CM configuration settings done on the source and&amp;nbsp; the destination  WebLogic domains , SSO using SAML 1.1 starts working. Users can login  to one application and they are logged into the other application via  SSO using SAML 1.1.&lt;/i&gt;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;i&gt;So far so good, but after a user logs in onto the landing page of any  of the application&amp;nbsp; and hits back button of the browser, they encounter  HTTP 404 error.&lt;/i&gt;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;i&gt;The solution provided below solves the problem:&lt;/i&gt;&lt;/div&gt;&lt;ol style="font-family: inherit;"&gt;&lt;li&gt;&lt;i&gt;Deploy the attached web appliation saml_acs.war to all the WebLogic domains configured to be SAML 1.1 destinations&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/i&gt;&lt;/li&gt;&lt;li&gt;&lt;i&gt;Target saml_acs.war to the cluster&lt;/i&gt;&lt;/li&gt;&lt;li&gt;&lt;i&gt;Set the system flags like below. Set the flag on all the servers in  the domain and restart them for the system flags to take effect.&lt;/i&gt;&lt;/li&gt;&lt;li&gt;&lt;i&gt;-Dsaml_acs.redirect.url=&lt;a href="http:///???.research.gov/findreviewer"&gt;http(s)://&amp;lt;hostname&amp;gt;:&amp;lt;port&amp;gt;/&amp;lt;landing page&amp;gt; &lt;/a&gt;&lt;/i&gt;&lt;/li&gt;&lt;li&gt;&lt;i&gt;In the WLS admin console update all the servers &lt;/i&gt;&lt;ul&gt;&lt;li&gt;&lt;i&gt;Navigate to the “Server name -&amp;gt; Configuration -&amp;gt; Federation Services -&amp;gt; SAML 1.1 Destination Site” tab&lt;/i&gt;&lt;/li&gt;&lt;li&gt;&lt;i&gt;Change the “Assertion Consumer URI” to “/saml_acs/acs”&lt;/i&gt;&lt;/li&gt;&lt;li&gt;&lt;i&gt;This requires a restart&lt;/i&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt;saml_acs.war&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt;-web-inf&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt;--web.xml&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;&lt;i&gt;&lt;span style="color: blue;"&gt;&amp;nbsp;&amp;lt;!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"&amp;gt;&lt;/span&gt;&lt;br style="color: blue;" /&gt;&lt;span style="color: blue;"&gt;&amp;lt;web-app&amp;gt;&lt;/span&gt;&lt;br style="color: blue;" /&gt;&lt;span style="color: blue;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;error-page&amp;gt;&lt;/span&gt;&lt;br style="color: blue;" /&gt;&lt;span style="color: blue;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;error-code&amp;gt;404&amp;lt;/error-code&amp;gt;&lt;/span&gt;&lt;br style="color: blue;" /&gt;&lt;span style="color: blue;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;location&amp;gt;/redirect.jsp&amp;lt;/location&amp;gt;&lt;/span&gt;&lt;br style="color: blue;" /&gt;&lt;span style="color: blue;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;/error-page&amp;gt; &lt;/span&gt;&lt;br style="color: blue;" /&gt;&lt;span style="color: blue;"&gt;&amp;lt;/web-app&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt;--weblogic.xml&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;&lt;i&gt;&lt;span style="color: blue;"&gt;&amp;lt;!DOCTYPE weblogic-web-app PUBLIC "-//BEA Systems, Inc.//DTD Web Application 8.1//EN" "http://www.bea.com/servers/wls810/dtd/weblogic810-web-jar.dtd"&amp;gt;&lt;/span&gt;&lt;br style="color: blue;" /&gt;&lt;span style="color: blue;"&gt;&amp;lt;weblogic-web-app&amp;gt;&lt;/span&gt;&lt;br style="color: blue;" /&gt;&lt;span style="color: blue;"&gt;&amp;nbsp; &amp;lt;/weblogic-web-app&amp;gt;&lt;/span&gt;&lt;/i&gt; &lt;br /&gt;&lt;i&gt;&lt;br /&gt;&lt;b&gt;meta-inf&lt;/b&gt;&lt;/i&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt;redirect.jsp&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;&lt;i&gt;&lt;span style="color: blue;"&gt;&amp;lt;%@page import="javax.servlet.http.*"%&amp;gt;&lt;/span&gt;&lt;br style="color: blue;" /&gt;&lt;br style="color: blue;" /&gt;&lt;span style="color: blue;"&gt;&amp;lt;%&lt;/span&gt;&lt;br style="color: blue;" /&gt;&lt;span style="color: blue;"&gt;/*&lt;/span&gt;&lt;br style="color: blue;" /&gt;&lt;span style="color: blue;"&gt;This jsp helps in handing 404 http error that occurs when a user &lt;/span&gt;&lt;br style="color: blue;" /&gt;&lt;span style="color: blue;"&gt;authenticates to portal desktop via saml for the first time and &lt;/span&gt;&lt;br style="color: blue;" /&gt;&lt;span style="color: blue;"&gt;hits the browser back button.&lt;/span&gt;&lt;br style="color: blue;" /&gt;&lt;span style="color: blue;"&gt;set the system property = the portal url like the default property value shown below&lt;/span&gt;&lt;br style="color: blue;" /&gt;&lt;br style="color: blue;" /&gt;&lt;span style="color: blue;"&gt;Example:&lt;/span&gt;&lt;br style="color: blue;" /&gt;&lt;span style="color: blue;"&gt;-Dsaml_acs.redirect.url="https://&amp;lt;hostname&amp;gt;:&amp;lt;port&amp;gt;/&amp;lt;default landing page if required&amp;gt;"&lt;/span&gt;&lt;br style="color: blue;" /&gt;&lt;span style="color: blue;"&gt;*/&lt;/span&gt;&lt;br style="color: blue;" /&gt;&lt;br style="color: blue;" /&gt;&lt;span style="color: blue;"&gt;String newLocation=System.getProperty("saml_acs.redirect.url","/default landing page");&lt;/span&gt;&lt;br style="color: blue;" /&gt;&lt;span style="color: blue;"&gt;response.sendRedirect(newLocation);&lt;/span&gt;&lt;br style="color: blue;" /&gt;&lt;span style="color: blue;"&gt;%&amp;gt;&lt;/span&gt; &lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;&lt;ul&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5858706713105773272-6278563834758605841?l=emperical.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://emperical.blogspot.com/feeds/6278563834758605841/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://emperical.blogspot.com/2011/01/solutions-to-issue-using-back-button.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5858706713105773272/posts/default/6278563834758605841'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5858706713105773272/posts/default/6278563834758605841'/><link rel='alternate' type='text/html' href='http://emperical.blogspot.com/2011/01/solutions-to-issue-using-back-button.html' title='Solutions to issue “Using back button upon authentication via SAML SSO gives HTTP 404”'/><author><name>Mahesh Ediga</name><uri>http://www.blogger.com/profile/04075608775730785530</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5858706713105773272.post-6120862934723009466</id><published>2011-01-13T23:45:00.000-08:00</published><updated>2011-01-19T20:31:06.641-08:00</updated><title type='text'>Coherence *Web  Session Attribute Scoping examples</title><content type='html'>&lt;i&gt;One among the many features of Oracle Coherence *Web is to "Enables &lt;b&gt;session sharing&lt;/b&gt; and management across different web applications, domains and heterogeneous application servers".&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_rgxXtlGwUAk/TTe6asQKmGI/AAAAAAAAApg/Ir6EhZK6cqY/s1600/sessionsharing.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="224" src="http://2.bp.blogspot.com/_rgxXtlGwUAk/TTe6asQKmGI/AAAAAAAAApg/Ir6EhZK6cqY/s320/sessionsharing.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;strong&gt;&lt;em&gt;Picture 1: Typical Web Session object sharing topology &lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;Below are the three typical scenarios of sharing of session data by web applications.&lt;/i&gt;&lt;br /&gt;&lt;i&gt; &lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;u&gt;&lt;b&gt;Scenario 1)&lt;/b&gt;&lt;/u&gt; Sharing of session data and attributes by two web applications (.war) deployed across WebLogic application servers.&lt;/i&gt;&lt;br /&gt;&lt;i&gt; &lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;u&gt;&lt;b&gt;Scenario 2)&lt;/b&gt;&lt;/u&gt; Sharing of session data and attributes by two web applications (.war) contained in two separate Enterprise application (.ear) &lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;u&gt;&lt;b&gt;Scenario 3)&lt;/b&gt;&lt;/u&gt; Sharing of session data and attributes by two web applications (.war) contained in a single Enterprise application (.ear)&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;The following steps provide an example for each of the above scenario.&lt;/i&gt;&lt;br /&gt;&lt;i&gt; &lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;u&gt;&lt;b&gt;Before executing the examples below, prepare your environment&amp;nbsp;&lt;/b&gt;&lt;/u&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;1) Download coherence 3.6.x from&lt;/i&gt;&lt;br /&gt;&lt;i&gt;http://www.oracle.com/technetwork/middleware/coherence/downloads/index.html&lt;/i&gt;&lt;br /&gt;&lt;i&gt;2) Extract the downloaded zip to say c:\cohrence361&lt;/i&gt;&lt;br /&gt;&lt;i&gt;3) Create startcoherence.cmd file under c:\cohrence361 and copy the contents between "CUT"&amp;nbsp; into it.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;--------CUT-----&lt;/i&gt;&lt;br /&gt;&lt;i&gt; &lt;/i&gt;&lt;br /&gt;&lt;div style="color: blue;"&gt;&lt;i&gt;setlocal&lt;/i&gt;&lt;/div&gt;&lt;div style="color: blue;"&gt;&lt;i&gt;if (%COHERENCE_HOME%)==() (&lt;/i&gt;&lt;/div&gt;&lt;div style="color: blue;"&gt;&lt;i&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; set COHERENCE_HOME=C:\coherence361&lt;/i&gt;&lt;/div&gt;&lt;div style="color: blue;"&gt;&lt;i&gt;) &lt;/i&gt;&lt;/div&gt;&lt;div style="color: blue;"&gt;&lt;i&gt;set COH_OPTS=%COH_OPTS% -server -cp C:\coherence361\lib\coherence.jar;C:\coherence361\lib\coherence-web-spi.war;&lt;/i&gt;&lt;/div&gt;&lt;div style="color: blue;"&gt;&lt;i&gt;set COH_OPTS=%COH_OPTS% -Dtangosol.coherence.management.remote=true -Dtangosol.coherence.cacheconfig=/WEB-INF/classes/session-cache-config.xml -Dtangosol.coherence.session.localstorage=true&lt;/i&gt;&lt;/div&gt;&lt;div style="color: blue;"&gt;&lt;i&gt;java %COH_OPTS% -Xms512m -Xmx512m com.tangosol.net.DefaultCacheServer &lt;/i&gt;&lt;/div&gt;&lt;div style="color: blue;"&gt;&lt;i&gt;:exit&lt;/i&gt;&lt;/div&gt;&lt;i&gt;--------CUT-----&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;4) from windows cmd&amp;gt; startcoherence.cmd. This starts the cohrence cache server.&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;5) Install Oracle WebLogic Server 10.3.3 by downloading from here&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;http://www.oracle.com/technetwork/middleware/weblogic/overview/index.html &lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;6) Using WebLogic Domain config wizard (&amp;lt;W_HOME&amp;gt;\wlserver_10.3\common\bin\config.cmd, create a domain with three servers&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;&lt;div style="color: blue;"&gt;&lt;i&gt;a. AdminServer&amp;nbsp; (listening on port 7001)&lt;/i&gt;&lt;/div&gt;&lt;div style="color: blue;"&gt;&lt;i&gt;b. ManagedServer1 &lt;/i&gt;&lt;i&gt;(listening on port 7003)&lt;/i&gt;&lt;/div&gt;&lt;div style="color: blue;"&gt;&lt;i&gt;c. ManagedServer2 &lt;/i&gt;&lt;i&gt;(listening on port 7005)&lt;/i&gt;&lt;/div&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;7) Deploy C:\coherence361\lib\coherence-web-spi.jar as a Shared module to the above domain and target it to&amp;nbsp; &lt;/i&gt;&lt;i&gt;ManagedServer1, &lt;/i&gt;&lt;i&gt;ManagedServer2&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;8)&amp;nbsp; U&lt;/i&gt;&lt;i&gt;sing Oracle Enterprise pack for Eclipse IDE (OEPE), create two dynamic web projects with the following contents.&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;b&gt;webproject1&lt;/b&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;u&gt;web.xml&lt;/u&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;&lt;div style="color: blue;"&gt;&lt;i&gt;&amp;lt;?xml version="1.0" encoding="UTF-8"?&amp;gt;&lt;br /&gt;&amp;lt;web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;lt;display-name&amp;gt;&lt;b&gt;webproject1&lt;/b&gt;&lt;/i&gt;&lt;i&gt;&amp;lt;/display-name&amp;gt;&lt;/i&gt;&lt;/div&gt;&lt;div style="color: blue;"&gt;&lt;i&gt;&amp;nbsp; &amp;lt;context-param&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;lt;param-name&amp;gt;coherence-scopecontroller-class&amp;lt;/param-name&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;lt;param-value&amp;gt;com.tangosol.coherence.servlet.AbstractHttpSessionCollection$GlobalScopeController&amp;lt;/param-value&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;lt;/context-param&amp;gt;&lt;br /&gt;&amp;lt;/web-app&amp;gt;&lt;/i&gt;&lt;/div&gt;&lt;div style="color: blue;"&gt;&lt;i&gt;&lt;u&gt;weblogic.xml&lt;/u&gt;&lt;/i&gt;&lt;/div&gt;&lt;i style="color: blue;"&gt;&amp;lt;?xml version="1.0" encoding="UTF-8"?&amp;gt;&lt;br /&gt;&amp;lt;wls:weblogic-web-app xmlns:wls="http://xmlns.oracle.com/weblogic/weblogic-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 http://xmlns.oracle.com/weblogic/weblogic-web-app http://xmlns.oracle.com/weblogic/weblogic-web-app/1.0/weblogic-web-app.xsd"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;wls:weblogic-version&amp;gt;10.3.2&amp;lt;/wls:weblogic-version&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;wls:context-root&amp;gt;webproject1&amp;lt;/wls:context-root&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;wls:library-ref&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;wls:library-name&amp;gt;coherence-web-spi&amp;lt;/wls:library-name&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;wls:specification-version&amp;gt;1.0.0.0&amp;lt;/wls:specification-version&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;wls:implementation-version&amp;gt;1.0.0.0&amp;lt;/wls:implementation-version&amp;gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;wls:exact-match&amp;gt;true&amp;lt;/wls:exact-match&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/wls:library-ref&amp;gt;&lt;br /&gt;&amp;lt;/wls:weblogic-web-app&amp;gt;&lt;/i&gt;&lt;i&gt;&lt;u&gt; &lt;/u&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;u&gt;WebContent/counter.jsp&lt;/u&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;&lt;div style="color: blue;"&gt;&lt;i&gt;&amp;lt;%@ page language="java" contentType="text/html; charset=ISO-8859-1"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pageEncoding="ISO-8859-1"%&amp;gt;&lt;br /&gt;&amp;lt;!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"&amp;gt;&lt;br /&gt;&amp;lt;html&amp;gt;&lt;br /&gt;&amp;lt;head&amp;gt;&lt;br /&gt;&amp;lt;meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"&amp;gt;&lt;br /&gt;&amp;lt;title&amp;gt;Insert title here&amp;lt;/title&amp;gt;&lt;br /&gt;&amp;lt;/head&amp;gt;&lt;br /&gt;&amp;lt;body&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;h3&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Counter :&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;%&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Integer counter = new Integer(1);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HttpSession httpsession = request.getSession(true);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (httpsession.isNew()) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; httpsession.setAttribute("count", counter);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; out.println(counter);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } else {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int count = ((Integer) httpsession.getAttribute("count")).intValue();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; httpsession.setAttribute("count", new Integer(++count));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; out.println(count);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/h3&amp;gt;&lt;br /&gt;&amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;/i&gt;&lt;/div&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt; &lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;b&gt;webproject2&lt;/b&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt; &lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;u&gt;web.xml&lt;/u&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;&lt;div style="color: blue;"&gt;&lt;i&gt;&amp;lt;?xml version="1.0" encoding="UTF-8"?&amp;gt;&lt;br /&gt;&amp;lt;web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;lt;display-name&amp;gt;&lt;b&gt;webproject2&lt;/b&gt;&lt;/i&gt;&lt;i&gt;&amp;lt;/display-name&amp;gt;&lt;/i&gt;&lt;/div&gt;&lt;div style="color: blue;"&gt;&lt;i&gt;&amp;nbsp; &amp;lt;context-param&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;lt;param-name&amp;gt;coherence-scopecontroller-class&amp;lt;/param-name&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;lt;param-value&amp;gt;com.tangosol.coherence.servlet.AbstractHttpSessionCollection$GlobalScopeController&amp;lt;/param-value&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;lt;/context-param&amp;gt;&lt;br /&gt;&amp;lt;/web-app&amp;gt;&lt;/i&gt;&lt;/div&gt;&lt;div style="color: blue;"&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/div&gt;&lt;i&gt;&lt;u&gt;weblogic.xml&lt;/u&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;u&gt;&lt;br /&gt;&lt;/u&gt;&lt;/i&gt;&lt;br /&gt;&lt;i style="color: blue;"&gt;&amp;lt;?xml version="1.0" encoding="UTF-8"?&amp;gt;&lt;br /&gt;&amp;lt;wls:weblogic-web-app xmlns:wls="http://xmlns.oracle.com/weblogic/weblogic-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 http://xmlns.oracle.com/weblogic/weblogic-web-app http://xmlns.oracle.com/weblogic/weblogic-web-app/1.0/weblogic-web-app.xsd"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;wls:weblogic-version&amp;gt;10.3.2&amp;lt;/wls:weblogic-version&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;wls:context-root&amp;gt;webproject2&amp;lt;/wls:context-root&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;wls:library-ref&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;wls:library-name&amp;gt;coherence-web-spi&amp;lt;/wls:library-name&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;wls:specification-version&amp;gt;1.0.0.0&amp;lt;/wls:specification-version&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;wls:implementation-version&amp;gt;1.0.0.0&amp;lt;/wls:implementation-version&amp;gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;wls:exact-match&amp;gt;true&amp;lt;/wls:exact-match&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/wls:library-ref&amp;gt;&lt;br /&gt;&amp;lt;/wls:weblogic-web-app&amp;gt;&lt;/i&gt;&lt;i&gt;&lt;u&gt; &lt;/u&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt; &lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;u&gt;WebContent/counter.jsp&lt;/u&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;&lt;div style="color: blue;"&gt;&lt;i&gt;&amp;lt;%@ page language="java" contentType="text/html; charset=ISO-8859-1"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pageEncoding="ISO-8859-1"%&amp;gt;&lt;br /&gt;&amp;lt;!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"&amp;gt;&lt;br /&gt;&amp;lt;html&amp;gt;&lt;br /&gt;&amp;lt;head&amp;gt;&lt;br /&gt;&amp;lt;meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"&amp;gt;&lt;br /&gt;&amp;lt;title&amp;gt;Insert title here&amp;lt;/title&amp;gt;&lt;br /&gt;&amp;lt;/head&amp;gt;&lt;br /&gt;&amp;lt;body&amp;gt;&lt;br /&gt;&amp;lt;h3&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Counter :&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;%&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Integer counter = new Integer(1);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HttpSession httpsession = request.getSession(true);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (httpsession.isNew()) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; httpsession.setAttribute("count", counter);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; out.println(counter);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } else {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int count = ((Integer) httpsession.getAttribute("count")).intValue();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; httpsession.setAttribute("count", new Integer(++count));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; out.println(count);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/h3&amp;gt;&lt;br /&gt;&amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;/i&gt;&lt;/div&gt;&lt;i&gt; &lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;9) From OEPE export the projects created in step #8 as webproject1.war and webproject2.war&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt; &lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;u&gt;&lt;b&gt;Example for Scenario 1&lt;/b&gt;&lt;/u&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;1) Shut down all the weblogic server instances of the weblogic domain if they are running.&lt;/i&gt;&lt;br /&gt;&lt;i&gt;2) Copy C:\coherence361\lib\coherence.jar to under &amp;lt;weblogic domain&amp;gt;/lib directory or configure in the WebLogic system classpath. The placement of coherence.jar&amp;nbsp;under&amp;nbsp;&amp;nbsp;&amp;lt;weblogic domain&amp;gt;/lib&amp;nbsp;&amp;nbsp;is really important when web projects deployed across WebLogic Aplication Server (Separate JMV instances)&amp;nbsp;need to&amp;nbsp;share session objects &lt;/i&gt;&lt;br /&gt;&lt;i&gt;3) Start all the three weblogic server instances&lt;/i&gt;&lt;br /&gt;&lt;i&gt;4) Deploy webproject1.war and webproject2.war and target the deployment to ManagedServer1 and ManagedServer2&lt;/i&gt;&lt;br /&gt;&lt;i&gt;5) Execute the following test case and observe that the session attribute "count" is shared between webproject1 and webproject2&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;b&gt;Scenario 1 Test case:&lt;/b&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt; &lt;/i&gt;&lt;br /&gt;&lt;i&gt;1) open IE and access the url http://localhost:7003/webproject1/counter.jsp&lt;/i&gt;&lt;br /&gt;&lt;i&gt;Count =1&lt;/i&gt;&lt;br /&gt;&lt;i&gt;2) open another browser (firefox) and access the url&amp;nbsp; http://localhost:7005/webproject2/counter.jsp&lt;/i&gt;&lt;br /&gt;&lt;i&gt;Count =2 (count is 2 as webproject2 adds 1 to the counter value set by webproject2&lt;/i&gt;&lt;br /&gt;&lt;i&gt;3) Try opening multiple sessions by changing the port numbers and browsers and observe that the session attribute count is getting shared between two webprojects using Coherence *Web SPI&lt;/i&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5858706713105773272-6120862934723009466?l=emperical.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://emperical.blogspot.com/feeds/6120862934723009466/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://emperical.blogspot.com/2011/01/coherence-web-and-webogic-server.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5858706713105773272/posts/default/6120862934723009466'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5858706713105773272/posts/default/6120862934723009466'/><link rel='alternate' type='text/html' href='http://emperical.blogspot.com/2011/01/coherence-web-and-webogic-server.html' title='Coherence *Web  Session Attribute Scoping examples'/><author><name>Mahesh Ediga</name><uri>http://www.blogger.com/profile/04075608775730785530</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_rgxXtlGwUAk/TTe6asQKmGI/AAAAAAAAApg/Ir6EhZK6cqY/s72-c/sessionsharing.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5858706713105773272.post-6210644884250837597</id><published>2011-01-10T19:27:00.000-08:00</published><updated>2011-01-10T19:27:30.145-08:00</updated><title type='text'>Webogic Portal  UCM integration pattern</title><content type='html'>&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5858706713105773272-6210644884250837597?l=emperical.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://emperical.blogspot.com/feeds/6210644884250837597/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://emperical.blogspot.com/2011/01/webogic-portal-ucm-integration-pattern.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5858706713105773272/posts/default/6210644884250837597'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5858706713105773272/posts/default/6210644884250837597'/><link rel='alternate' type='text/html' href='http://emperical.blogspot.com/2011/01/webogic-portal-ucm-integration-pattern.html' title='Webogic Portal  UCM integration pattern'/><author><name>Mahesh Ediga</name><uri>http://www.blogger.com/profile/04075608775730785530</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
