<?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-6662621277353988265</id><updated>2012-02-16T05:01:00.804-08:00</updated><title type='text'>Rational WebSphere</title><subtitle type='html'>Experiences with setting up / using IBM Rational Application Developer 6+ for WebSphere Application Server 6+</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://rationalwebsphere.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6662621277353988265/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://rationalwebsphere.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>James Sears</name><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>16</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6662621277353988265.post-3559615890009418076</id><published>2009-11-01T03:18:00.000-08:00</published><updated>2011-04-14T01:26:05.867-07:00</updated><title type='text'>Installing Rational Software Architect Standard Edition 7.5.4 on Ubuntu 9.10</title><content type='html'>When installing Rational Software Architect Standard Edition 7.5.4 (and RAD 7.5.4) onto Ubuntu 9.10 it is likely that you might experience a few problems. This posting identifies these problems and their solutions.&lt;br /&gt;&lt;br /&gt;The first is a missing library:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;http://packages.ubuntu.com/jaunty/i386/libstdc++5/download&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;The second is an SWT error inside your initial workspace's .log file: /home/jsears/IBM/rationalsdp/workspace/.metadata, with: org.eclipse.swt.SWTError: XPCOM error.&lt;br /&gt;&lt;ul&gt;&lt;li style="font-weight: bold;"&gt;sudo apt-get install xulrunner&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;sudo vi /opt/IBM/SDP/eclipse.ini&lt;/span&gt; with &lt;span style="font-weight: bold;"&gt;-Dorg.eclipse.swt.browser.XULRunnerPath=/usr/lib/xulrunner&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;The third problem is to do with GTK affecting various buttons such that a mouse click is not enough for the button to be dismissed. The answer to this is to invoke eclipse not by the main menu but via a .sh script (with an icon image of /opt/IBM/SDP/rsa_se/RSA_v7_32.xpm):&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;export GDK_NATIVE_WINDOWS=true&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;/opt/IBM/SDP/eclipse -product com.ibm.rational.rsastd.product.v75.ide&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;Only by carrying out these things was I able to start the IDE and use it as expected:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_IaRd0uF5-I4/Su1wC3QqmbI/AAAAAAAAAew/j_wITjXI7Zc/s1600-h/Screenshot-About+Rational+Software+Architect+Standard+Edition+.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 194px;" src="http://1.bp.blogspot.com/_IaRd0uF5-I4/Su1wC3QqmbI/AAAAAAAAAew/j_wITjXI7Zc/s320/Screenshot-About+Rational+Software+Architect+Standard+Edition+.png" alt="" id="BLOGGER_PHOTO_ID_5399094722782992818" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;A quick update - as of 20110414 I read that you can bypass the xulrunner need (handy if you have istalled Firefox 4):&lt;br /&gt;&lt;ul&gt;&lt;li&gt; http://www.eclipse.org/swt/faq.php#browserwebkitgtk&lt;/li&gt;&lt;li&gt;./eclipse -vmargs -Dorg.eclipse.swt.browser.UseWebKitGTK=true&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6662621277353988265-3559615890009418076?l=rationalwebsphere.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rationalwebsphere.blogspot.com/feeds/3559615890009418076/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rationalwebsphere.blogspot.com/2009/11/installing-rational-software-architect.html#comment-form' title='12 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6662621277353988265/posts/default/3559615890009418076'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6662621277353988265/posts/default/3559615890009418076'/><link rel='alternate' type='text/html' href='http://rationalwebsphere.blogspot.com/2009/11/installing-rational-software-architect.html' title='Installing Rational Software Architect Standard Edition 7.5.4 on Ubuntu 9.10'/><author><name>James Sears</name><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://1.bp.blogspot.com/_IaRd0uF5-I4/Su1wC3QqmbI/AAAAAAAAAew/j_wITjXI7Zc/s72-c/Screenshot-About+Rational+Software+Architect+Standard+Edition+.png' height='72' width='72'/><thr:total>12</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6662621277353988265.post-8694676816715495761</id><published>2009-09-04T07:00:00.001-07:00</published><updated>2009-09-22T03:28:45.506-07:00</updated><title type='text'>Using a WebSphere Scheduler</title><content type='html'>This posting demonstrates using a WebSphere Application Server &lt;a href="http://publib.boulder.ibm.com/infocenter/wasinfo/v5r1//index.jsp?topic=/com.ibm.wasee.doc/info/ee/javadoc/ee/com/ibm/websphere/scheduler/package-summary.html"&gt;Scheduler&lt;/a&gt; (tested in 6.0.2.35, but highly likely to be applicable upto 7.0) in the following way:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Setting up a standard &lt;a href="http://db.apache.org/derby/"&gt;apache Derby&lt;/a&gt; database to hold the scheduler tables.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Creating a WAS scheduler that is callable via JNDI (and uses tables in the derby database).&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Producing an .ear file containing three components: a servlet and two, minimalist, stateless EJB's that demonstrate the important scheduler API's.&lt;/li&gt;&lt;li&gt;Invoking the API and seeing the expected output.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;Code in the doGet of the servlet registers the EJB's with the scheduler. Doing this allows the scheduler to callback relevant methods either at the scheduled time or for when the state of the scheduled task changes...&lt;br /&gt;&lt;ul&gt;&lt;li&gt;The optional EJB uses a &lt;span style="font-weight: bold;"&gt;public void handleEvent(TaskNotificationInfo arg) &lt;/span&gt;method that gets invoked by the scheduler so that events related to the management of the scheduled task can be intercepted (if you want) by your business logic - e.g. a TaskNotificationInfo.PURGED notification.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;The mandatory EJB implements a &lt;span style="font-weight: bold;"&gt;public void process(TaskStatus arg)&lt;/span&gt; method, that gets invoked by the scheduler and carries out your business logic.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Set up the Derby database&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;The SQL used for creating the derby tables, required by the scheduler, is shipped in the Scheduler folder - for me that was /home/jsears/IBM/WebSphere/7/AppServer1/Scheduler.&lt;br /&gt;&lt;br /&gt;Basically I took the createSchemaMod1Derby.ddl file from my WAS 7 instance, created the database and then pointed my WAS 6.0 scheduler at it. I used this combination because RAD 6.0 and WAS 6.0 are my primary environments.&lt;br /&gt;&lt;br /&gt;The .ddl has to be modified with some variable substitution, for example: &lt;span style="font-weight: bold; font-style: italic;"&gt;"CREATE TABLE @TABLE_QUALIFIER@@TABLE_PREFIX@TASK ("TASKID" BIGINT NOT NULL ,"&lt;/span&gt; became &lt;span style="font-weight: bold; font-style: italic;"&gt;"CREATE TABLE TBLTASK ("TASKID" BIGINT NOT NULL ,"&lt;/span&gt;. I saved the result in a derby.sql file.&lt;br /&gt;&lt;br /&gt;From the command line (after downloading and extracting derby) I exported the following variables:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;export DERBY_HOME=/home/jsears/local/tmp3/db-derby-10.5.3.0-bin&lt;/li&gt;&lt;li&gt;export CLASSPATH=$DERBY_INSTALL/lib/derbyclient.jar:$DERBY_INSTALL/lib/derbytools.jar:.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;I then started the derby server:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;java -jar $DERBY_HOME/lib/derbyrun.jar server start&lt;/li&gt;&lt;/ul&gt;I then ran the ddl file (via a new terminal with the export's):&lt;br /&gt;&lt;ul&gt;&lt;li&gt;java -jar $DERBY_HOME/lib/derbyrun.jar ij&lt;/li&gt;&lt;li&gt;connect 'jdbc:derby://localhost:1527//home/jsears/local/tmp3/MyDbTest;create=true';&lt;/li&gt;&lt;li&gt;&lt;span&gt;run '/home/jsears/local/tmp3/derby.sql&lt;/span&gt;&lt;span&gt;';&lt;/span&gt;&lt;/li&gt;&lt;li&gt;show tables;&lt;/li&gt;&lt;/ul&gt;I then set up security:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;CALL SYSCS_UTIL.SYSCS_SET_DATABASE_PROPERTY('derby.user.user1', 'password1');&lt;/li&gt;&lt;li&gt;CALL SYSCS_UTIL.SYSCS_SET_DATABASE_PROPERTY('derby.connection.requireAuthentication', 'true');&lt;/li&gt;&lt;li&gt;disconnect;&lt;/li&gt;&lt;li&gt;connect 'jdbc:derby://localhost:1527//home/jsears/local/tmp3/MyDbTest;user=user1;password=password1';&lt;/li&gt;&lt;li&gt;exit;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Create The Scheduler&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Through the WebSphere Administrative console I created the database stuff first and then the scheduler stuff:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Security &gt; Global security &gt; JAAS Configuration &gt; J2C Authentication data &gt; New ...&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ol&gt;&lt;li&gt;Username and Password values as above, from derby setup, for jsears-desktopNode01/MyDerbyUID:&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_IaRd0uF5-I4/SrdXq3Xd_iI/AAAAAAAAAaE/Q-lZmMApZHc/s1600-h/3.jpeg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 235px;" src="http://2.bp.blogspot.com/_IaRd0uF5-I4/SrdXq3Xd_iI/AAAAAAAAAaE/Q-lZmMApZHc/s320/3.jpeg" alt="" id="BLOGGER_PHOTO_ID_5383868273473224226" border="0" /&gt;&lt;/a&gt;&lt;ul&gt;&lt;li&gt;Resources &gt; JDBC providers @ Server level &gt; New ...&lt;/li&gt;&lt;/ul&gt;&lt;ol&gt;&lt;li&gt;Name = Derby JSEARS 01&lt;/li&gt;&lt;li&gt;Class path = /home/jsears/local/tmp3/db-derby-10.5.3.0-bin/lib/derbyclient.jar&lt;/li&gt;&lt;li&gt;Implementation class name = org.apache.derby.jdbc.ClientConnectionPoolDataSource&lt;/li&gt;&lt;/ol&gt;&lt;ul&gt;&lt;li&gt;JDBC providers &gt; Derby JSEARS 01 &gt; Data sources &gt; New ...&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ol&gt;&lt;li&gt;Name = Derby Network Server DataSource&lt;/li&gt;&lt;li&gt;JNDI name = jdbc/DerbyNSDS&lt;/li&gt;&lt;li&gt;Component-managed authentication alias = jsears-desktopNode01/MyDerbyUID&lt;/li&gt;&lt;li&gt;When created press the "Test connection" button!&lt;/li&gt;&lt;/ol&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_IaRd0uF5-I4/SrdePl-61fI/AAAAAAAAAak/A2fZpaVq_5Y/s1600-h/4.jpeg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 212px;" src="http://2.bp.blogspot.com/_IaRd0uF5-I4/SrdePl-61fI/AAAAAAAAAak/A2fZpaVq_5Y/s320/4.jpeg" alt="" id="BLOGGER_PHOTO_ID_5383875501531780594" border="0" /&gt;&lt;/a&gt;&lt;ul&gt;&lt;li&gt;JDBC providers &gt; Derby JSEARS 01 &gt; Data sources &gt; Derby Network Server DataSource &gt; Custom properties&lt;/li&gt;&lt;/ul&gt;&lt;ol&gt;&lt;li&gt;databaseName = /home/jsears/local/tmp3/MyDbTest&lt;/li&gt;&lt;li&gt;serverName = localhost&lt;/li&gt;&lt;li&gt;portNumber = 1527&lt;/li&gt;&lt;/ol&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_IaRd0uF5-I4/SrddMdRADQI/AAAAAAAAAaU/kJSAe8Dx-tM/s1600-h/5.jpeg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 212px;" src="http://3.bp.blogspot.com/_IaRd0uF5-I4/SrddMdRADQI/AAAAAAAAAaU/kJSAe8Dx-tM/s320/5.jpeg" alt="" id="BLOGGER_PHOTO_ID_5383874348140465410" border="0" /&gt;&lt;/a&gt;&lt;ul&gt;&lt;li&gt;Resources &gt; Schedulers @ Server Level &gt; New ...&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ol&gt;&lt;li&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_IaRd0uF5-I4/SrdUtycq2cI/AAAAAAAAAZ0/__xOuovZIyw/s1600-h/1.jpeg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 207px;" src="http://3.bp.blogspot.com/_IaRd0uF5-I4/SrdUtycq2cI/AAAAAAAAAZ0/__xOuovZIyw/s320/1.jpeg" alt="" id="BLOGGER_PHOTO_ID_5383865025157585346" border="0" /&gt;&lt;/a&gt;Name = MyScheduler&lt;/li&gt;&lt;li&gt;JNDI name = sched/MyScheduler&lt;/li&gt;&lt;li&gt;&lt;span class="requiredField"&gt;Data source JNDI name&lt;/span&gt; = jdbc/DerbyNSDS&lt;/li&gt;&lt;li&gt;Data source alias = jsears-desktopNode01/MyDerbyUID&lt;/li&gt;&lt;li&gt;Table prefix = tbl&lt;/li&gt;&lt;li&gt;Work managers = Default Work Manager&lt;/li&gt;&lt;li&gt;When completed press the "Verify tables" button!&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_IaRd0uF5-I4/SrdWtCoRhTI/AAAAAAAAAZ8/comnKeRJ9rQ/s1600-h/2.jpeg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 235px;" src="http://3.bp.blogspot.com/_IaRd0uF5-I4/SrdWtCoRhTI/AAAAAAAAAZ8/comnKeRJ9rQ/s320/2.jpeg" alt="" id="BLOGGER_PHOTO_ID_5383867211344610610" border="0" /&gt;&lt;/a&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Use the API's&lt;/span&gt;&lt;br /&gt;The servlet looks like this, in my mind the important bit is how the call backs are registered:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_IaRd0uF5-I4/SreLM7ad5sI/AAAAAAAAAbo/lpB8XK3-ESw/s1600-h/a4.jpeg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 309px;" src="http://2.bp.blogspot.com/_IaRd0uF5-I4/SreLM7ad5sI/AAAAAAAAAbo/lpB8XK3-ESw/s320/a4.jpeg" alt="" id="BLOGGER_PHOTO_ID_5383924933768111810" border="0" /&gt;&lt;/a&gt;The first EJB is the optional one:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_IaRd0uF5-I4/SreLMcssweI/AAAAAAAAAbY/2FS2PoK_EqU/s1600-h/a2.jpeg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 284px;" src="http://3.bp.blogspot.com/_IaRd0uF5-I4/SreLMcssweI/AAAAAAAAAbY/2FS2PoK_EqU/s320/a2.jpeg" alt="" id="BLOGGER_PHOTO_ID_5383924925523083746" border="0" /&gt;&lt;/a&gt;And here is the mandatory EJB:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_IaRd0uF5-I4/SreLL-Lkx_I/AAAAAAAAAbQ/FPJSN_jBnJ8/s1600-h/a1.jpeg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 208px;" src="http://1.bp.blogspot.com/_IaRd0uF5-I4/SreLL-Lkx_I/AAAAAAAAAbQ/FPJSN_jBnJ8/s320/a1.jpeg" alt="" id="BLOGGER_PHOTO_ID_5383924917331085298" border="0" /&gt;&lt;/a&gt;What is most important is how the deployment descriptor looks (take into account that this was coded in a RAD 6 IDE). In particular how the&lt;home&gt; &lt;remote&gt; tag values mean that these interfaces do not have to be coded in java.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_IaRd0uF5-I4/SreLMoJvs2I/AAAAAAAAAbg/aCc1JcjW8NE/s1600-h/a3.jpeg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 240px;" src="http://3.bp.blogspot.com/_IaRd0uF5-I4/SreLMoJvs2I/AAAAAAAAAbg/aCc1JcjW8NE/s320/a3.jpeg" alt="" id="BLOGGER_PHOTO_ID_5383924928597701474" border="0" /&gt;&lt;/a&gt;NOTE: use the following in RAD as the JDBC Driver class if you want to connect RAD to derby: org.apache.derby.jdbc.ClientDriver&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Invoke the API&lt;/span&gt;&lt;br /&gt;Figure out what the appropriate BOOTSTRAP_ADDRESS + WC_defaulthost ports are of the servlet:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Servers &gt; Application Servers &gt; server1 &gt; Ports&lt;/li&gt;&lt;/ul&gt;And then call the servlet:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;http://127.0.0.1:9081/SchedWebApp/Main/&lt;/li&gt;&lt;/ul&gt;Finally, you should end up with something like this:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_IaRd0uF5-I4/SreKnkLUyoI/AAAAAAAAAbI/LJB6e05K0-g/s1600-h/a.jpeg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 208px;" src="http://4.bp.blogspot.com/_IaRd0uF5-I4/SreKnkLUyoI/AAAAAAAAAbI/LJB6e05K0-g/s320/a.jpeg" alt="" id="BLOGGER_PHOTO_ID_5383924291875424898" border="0" /&gt;&lt;/a&gt;&lt;/remote&gt;&lt;/home&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6662621277353988265-8694676816715495761?l=rationalwebsphere.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rationalwebsphere.blogspot.com/feeds/8694676816715495761/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rationalwebsphere.blogspot.com/2009/09/using-websphere-scheduler.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6662621277353988265/posts/default/8694676816715495761'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6662621277353988265/posts/default/8694676816715495761'/><link rel='alternate' type='text/html' href='http://rationalwebsphere.blogspot.com/2009/09/using-websphere-scheduler.html' title='Using a WebSphere Scheduler'/><author><name>James Sears</name><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/_IaRd0uF5-I4/SrdXq3Xd_iI/AAAAAAAAAaE/Q-lZmMApZHc/s72-c/3.jpeg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6662621277353988265.post-1697835582554179230</id><published>2009-07-10T07:44:00.000-07:00</published><updated>2009-09-22T03:29:13.986-07:00</updated><title type='text'>Updating / Patching WebSphere Application Server</title><content type='html'>&lt;p&gt;Figure out which fixpack you want by visiting the &lt;a href="http://www-01.ibm.com/support/docview.wss?rs=180&amp;amp;uid=swg27004980"&gt;IBM Recommended fixes for WebSphere Application Server&lt;/a&gt; page.&lt;/p&gt;&lt;p&gt;Next visit the IBM &lt;a href="http://www-01.ibm.com/support/docview.wss?rs=180&amp;amp;uid=swg27013594"&gt;Maintenance Download Wizard for WebSphere Application Server V7.0 &lt;/a&gt;site and download the maintenance wizard:&lt;/p&gt;&lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_IaRd0uF5-I4/SldUkat0bII/AAAAAAAAATM/Ziu2ui9VlAc/s1600-h/1.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 276px;" src="http://3.bp.blogspot.com/_IaRd0uF5-I4/SldUkat0bII/AAAAAAAAATM/Ziu2ui9VlAc/s320/1.png" alt="" id="BLOGGER_PHOTO_ID_5356843266404019330" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;With the Wizard, once you have extracted and installed it, you'll load the fixpack and basically patch your existing WebSphere install. For me, on Ubuntu 9.04, it was a straight forward process for both my 6.0 and 7.0 installs.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6662621277353988265-1697835582554179230?l=rationalwebsphere.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rationalwebsphere.blogspot.com/feeds/1697835582554179230/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rationalwebsphere.blogspot.com/2009/07/updating-websphere-application-server.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6662621277353988265/posts/default/1697835582554179230'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6662621277353988265/posts/default/1697835582554179230'/><link rel='alternate' type='text/html' href='http://rationalwebsphere.blogspot.com/2009/07/updating-websphere-application-server.html' title='Updating / Patching WebSphere Application Server'/><author><name>James Sears</name><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://3.bp.blogspot.com/_IaRd0uF5-I4/SldUkat0bII/AAAAAAAAATM/Ziu2ui9VlAc/s72-c/1.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6662621277353988265.post-7468041510451647446</id><published>2009-07-03T06:49:00.000-07:00</published><updated>2009-09-17T08:19:17.651-07:00</updated><title type='text'>JavaMail on WebSphere</title><content type='html'>&lt;span style="font-size:100%;"&gt;Creating a mail resource - whereby you use JNDI to get a context that you send email through - is surprisingly easy in WebSphere, at least for my minimal requirements :-)&lt;br /&gt;&lt;/span&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;I reused the Built-in Mail Provider @ server level:&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_IaRd0uF5-I4/SrJPvHg6nEI/AAAAAAAAAZU/jcYnDyxw5mo/s1600-h/5.jpeg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 258px;" src="http://3.bp.blogspot.com/_IaRd0uF5-I4/SrJPvHg6nEI/AAAAAAAAAZU/jcYnDyxw5mo/s320/5.jpeg" alt="" id="BLOGGER_PHOTO_ID_5382452175550716994" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;...and then created my own mail session:&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_IaRd0uF5-I4/SrJRql0DMrI/AAAAAAAAAZc/xJDthwvzh0w/s1600-h/5.jpeg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 258px;" src="http://2.bp.blogspot.com/_IaRd0uF5-I4/SrJRql0DMrI/AAAAAAAAAZc/xJDthwvzh0w/s320/5.jpeg" alt="" id="BLOGGER_PHOTO_ID_5382454296807944882" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;Mail Providers &gt; Built-in Mail Provider &gt; Mail Sessions&lt;/span&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;Name = MyMailSession&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;JNDI name = mail/MyMailSessionMail &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;transport host = 192.168.192.5&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;Mail transport user ID = wiki&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;Mail transport password = wiki&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;Enable debug mode = ticked&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;Next I created a very simple servlet, whose doGet method grabs the JNDI context and then uses the JavaMail API to send an email:&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_IaRd0uF5-I4/SrJSCSO1CfI/AAAAAAAAAZk/ZPBKFDwXPxY/s1600-h/5.jpeg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 246px;" src="http://3.bp.blogspot.com/_IaRd0uF5-I4/SrJSCSO1CfI/AAAAAAAAAZk/ZPBKFDwXPxY/s320/5.jpeg" alt="" id="BLOGGER_PHOTO_ID_5382454703868414450" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;span style="font-size:100%;"&gt;I pulled in the JNDI reference straight from the web container, but I could have used an environmental reference from the web.xml file:&lt;/span&gt;&lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_IaRd0uF5-I4/SrJSThImx8I/AAAAAAAAAZs/QxdZatj3kyc/s1600-h/5.jpeg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 246px;" src="http://1.bp.blogspot.com/_IaRd0uF5-I4/SrJSThImx8I/AAAAAAAAAZs/QxdZatj3kyc/s320/5.jpeg" alt="" id="BLOGGER_PHOTO_ID_5382454999926622146" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Because the SMTP debugging was on I got output that looked like the following and that resulted in an email being sent to me :-)&lt;/p&gt;&lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_IaRd0uF5-I4/SrJPYi2uuJI/AAAAAAAAAZM/f9GiAHbmtwc/s1600-h/5.jpeg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 225px;" src="http://1.bp.blogspot.com/_IaRd0uF5-I4/SrJPYi2uuJI/AAAAAAAAAZM/f9GiAHbmtwc/s320/5.jpeg" alt="" id="BLOGGER_PHOTO_ID_5382451787752978578" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;NOTE: a useful reference is at &lt;a href="http://www.ibm.com/developerworks/websphere/library/techarticles/0310_fung_yu/fung_yu.html"&gt;http://www.ibm.com/developerworks/websphere/library/techarticles/0310_fung_yu/fung_yu.html&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6662621277353988265-7468041510451647446?l=rationalwebsphere.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rationalwebsphere.blogspot.com/feeds/7468041510451647446/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rationalwebsphere.blogspot.com/2009/07/javamail-on-websphere.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6662621277353988265/posts/default/7468041510451647446'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6662621277353988265/posts/default/7468041510451647446'/><link rel='alternate' type='text/html' href='http://rationalwebsphere.blogspot.com/2009/07/javamail-on-websphere.html' title='JavaMail on WebSphere'/><author><name>James Sears</name><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://3.bp.blogspot.com/_IaRd0uF5-I4/SrJPvHg6nEI/AAAAAAAAAZU/jcYnDyxw5mo/s72-c/5.jpeg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6662621277353988265.post-2595952398072967357</id><published>2009-07-03T06:02:00.001-07:00</published><updated>2010-04-20T07:02:22.826-07:00</updated><title type='text'>Creating &amp; Referencing a JDBC JNDI Data Source</title><content type='html'>Here is how to create &amp;amp; reference a MySQL data source in WAS - one that can be retrieved using JNDI and features connection pooling. An example of how to call the data source, from a simple .war application running in the local container is also shown.&lt;br /&gt;&lt;br /&gt;NOTE:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;The instructions below apply to WebSphere Application Server 6.0.2.35 on Ubuntu 9.04, however I've also tested them successfully on in i5 WAS V6.1.0.11 Express instance - but bear in mind that some of the steps are slightly different (easier) due to the more modern version of WAS (&lt;span style="font-weight: bold;"&gt;best used via IE6 as the client IMO!&lt;/span&gt;)&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Create The Data Source&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;1. Resources &gt; JDBC Providers @ Server level &lt;span style="font-style: italic;"&gt;(the default for all of these instructions)&lt;/span&gt; &gt; New...&lt;br /&gt;&lt;ul&gt;&lt;li&gt;For General properties I used "User-defined"&lt;/li&gt;&lt;/ul&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_IaRd0uF5-I4/Sp_ef_lPNOI/AAAAAAAAAXM/jHGZpoI2YqU/s1600-h/a1.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 218px;" src="http://4.bp.blogspot.com/_IaRd0uF5-I4/Sp_ef_lPNOI/AAAAAAAAAXM/jHGZpoI2YqU/s320/a1.png" alt="" id="BLOGGER_PHOTO_ID_5377261121328592098" border="0" /&gt;&lt;/a&gt;After clicking Next I provided the following details&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Name = MySQL JDBC Provider&lt;/li&gt;&lt;li&gt;Class path = ${USER_INSTALL_ROOT}/mysql/mysql-connector-java-5.1.8-bin.jar - this equated to /home/jsears/IBM/RAD-6.0/runtimes/base_v6/profiles/AppSrv01/mysql&lt;/li&gt;&lt;li&gt;Implementation class name = com.mysql.jdbc.jdbc2.optional.MysqlConnectionPoolDataSource&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;2. Security &gt; Global security &gt; JAAS Configuration &gt; J2C Authentication data &gt; New&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Alias = MySQLUID - WAS renamed this to jsears-desktopNode01/MySQLUID&lt;/li&gt;&lt;li&gt;User ID = root&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Password = mysql&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;3. Resources &gt; JDBC providers &gt; MySQL JDBC Provider &gt; Data sources &gt; New&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Name = MySQL&lt;/li&gt;&lt;li&gt;JNDI name = jdbc/MySQL&lt;/li&gt;&lt;li&gt;Component-managed authentication alias =jsears-desktopNode01/MySQLUID&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;4. Resources &gt; JDBC providers &gt; MySQL JDBC Provider &gt; Data sources &gt; MySQL &gt; Custom Properties&lt;br /&gt;&lt;ul&gt;&lt;li&gt;databaseName = bugs - I referenced a BugZilla install on a separate server&lt;/li&gt;&lt;li&gt;port = 3306&lt;/li&gt;&lt;li&gt;serverName = 192.168.192.110&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_IaRd0uF5-I4/Sp_fNrUrQKI/AAAAAAAAAXU/xHtjf3Er4wA/s1600-h/a1.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 218px;" src="http://3.bp.blogspot.com/_IaRd0uF5-I4/Sp_fNrUrQKI/AAAAAAAAAXU/xHtjf3Er4wA/s320/a1.png" alt="" id="BLOGGER_PHOTO_ID_5377261906164400290" border="0" /&gt;&lt;/a&gt;&lt;server-name&gt;5. &lt;/server-name&gt;Resources &gt; &lt;server-name&gt;JDBC providers &gt; MySQL JDBC Provider &gt; Data sources &gt; MySQL &gt; WebSphere Application Server data source properties&lt;br /&gt;&lt;/server-name&gt;&lt;ul&gt;&lt;li&gt;&lt;server-name&gt;Statement cache size = 10&lt;/server-name&gt;&lt;/li&gt;&lt;li&gt;&lt;server-name&gt;&lt;/server-name&gt;Pretest connections = ticked&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;server-name&gt;6. &lt;/server-name&gt;Resources &gt; &lt;server-name&gt;JDBC providers &gt; MySQL JDBC Provider &gt; Data sources &gt; MySQL &gt; Test connection&lt;br /&gt;&lt;/server-name&gt;&lt;ul&gt;&lt;li&gt;NOTE: first restart WAS!&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;server-name&gt;&lt;/server-name&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_IaRd0uF5-I4/Sp_hALhoVXI/AAAAAAAAAXc/wGaK3EigLPY/s1600-h/a1.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 146px;" src="http://2.bp.blogspot.com/_IaRd0uF5-I4/Sp_hALhoVXI/AAAAAAAAAXc/wGaK3EigLPY/s320/a1.png" alt="" id="BLOGGER_PHOTO_ID_5377263873313756530" border="0" /&gt;&lt;/a&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Reference The Data Source&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;1. &lt;server-name&gt;Create a simple Servlet, with a doGet method, and flesh it out - the important thing will be the JNDI reference line:&lt;br /&gt;&lt;/server-name&gt;&lt;ul&gt;&lt;li&gt;&lt;server-name&gt;DataSource ds = (DataSource) ctx.lookup("java:comp/env/MySQLResourceReference");&lt;/server-name&gt;&lt;/li&gt;&lt;/ul&gt;&lt;server-name&gt;2. Against the web.xml deployment descriptor, using RAD, I added the Resource Reference to a data source:&lt;br /&gt;&lt;br /&gt;&lt;/server-name&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_IaRd0uF5-I4/Sp_lPauNbII/AAAAAAAAAXk/QEJ_YMZPCl8/s1600-h/a1.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 262px;" src="http://4.bp.blogspot.com/_IaRd0uF5-I4/Sp_lPauNbII/AAAAAAAAAXk/QEJ_YMZPCl8/s320/a1.png" alt="" id="BLOGGER_PHOTO_ID_5377268533137599618" border="0" /&gt;&lt;/a&gt;&lt;server-name&gt;Thus, after writing a very simple doGet I ended up with the following container based servlet that called the JNDI reference via indirection in the web.xml deployment descriptor:&lt;br /&gt;&lt;br /&gt;&lt;/server-name&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_IaRd0uF5-I4/SqDi-qpb-kI/AAAAAAAAAYE/3f0OfPJ48ZQ/s1600-h/a1.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 244px;" src="http://4.bp.blogspot.com/_IaRd0uF5-I4/SqDi-qpb-kI/AAAAAAAAAYE/3f0OfPJ48ZQ/s320/a1.png" alt="" id="BLOGGER_PHOTO_ID_5377547521308228162" border="0" /&gt;&lt;/a&gt;I accepted all the defaults when uploading the .war - including the "Map resource references to resources" options, as I had already defined the details previously:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_IaRd0uF5-I4/SqDngxqX0_I/AAAAAAAAAYM/G_kRCl3A150/s1600-h/a1.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 241px;" src="http://1.bp.blogspot.com/_IaRd0uF5-I4/SqDngxqX0_I/AAAAAAAAAYM/G_kRCl3A150/s320/a1.png" alt="" id="BLOGGER_PHOTO_ID_5377552505353262066" border="0" /&gt;&lt;/a&gt;The URL I used, once the application was started, to invoke this servlet was: http://127.0.0.1:9081/ReferenceJNDIdataSource/ReferenceJNDIdataSource&lt;br /&gt;&lt;server-name&gt;&lt;webappbnd:webappbinding version="2.0" xmi="http://www.omg.org/XMI" webappbnd="webappbnd.xmi" id="WebAppBinding_1147148645444" virtualhostname="default_host"&gt;&lt;webapp href="WEB-INF/web.xml#WebApp_ID"&gt;&lt;br /&gt;&lt;/webapp&gt;&lt;/webappbnd:webappbinding&gt;&lt;/server-name&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6662621277353988265-2595952398072967357?l=rationalwebsphere.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rationalwebsphere.blogspot.com/feeds/2595952398072967357/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rationalwebsphere.blogspot.com/2009/07/creating-referencing-jdbc-jndi-data.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6662621277353988265/posts/default/2595952398072967357'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6662621277353988265/posts/default/2595952398072967357'/><link rel='alternate' type='text/html' href='http://rationalwebsphere.blogspot.com/2009/07/creating-referencing-jdbc-jndi-data.html' title='Creating &amp; Referencing a JDBC JNDI Data Source'/><author><name>James Sears</name><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://4.bp.blogspot.com/_IaRd0uF5-I4/Sp_ef_lPNOI/AAAAAAAAAXM/jHGZpoI2YqU/s72-c/a1.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6662621277353988265.post-4207377340405462200</id><published>2009-06-29T13:18:00.001-07:00</published><updated>2009-09-22T03:30:38.677-07:00</updated><title type='text'>Message Driven Beans in WebSphere Application Server 6+</title><content type='html'>Creating a basic Message Driven Bean is quite straightforward, the hard part is setting up the WebSphere Application Server embedded JMS details and making sure your deployment references the correct details. &lt;br /&gt;&lt;br /&gt;An MDB is invoked asynchronously when a JMS message is put on a destination. The destination needs to be known before deployment as the soon to be created .EAR, holding our MDB, contains a deployment descriptor - ejb-jar.xml - that references the destination. Part of the deployment process, via the WebSphere Administrative Console, also references a JMS activation specification that can be said to be part of setting up the embedded JMS. &lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Set up WAS embedded JMS&lt;/span&gt; &lt;br /&gt;1. Create a new Service Integration Bus, called "B1": &lt;br /&gt; &lt;ul&gt;   &lt;li&gt;Service Integration &amp;gt; New &amp;gt; accept all defaults&lt;/li&gt; &lt;/ul&gt; 2. Assign "B1" to the Server, accepting all the defaults: &lt;br /&gt; &lt;ul&gt;   &lt;li&gt;Service Integration &amp;gt; Buses &amp;gt; B1 &amp;gt; Bus members&lt;/li&gt; &lt;/ul&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_IaRd0uF5-I4/Sp5IxPggcMI/AAAAAAAAAV0/ZM3AyVrSq6I/s1600-h/a.png"&gt;&lt;img style="margin: 0px auto 10px; text-align: center; width: 320px; display: block; height: 191px; cursor: pointer;" id="BLOGGER_PHOTO_ID_5376815015940616386" alt="" src="http://1.bp.blogspot.com/_IaRd0uF5-I4/Sp5IxPggcMI/AAAAAAAAAV0/ZM3AyVrSq6I/s320/a.png" border="0" /&gt;&lt;/a&gt;3. On "B1" create a destination, "Q1", accepting all defaults: &lt;br /&gt; &lt;ul&gt;   &lt;li&gt;Service Integration &amp;gt; Buses &amp;gt; B1 &amp;gt; Destinations &amp;gt; New &amp;gt; Queue&lt;/li&gt; &lt;/ul&gt; 4. Create a new JMS queue, accepting all defaults unless shown below: &lt;br /&gt; &lt;ul&gt;   &lt;li&gt;Resources &amp;gt; JMS Providers &amp;gt; Default messaging provider @ Server level &amp;gt; JMS queue&lt;/li&gt;    &lt;li&gt;Name = JMS_Q &lt;/li&gt;    &lt;li&gt;JNDI name = jms/JMS_Q1 &lt;/li&gt;    &lt;li&gt;Bus name = B1 &lt;/li&gt;    &lt;li&gt;Queue name = Q1 &lt;/li&gt;    &lt;li&gt;Delivery mode = Persistent&lt;/li&gt; &lt;/ul&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_IaRd0uF5-I4/Sp5KwM1uQYI/AAAAAAAAAV8/1lNrm6kt4MU/s1600-h/a.png"&gt;&lt;img style="margin: 0px auto 10px; text-align: center; width: 320px; display: block; height: 191px; cursor: pointer;" id="BLOGGER_PHOTO_ID_5376817197067682178" alt="" src="http://3.bp.blogspot.com/_IaRd0uF5-I4/Sp5KwM1uQYI/AAAAAAAAAV8/1lNrm6kt4MU/s320/a.png" border="0" /&gt;&lt;/a&gt;5. Create a new JMS connection factory, accepting all defaults unless shown below: &lt;br /&gt; &lt;ul&gt;   &lt;li&gt;Resources &amp;gt; JMS Providers &amp;gt; Default messaging provider @ Server level &amp;gt; JMS connection factory &lt;/li&gt;    &lt;li&gt;Name = JMS_CF1&lt;/li&gt;    &lt;li&gt;JNDI name = jms/JMS_CF1&lt;/li&gt;    &lt;li&gt;Bus name = B1&lt;/li&gt; &lt;/ul&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_IaRd0uF5-I4/Sp5MBlWWTHI/AAAAAAAAAWE/IFEzzMALLyM/s1600-h/a.png"&gt;&lt;img style="margin: 0px auto 10px; text-align: center; width: 320px; display: block; height: 191px; cursor: pointer;" id="BLOGGER_PHOTO_ID_5376818595216378994" alt="" src="http://1.bp.blogspot.com/_IaRd0uF5-I4/Sp5MBlWWTHI/AAAAAAAAAWE/IFEzzMALLyM/s320/a.png" border="0" /&gt;&lt;/a&gt;6. Create a new JMS queue connection factory, accepting all defaults unless shown below: &lt;br /&gt; &lt;ul&gt;   &lt;li&gt;Resources &amp;gt; JMS Providers &amp;gt; Default messaging provider @ Server level &amp;gt; JMS queue connection factory &lt;/li&gt;    &lt;li&gt;Name = JMS_QCF1&lt;/li&gt;    &lt;li&gt;JNDI name = jms/JMS_QCF1&lt;/li&gt;    &lt;li&gt;Bus name = B1&lt;/li&gt; &lt;/ul&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_IaRd0uF5-I4/Sp5OD6UHNmI/AAAAAAAAAWM/mv_lX--iGSg/s1600-h/a.png"&gt;&lt;img style="margin: 0px auto 10px; text-align: center; width: 320px; display: block; height: 191px; cursor: pointer;" id="BLOGGER_PHOTO_ID_5376820834227140194" alt="" src="http://3.bp.blogspot.com/_IaRd0uF5-I4/Sp5OD6UHNmI/AAAAAAAAAWM/mv_lX--iGSg/s320/a.png" border="0" /&gt;&lt;/a&gt;7. The final part is creating an activation specification: &lt;br /&gt; &lt;ul&gt;   &lt;li&gt;Resources &amp;gt; JMS Providers &amp;gt; Default messaging provider @ Server level &amp;gt; JMS activation specification &amp;gt; New&lt;/li&gt;    &lt;li&gt;Name = JMS_AS1&lt;/li&gt;    &lt;li&gt;JNDI name = eis/JMS_AS1&lt;/li&gt;    &lt;li&gt;Destination Type = Queue&lt;/li&gt;    &lt;li&gt;Destination JNDI name = jms/JMS_AS1&lt;/li&gt;    &lt;li&gt;Bus name = B1    &lt;br /&gt;&lt;/li&gt; &lt;/ul&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_IaRd0uF5-I4/Sp5Or0_2u0I/AAAAAAAAAWU/i8rhUj0RJHM/s1600-h/a.png"&gt;&lt;img style="margin: 0px auto 10px; text-align: center; width: 320px; display: block; height: 191px; cursor: pointer;" id="BLOGGER_PHOTO_ID_5376821519994764098" alt="" src="http://2.bp.blogspot.com/_IaRd0uF5-I4/Sp5Or0_2u0I/AAAAAAAAAWU/i8rhUj0RJHM/s320/a.png" border="0" /&gt;&lt;/a&gt;8. In order for WAS to recognise the JMS details we've just created unfortunately we need to restart WAS. &lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Use RAD to construct a very simple MDB &amp;amp; deploy it&lt;/span&gt; &lt;br /&gt;1. You'll end up with 3 very small projects, the key files are the ejb-jar.xml deployment descriptor... &lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_IaRd0uF5-I4/Sp5UHWVgEEI/AAAAAAAAAWc/1k56n9SwYeI/s1600-h/a.png"&gt;&lt;img style="margin: 0px auto 10px; text-align: center; width: 320px; display: block; height: 193px; cursor: pointer;" id="BLOGGER_PHOTO_ID_5376827490358530114" alt="" src="http://2.bp.blogspot.com/_IaRd0uF5-I4/Sp5UHWVgEEI/AAAAAAAAAWc/1k56n9SwYeI/s320/a.png" border="0" /&gt;&lt;/a&gt;...and the bean itself (notice the onMessage method I've fleshed out) &lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_IaRd0uF5-I4/Sp5U77jp7TI/AAAAAAAAAWk/V-91rpWK-IY/s1600-h/a.png"&gt;&lt;img style="margin: 0px auto 10px; text-align: center; width: 320px; display: block; height: 249px; cursor: pointer;" id="BLOGGER_PHOTO_ID_5376828393703206194" alt="" src="http://1.bp.blogspot.com/_IaRd0uF5-I4/Sp5U77jp7TI/AAAAAAAAAWk/V-91rpWK-IY/s320/a.png" border="0" /&gt;&lt;/a&gt;2. Deploy the .EAR file and provide the following information for the activation specification of: &lt;br /&gt; &lt;ul&gt;   &lt;li&gt;JNDI name = eis/JMS_AS1&lt;/li&gt;    &lt;li&gt;Destination JNDI Name = jms/JMS_Q1&lt;/li&gt; &lt;/ul&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_IaRd0uF5-I4/Sp5Yg9NQ49I/AAAAAAAAAW0/YH3E2tpoQ3Q/s1600-h/a.png"&gt;&lt;img style="margin: 0px auto 10px; text-align: center; width: 320px; display: block; height: 226px; cursor: pointer;" id="BLOGGER_PHOTO_ID_5376832328336204754" alt="" src="http://4.bp.blogspot.com/_IaRd0uF5-I4/Sp5Yg9NQ49I/AAAAAAAAAW0/YH3E2tpoQ3Q/s320/a.png" border="0" /&gt;&lt;/a&gt;3. Test the MDB is listening by sending a message with the Universal Test Client: &lt;br /&gt; &lt;ul&gt;   &lt;li&gt;http://localhost:9081/UTC/initialize?port=2810&amp;amp;wasAdminPort=2810&amp;amp;wasAdminConn=RMI &amp;gt; Utilities &amp;gt; Send JMS Message    &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;Queue JNDI Name = jms/JMS_Q1&lt;/li&gt;    &lt;li&gt;Queue CF JNDI Name = jms/JMS_QCF&lt;/li&gt;    &lt;li&gt;Message = hello world&lt;/li&gt;    &lt;li&gt;if the MDB is not deployed then look in: Buses &amp;gt; B1 &amp;gt; Destinations &amp;gt; Q1 &amp;gt; Queue points &amp;gt; Q1@jsears-desktopNode01.server1-B1 &amp;gt;&lt;/li&gt;    &lt;li&gt;else, look in the console window (as we had System.out logging there from the MDB):&lt;/li&gt; &lt;/ul&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_IaRd0uF5-I4/Sp5a_cu8YhI/AAAAAAAAAW8/-uekfFyFh_o/s1600-h/a.png"&gt;&lt;img style="margin: 0px auto 10px; text-align: center; width: 320px; display: block; height: 213px; cursor: pointer;" id="BLOGGER_PHOTO_ID_5376835051218297362" alt="" src="http://2.bp.blogspot.com/_IaRd0uF5-I4/Sp5a_cu8YhI/AAAAAAAAAW8/-uekfFyFh_o/s320/a.png" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6662621277353988265-4207377340405462200?l=rationalwebsphere.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rationalwebsphere.blogspot.com/feeds/4207377340405462200/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rationalwebsphere.blogspot.com/2009/06/message-driven-beans-in-websphere.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6662621277353988265/posts/default/4207377340405462200'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6662621277353988265/posts/default/4207377340405462200'/><link rel='alternate' type='text/html' href='http://rationalwebsphere.blogspot.com/2009/06/message-driven-beans-in-websphere.html' title='Message Driven Beans in WebSphere Application Server 6+'/><author><name>James Sears</name><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://1.bp.blogspot.com/_IaRd0uF5-I4/Sp5IxPggcMI/AAAAAAAAAV0/ZM3AyVrSq6I/s72-c/a.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6662621277353988265.post-7848081829048548828</id><published>2009-06-29T13:05:00.000-07:00</published><updated>2009-09-22T02:50:36.585-07:00</updated><title type='text'>log4j and WebSphere</title><content type='html'>Porting an application from Tomcat 5+ to WebSphere 6+ raises the question: what about the log4j log file? The following simple application demonstrates porting from one to the other with the minimum of hassle.&lt;br /&gt;&lt;br /&gt;The first step is to create a minimal servlet application in the IDE (unless otherwise stated, accepting all the defaults):&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_IaRd0uF5-I4/SlILqOqzjwI/AAAAAAAAAQ8/w3QjsFM1sjM/s1600-h/01.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 246px;" src="http://4.bp.blogspot.com/_IaRd0uF5-I4/SlILqOqzjwI/AAAAAAAAAQ8/w3QjsFM1sjM/s320/01.png" alt="" id="BLOGGER_PHOTO_ID_5355355727016988418" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;I used the rather ancient Rational Software Development Platform as my IDE:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_IaRd0uF5-I4/SlIMgdfmW1I/AAAAAAAAARM/oabmFy7qRVI/s1600-h/08.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 184px;" src="http://4.bp.blogspot.com/_IaRd0uF5-I4/SlIMgdfmW1I/AAAAAAAAARM/oabmFy7qRVI/s320/08.png" alt="" id="BLOGGER_PHOTO_ID_5355356658709453650" border="0" /&gt;&lt;/a&gt;However, the project can just as easily be created / imported in RAD 7.5.n (or a non Rational version of eclipse):&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_IaRd0uF5-I4/SlIOZuAXm-I/AAAAAAAAARU/tuyCuya6dXk/s1600-h/09.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 190px;" src="http://2.bp.blogspot.com/_IaRd0uF5-I4/SlIOZuAXm-I/AAAAAAAAARU/tuyCuya6dXk/s320/09.png" alt="" id="BLOGGER_PHOTO_ID_5355358741906037730" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;My Servlet looked like this:&lt;br /&gt;&lt;code style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;package jsears;&lt;br /&gt;&lt;br /&gt;import java.io.IOException;&lt;br /&gt;import java.io.PrintWriter;&lt;br /&gt;&lt;br /&gt;import javax.servlet.Servlet;&lt;br /&gt;import javax.servlet.ServletException;&lt;br /&gt;import javax.servlet.http.HttpServlet;&lt;br /&gt;import javax.servlet.http.HttpServletRequest;&lt;br /&gt;import javax.servlet.http.HttpServletResponse;&lt;br /&gt;&lt;br /&gt;import org.apache.log4j.Logger;&lt;br /&gt;&lt;br /&gt;/**&lt;br /&gt;* Tomcat = http://127.0.0.1:8080/log4j/main&lt;br /&gt;* WebSphere = http://127.0.0.1:9080/log4j/main&lt;br /&gt;*&lt;br /&gt;* @author jsears&lt;br /&gt;*&lt;br /&gt;*/&lt;br /&gt;public class Main extends HttpServlet implements Servlet {&lt;br /&gt;private static final long serialVersionUID = 233300306772977426L;&lt;br /&gt;&lt;br /&gt;protected static final Logger logger = Logger.getLogger(Main.class);&lt;br /&gt;&lt;br /&gt;private static String sessionId = null;&lt;br /&gt;&lt;br /&gt;public static synchronized String getSessionId() {&lt;br /&gt; return Main.sessionId;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;protected void doGet(HttpServletRequest arg0, HttpServletResponse arg1)&lt;br /&gt;     throws ServletException, IOException {&lt;br /&gt; sessionId = arg0.getSession().getId();&lt;br /&gt;&lt;br /&gt; logger.debug(sessionId);&lt;br /&gt;&lt;br /&gt; PrintWriter out = arg1.getWriter();&lt;br /&gt; out.println(sessionId);&lt;br /&gt; out.close();&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;The only library I added to the project was log4j that I downloaded from &lt;a href="http://logging.apache.org/log4j/1.2/index.html"&gt;http://logging.apache.org/log4j/1.2/index.html&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I also created a second class, inherited from PatternLayout, that allows me to see the sessionId for each client in a single log file. Its not needed for getting lo4j to work, just that its a handy class to keep track of in this blog :-)&lt;br /&gt;&lt;code style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;package jsears;&lt;br /&gt;&lt;br /&gt;import org.apache.log4j.PatternLayout;&lt;br /&gt;import org.apache.log4j.spi.LoggingEvent;&lt;br /&gt;&lt;br /&gt;public class HelperLayout extends PatternLayout {&lt;br /&gt;StringBuffer stringBuffer = new StringBuffer(128);&lt;br /&gt;&lt;br /&gt;private String getSessionId() {&lt;br /&gt; return Main.getSessionId() + ": ";&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public void activateOptions() {&lt;br /&gt; return;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public String format(LoggingEvent event) {&lt;br /&gt; return getSessionId() + super.format(event);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public boolean ignoresThrowable() {&lt;br /&gt; return true;&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Finally, I added the following two files - so that they were on the classpath and ended up inside WEB-INF/classes:&lt;br /&gt;&lt;ul style="font-style: italic;"&gt;&lt;li&gt;commons-logging.properties&lt;/li&gt;&lt;/ul&gt;&lt;code style="color: rgb(0, 0, 0);"&gt;# Set application classloader mode as PARENT_LAST when deploying in WAS as .ear&lt;br /&gt;priority=1&lt;br /&gt;org.apache.commons.logging.LogFactory=org.apache.commons.logging.impl.LogFactoryImpl &lt;/code&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;log4j.properties&lt;/li&gt;&lt;/ul&gt;&lt;code style="color: rgb(0, 0, 0);"&gt;# HIERARCHY: ALL &gt; DEBUG &gt; INFO &gt; WARN &gt; ERROR &gt; FATAL &gt; OFF&lt;br /&gt;&lt;br /&gt;# Everything ###############################################################&lt;br /&gt;#log4j.rootCategory=OFF, file&lt;br /&gt;&lt;br /&gt;# application ###############################################################&lt;br /&gt;log4j.logger.jsears=ALL, out, file&lt;br /&gt;&lt;br /&gt;# Get rid of various Tomcat "WARN No appenders" complaints&lt;br /&gt;log4j.logger.org.apache.catalina=OFF&lt;br /&gt;&lt;br /&gt;# Appender definitions ########################################################&lt;br /&gt;log4j.appender.out=org.apache.log4j.ConsoleAppender&lt;br /&gt;log4j.appender.out.target=System.out&lt;br /&gt;&lt;br /&gt;log4j.appender.file=org.apache.log4j.RollingFileAppender&lt;br /&gt;log4j.appender.file.MaxFileSize=5MB&lt;br /&gt;log4j.appender.file.MaxBackupIndex=5&lt;br /&gt;&lt;br /&gt;# Tomcat&lt;br /&gt;#log4j.appender.file.File=${catalina.home}/logs/log4j.log&lt;br /&gt;&lt;br /&gt;# WAS - e.g. use this line when deploying into WAS&lt;br /&gt;log4j.appender.file.File=${LOG_ROOT}logs/log4j.log&lt;br /&gt;&lt;br /&gt;# Appender layouts ##########################################################&lt;br /&gt;log4j.appender.out.layout=jsears.HelperLayout&lt;br /&gt;log4j.appender.out.layout.ConversionPattern=%-5p: %d{dd MMM yyyy HH:mm:ss,SSS}: %C{1},%L: %m%n&lt;br /&gt;&lt;br /&gt;log4j.appender.file.layout=jsears.HelperLayout&lt;br /&gt;log4j.appender.file.layout.ConversionPattern=%-5p: %d{dd MMM yyyy HH:mm:ss,SSS}: %C{1},%L: %m%n&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Depending on where you are porting the application to - from WebSphere to Tomcat, or vice versa - then you need to comment out the appropriate Tomcat or WAS line in the log4j.properties file.&lt;br /&gt;&lt;br /&gt;I did not bundle the servlet into an .ear file - instead I specified the context when I uploaded / installed it into WebSphere:&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_IaRd0uF5-I4/SlILqTWohfI/AAAAAAAAARE/5XP_UXIZP1E/s1600-h/07.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 227px;" src="http://2.bp.blogspot.com/_IaRd0uF5-I4/SlILqTWohfI/AAAAAAAAARE/5XP_UXIZP1E/s320/07.png" alt="" id="BLOGGER_PHOTO_ID_5355355728274556402" border="0" /&gt;&lt;/a&gt;&lt;span style="font-style: italic;"&gt;Specifying a .war context in WebSphere Application Server 6.0.2.33&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_IaRd0uF5-I4/SlIX7fMlU-I/AAAAAAAAARs/7qxw9CG8ua4/s1600-h/10.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 229px;" src="http://3.bp.blogspot.com/_IaRd0uF5-I4/SlIX7fMlU-I/AAAAAAAAARs/7qxw9CG8ua4/s320/10.png" alt="" id="BLOGGER_PHOTO_ID_5355369217650938850" border="0" /&gt;&lt;/a&gt;&lt;span style="font-style: italic;"&gt;Specifying a .war context in WebSphere Application Server 7.0.0.0 ND&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;I exported the .war file from the IDE and have successfully deployed it in WAS 6 through to WAS 7 as well as Tomcat 5.5.27 - all running on Ubuntu 9.04. The only change that I needed to make was in the log4j.properties file - uncommenting / commenting out the appropriate file appender line.&lt;br /&gt;&lt;br /&gt;In WebSphere the logfile will appear in your profiles folder - e.g. AppServer1/profiles/AppSrv01/logs. Similarly, in Tomcat it will appear in the logs folder.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;NOTE: A useful reference to this is at &lt;a href="http://wiki.apache.org/jakarta-commons/Logging/FrequentlyAskedQuestions"&gt;http://wiki.apache.org/jakarta-commons/Logging/FrequentlyAskedQuestions&lt;/a&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6662621277353988265-7848081829048548828?l=rationalwebsphere.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rationalwebsphere.blogspot.com/feeds/7848081829048548828/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rationalwebsphere.blogspot.com/2009/06/log4j-and-websphere.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6662621277353988265/posts/default/7848081829048548828'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6662621277353988265/posts/default/7848081829048548828'/><link rel='alternate' type='text/html' href='http://rationalwebsphere.blogspot.com/2009/06/log4j-and-websphere.html' title='log4j and WebSphere'/><author><name>James Sears</name><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://4.bp.blogspot.com/_IaRd0uF5-I4/SlILqOqzjwI/AAAAAAAAAQ8/w3QjsFM1sjM/s72-c/01.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6662621277353988265.post-579631318495418657</id><published>2009-06-29T12:56:00.000-07:00</published><updated>2009-09-22T02:40:29.058-07:00</updated><title type='text'>How to configure WAS Custom Security</title><content type='html'>When configuring Custom Security it is sometimes useful to know how to create / delete a server profile, and this is what I'll first document.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Creating a Profile&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;It is possible to create a server profile from the Rational Application Developer IDE, or, from the command line. Each profile ends up in its own sub-folder - e.g. AppSrv01 - in the profiles folder in the WAS install folder.&lt;br /&gt;&lt;br /&gt;In the IDE, profile creation can be carried out using the Window &gt; Preference dialog:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_IaRd0uF5-I4/SlXi4GsCfgI/AAAAAAAAAR0/rgxyyZuqrcw/s1600-h/6.a.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 240px;" src="http://2.bp.blogspot.com/_IaRd0uF5-I4/SlXi4GsCfgI/AAAAAAAAAR0/rgxyyZuqrcw/s320/6.a.png" alt="" id="BLOGGER_PHOTO_ID_5356436785322950146" border="0" /&gt;&lt;/a&gt;Or from the - my - command line:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;/home/jsears/IBM/RAD-6.0/runtimes/base_v6/bin/ProfileCreator/pctLinux.bin&lt;/li&gt;&lt;li&gt;/home/jsears/IBM/WebSphere/&lt;6.1&gt;/AppServer1/bin/ProfileManagement/pmt.sh&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_IaRd0uF5-I4/SlXi4rDS-kI/AAAAAAAAASE/zePBmFIbomg/s1600-h/c-new-profile-6.1.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 205px;" src="http://4.bp.blogspot.com/_IaRd0uF5-I4/SlXi4rDS-kI/AAAAAAAAASE/zePBmFIbomg/s320/c-new-profile-6.1.png" alt="" id="BLOGGER_PHOTO_ID_5356436795084175938" border="0" /&gt;&lt;/a&gt;WAS 6.1.0.0 Profile Management Tool&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_IaRd0uF5-I4/SlXi4y3NAuI/AAAAAAAAASM/IT17Oo6VIPM/s1600-h/d-new-profile-7.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 310px;" src="http://4.bp.blogspot.com/_IaRd0uF5-I4/SlXi4y3NAuI/AAAAAAAAASM/IT17Oo6VIPM/s320/d-new-profile-7.png" alt="" id="BLOGGER_PHOTO_ID_5356436797180936930" border="0" /&gt;&lt;/a&gt;WAS 7.0.0.0 ND Profile Management Tool&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;It is possible to delete and remove profiles by using "rm -f" from the profile directory &lt;span style="font-weight: bold;"&gt;and&lt;/span&gt; editing a profileRegistry.xml file. For me, using the IDE version of WAS, this was: /home/jsears/IBM/RAD-6.0/runtimes/base_v6/properties/profileRegistry.xml. Alternately, if you used the default installation of WAS then (at least on Ubuntu 9.04) it should be: /opt/IBM/WebSphere/AppServer/properties/profileRegistry.xml&lt;br /&gt;&lt;br /&gt;Once you have created a profile you need to register it in the IDE like any other Server:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_IaRd0uF5-I4/SlXi4Tx6JKI/AAAAAAAAAR8/A3t_RYof8ck/s1600-h/b-new-profile.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 294px;" src="http://3.bp.blogspot.com/_IaRd0uF5-I4/SlXi4Tx6JKI/AAAAAAAAAR8/A3t_RYof8ck/s320/b-new-profile.png" alt="" id="BLOGGER_PHOTO_ID_5356436788837229730" border="0" /&gt;&lt;/a&gt;Once registered you then need to start the server profile, either via the IDE or using the "First steps" front end - .../profiles/AppSrv01/firststeps/firststeps.sh.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Configuring Custom Security&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Once you have a clean profile running then this is what I did to create a Standalone custom registry - in this case for WebSphere 7.0.0.0 ND (but the information holds near identically true for previous versions of WebSphere).&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Login in to WebSphere, for me this was: &lt;a href="http://localhost:9066/ibm/console/unsecureLogon.jsp"&gt;http://localhost:9066/ibm/console/unsecureLogon.jsp&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Navigate to Security &gt; Global security&lt;/li&gt;&lt;li&gt;Set Available realm definitions (or Active user registry in 6.0.2.35) drop list to "Standalone custom registry" and press the "Configure..." button (or the "Custom user registry" link in 6.0.2.35):&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_IaRd0uF5-I4/SlX4j1lKROI/AAAAAAAAASc/DpaR51bDpFQ/s1600-h/global-security.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 238px;" src="http://1.bp.blogspot.com/_IaRd0uF5-I4/SlX4j1lKROI/AAAAAAAAASc/DpaR51bDpFQ/s320/global-security.png" alt="" id="BLOGGER_PHOTO_ID_5356460626389124322" border="0" /&gt;&lt;/a&gt;&lt;ul&gt;&lt;li&gt;In the file system create a localAuthentication folder in your profile - for me this was: .../profiles/AppSrv01/localAuthentication/&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Back on the Global security &gt; Standalone custom registry page, complete the following (and then press the OK  button and the Save link):&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Primary administrative user name = corey&lt;/li&gt;&lt;li&gt;The Custom name value properties are:&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;usersFile = ${USER_INSTALL_ROOT}/localAuthentication/users.props&lt;br /&gt;&lt;code style="color: rgb(0, 0, 0);"&gt;# name:passwd:uid:gids:display name&lt;br /&gt;corey:corey1:2:567:&lt;br /&gt;dave:dave1:2:567:&lt;br /&gt;bob:bob1:3:567:&lt;br /&gt;ethel:ethel1:4:567:&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;groupsFile = ${USER_INSTALL_ROOT}/localAuthentication/groups.props&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;code style="color: rgb(0, 0, 0);"&gt;# name:gid:user&lt;,&gt;:display name&lt;br /&gt;admins:567:corey,bob:Administrators&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_IaRd0uF5-I4/SlcU7J_ts2I/AAAAAAAAASs/-X0whYRbYto/s1600-h/global-security.png"&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_IaRd0uF5-I4/SldTbbunrqI/AAAAAAAAATE/8aBTwrj4hl8/s1600-h/1.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 239px;" src="http://2.bp.blogspot.com/_IaRd0uF5-I4/SldTbbunrqI/AAAAAAAAATE/8aBTwrj4hl8/s320/1.png" alt="" id="BLOGGER_PHOTO_ID_5356842012545363618" border="0" /&gt;&lt;/a&gt;NOTE: the format of these two properties files is related to the built-in FileRegistrySample class: &lt;a href="http://publib.boulder.ibm.com/infocenter/wasinfo/v6r0/index.jsp?topic=/com.ibm.websphere.express.doc/info/exp/ae/rsec_frsjf502.html"&gt;http://publib.boulder.ibm.com/infocenter/wasinfo/v6r0/index.jsp?topic=/com.ibm.websphere.express.doc/info/exp/ae/rsec_frsjf502.html&lt;/a&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Press the "Set as current" button against the "Standalone custom registry"&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Tick "Enable administrative security" (or "Enable global security" in prior versions)  - your single tick will also tick the "Enable application security" &amp;amp; "Java 2 security" tick boxes. Untick the "Java 2 security" tick box. Next, press the "Apply" button.&lt;/li&gt;&lt;li&gt;Then Apply / save the settings.&lt;/li&gt;&lt;li&gt;In the RAD IDE goto the Server &gt; Servers view and double click on the WAS server and complete the Security section with the details of either bob or corey (from the users.props file). Don't forget to save the details page!&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_IaRd0uF5-I4/SlcccZA3XlI/AAAAAAAAAS0/zHKnW8qGAzs/s1600-h/global-security.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 270px;" src="http://2.bp.blogspot.com/_IaRd0uF5-I4/SlcccZA3XlI/AAAAAAAAAS0/zHKnW8qGAzs/s320/global-security.png" alt="" id="BLOGGER_PHOTO_ID_5356781555856924242" border="0" /&gt;&lt;/a&gt; Restart WAS :-( and login with: &lt;a href="https://localhost:9049/ibm/console/logon.jsp"&gt;https://localhost:9049/ibm/console/logon.jsp&lt;/a&gt; (or whatever port is appropriate to your profile). Your browser might not recognise the SSL certificate, so you might need to add an exception:&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_IaRd0uF5-I4/Slc_9TubRyI/AAAAAAAAAS8/0odrg_bUkDs/s1600-h/1.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 248px;" src="http://2.bp.blogspot.com/_IaRd0uF5-I4/Slc_9TubRyI/AAAAAAAAAS8/0odrg_bUkDs/s320/1.png" alt="" id="BLOGGER_PHOTO_ID_5356820604280063778" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Once you have loged with corey/corey1 then you can assign declarative authorization to your applications / resources - i.e. URI's or methods on Servlets or EJB's.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6662621277353988265-579631318495418657?l=rationalwebsphere.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rationalwebsphere.blogspot.com/feeds/579631318495418657/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rationalwebsphere.blogspot.com/2009/06/how-to-configure-websphere-application.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6662621277353988265/posts/default/579631318495418657'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6662621277353988265/posts/default/579631318495418657'/><link rel='alternate' type='text/html' href='http://rationalwebsphere.blogspot.com/2009/06/how-to-configure-websphere-application.html' title='How to configure WAS Custom Security'/><author><name>James Sears</name><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/_IaRd0uF5-I4/SlXi4GsCfgI/AAAAAAAAAR0/rgxyyZuqrcw/s72-c/6.a.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6662621277353988265.post-6463552467742780492</id><published>2009-06-25T02:32:00.000-07:00</published><updated>2009-09-22T03:31:57.503-07:00</updated><title type='text'>WebSphere Thin Client with various JVM's</title><content type='html'>Definitions of a "Thin Client" seem to vary. In the context of this post a Thin Client is an application that calls upon the resources of WebSphere via JNDI but that is initialized outside of WebSphere.&lt;br /&gt;&lt;br /&gt;The IBM Thin Client is an optional component of the default WebSphere install, which I downloaded from &lt;a href="http://ibm.com/partnerworld/"&gt;http://ibm.com/partnerworld/&lt;/a&gt; - using credentials.&lt;br /&gt;&lt;br /&gt;I downloaded and installed Application Clients for two Linux WAS versions, 6.0 and 7.0...&lt;br /&gt;&lt;ul&gt;&lt;li&gt;WebSphere Application Server Network Deployment V6.0 Application Server, IBM HTTP Server, Web server plug ins, Application Clients for Linux, 32-bit support Multilingual:&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size:85%;"&gt;-rw-r--r--  1 jsears jsears  541969911 2009-06-23 20:28 C5882ML.tar.gz&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_IaRd0uF5-I4/SkNPyk_HcHI/AAAAAAAAAOk/IPQJTExfaC8/s1600-h/6+Screenshot-Untitled+Window.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 198px;" src="http://3.bp.blogspot.com/_IaRd0uF5-I4/SkNPyk_HcHI/AAAAAAAAAOk/IPQJTExfaC8/s320/6+Screenshot-Untitled+Window.png" alt="" id="BLOGGER_PHOTO_ID_5351208512586739826" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_IaRd0uF5-I4/SkNPyW3u4NI/AAAAAAAAAOc/9h5dVETKJ6g/s1600-h/6+options+Screenshot-Untitled+Window.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 198px;" src="http://1.bp.blogspot.com/_IaRd0uF5-I4/SkNPyW3u4NI/AAAAAAAAAOc/9h5dVETKJ6g/s320/6+options+Screenshot-Untitled+Window.png" alt="" id="BLOGGER_PHOTO_ID_5351208508797673682" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;IBM WebSphere Application Server Network Deployment V7.0 for Linux:&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size:85%;"&gt;-rw-r--r--  1 jsears jsears  821368441 2008-10-10 16:21 C1G32ML.tar.gz&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_IaRd0uF5-I4/SkNPy7hFKrI/AAAAAAAAAOs/tgc16TpN5cs/s1600-h/7+Screenshot-file:--+-+WebSphere+Application+Server+Network+Deployment+-+Mozilla+Firefox.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 212px;" src="http://2.bp.blogspot.com/_IaRd0uF5-I4/SkNPy7hFKrI/AAAAAAAAAOs/tgc16TpN5cs/s320/7+Screenshot-file:--+-+WebSphere+Application+Server+Network+Deployment+-+Mozilla+Firefox.png" alt="" id="BLOGGER_PHOTO_ID_5351208518634777266" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;As with installing the Server (v7.0), ignore the warning!&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_IaRd0uF5-I4/SkNPzWinPqI/AAAAAAAAAO8/OZL4Da4WbMw/s1600-h/7+Screenshot-IBM+Application+Client+for+WebSphere+Application+Server+7.0-1.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 225px;" src="http://2.bp.blogspot.com/_IaRd0uF5-I4/SkNPzWinPqI/AAAAAAAAAO8/OZL4Da4WbMw/s320/7+Screenshot-IBM+Application+Client+for+WebSphere+Application+Server+7.0-1.png" alt="" id="BLOGGER_PHOTO_ID_5351208525888962210" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_IaRd0uF5-I4/SkNPzBd240I/AAAAAAAAAO0/gEfhgWuqCXg/s1600-h/7+Screenshot-IBM+Application+Client+for+WebSphere+Application+Server+7.0.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 225px;" src="http://4.bp.blogspot.com/_IaRd0uF5-I4/SkNPzBd240I/AAAAAAAAAO0/gEfhgWuqCXg/s320/7+Screenshot-IBM+Application+Client+for+WebSphere+Application+Server+7.0.png" alt="" id="BLOGGER_PHOTO_ID_5351208520231871298" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;I installed &lt;span style="font-weight: bold;"&gt;/home/jsears/IBM/WebSphere/AppClient/6.0/samples/lib/TechnologySamplesThinClient/BasicCalculatorEJB.jar&lt;/span&gt; into my, Ubuntu 9.04 based, WAS ND v7, accepting all the defaults.&lt;br /&gt;&lt;br /&gt;Perhaps surprisingly ;-) - as we are using a v6.0 ejb in a v7.0 server - it installed and started without any problems:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_IaRd0uF5-I4/SkOSn5MetvI/AAAAAAAAAPE/3MSSv3R7dH4/s1600-h/Screenshot-Integrated+Solutions+Console+-+Mozilla+Firefox.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 241px;" src="http://3.bp.blogspot.com/_IaRd0uF5-I4/SkOSn5MetvI/AAAAAAAAAPE/3MSSv3R7dH4/s320/Screenshot-Integrated+Solutions+Console+-+Mozilla+Firefox.png" alt="" id="BLOGGER_PHOTO_ID_5351281996312000242" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Next I changed my path to pick up the bin folder of the AppClient install, and then invoked the client:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;On windows this would be something like:&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size:85%;"&gt;set PATH=C:\Program Files\IBM\WebSphere\AppClient\bin;%PATH%&lt;br /&gt;cd C:\Program Files\IBM\WebSphere\AppClient\samples\bin\TechnologySamplesThinClient\BasicCalculator\&lt;br /&gt;basicCalculator.bat&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;On ubuntu 9.04 it was:&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size:85%;"&gt;PATH=/home/jsears/IBM/WebSphere/AppClient/6.0/bin:$PATH&lt;br /&gt;export PATH&lt;br /&gt;cd /home/jsears/IBM/WebSphere/AppClient/6.0/samples/bin/TechnologySamplesThinClient/BasicCalculator&lt;br /&gt;./basicCalculator&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;What might not be so obvious is that the basicCalculator script is using the IBM JVM that ships with the AppClient, not the one installed on you path (OpenJDK in the case of Ubuntu):&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_IaRd0uF5-I4/SkOcTHEqWlI/AAAAAAAAAPk/lUbXvlse8Wg/s1600-h/Screenshot-jsears%40jsears-laptop:+%7E-IBM-WebSphere-AppClient-6.0-samples-bin-TechnologySamplesThinClient-BasicCalculator.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 145px;" src="http://4.bp.blogspot.com/_IaRd0uF5-I4/SkOcTHEqWlI/AAAAAAAAAPk/lUbXvlse8Wg/s320/Screenshot-jsears%40jsears-laptop:+%7E-IBM-WebSphere-AppClient-6.0-samples-bin-TechnologySamplesThinClient-BasicCalculator.png" alt="" id="BLOGGER_PHOTO_ID_5351292634376329810" border="0" /&gt;&lt;/a&gt;In my experiance installing another JVM on a client / production machine, unless for a specific reason, is too much hassle. So, to use the default Ubuntu 9.04 JVM, OpenJDK, I did the following:&lt;br /&gt;&lt;br /&gt;Download the &lt;a href="http://www-01.ibm.com/support/docview.wss?uid=swg24012804"&gt;IBM Client for JMS on J2SE with IBM WebSphere Application Server&lt;/a&gt; from ftp://ftp.software.ibm.com/software/websphere/appserv/support/tools/JMSclient/sibc_install-o0902.06.jar and extract the following jars (via java -jar sibc_install-o0902.06.jar jms_jndi_sun):&lt;br /&gt;&lt;span style="font-size:85%;"&gt;sibc.jms.jar&lt;br /&gt;sibc.jndi.jar&lt;br /&gt;sibc.orb.jar&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Next create a &lt;span style="font-weight: bold;"&gt;go.sh&lt;/span&gt; file, as below, to successfully invoke the BasicCalculatorClientThinMain class:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;#!/bin/sh&lt;br /&gt;# /home/jsears/IBM/WebSphere/AppClient/6.0/samples/bin/TechnologySamplesThinClient/BasicCalculator/go.sh&lt;br /&gt;java \&lt;br /&gt;-classpath sibc.jms.jar:sib.jndi.jar:sibc.orb.jar:/home/jsears/IBM/WebSphere/AppClient/6.0/lib/naming.jar:/home/jsears/IBM/WebSphere/AppClient/6.0/lib/namingclient.jar:/home/jsears/IBM/WebSphere/AppClient/6.0/lib/idl.jar:/home/jsears/IBM/WebSphere/AppClient/6.0/lib/j2ee.jar:../../../lib/TechnologySamplesThinClient/BasicCalculatorClientCommon.jar:../../../lib/TechnologySamplesThinClient/BasicCalculatorThinClient.jar:../../../lib/TechnologySamplesThinClient/BasicCalculatorEJB.jar \&lt;br /&gt;-Djava.naming.provider.url=iiop://127.0.0.1:2809 \&lt;br /&gt;-Djava.naming.factory.initial=com.ibm.websphere.naming.WsnInitialContextFactory \&lt;br /&gt;-Dcom.ibm.CORBA.ConfigURL=file:/home/jsears/IBM/WebSphere/AppClient/6.0/properties/sas.client.props \&lt;br /&gt;-Dcom.ibm.CORBA.ORBInit=com.ibm.ws.sib.client.ORB \&lt;br /&gt;com.ibm.websphere.samples.technologysamples.basiccalcthinclient.BasicCalculatorClientThinMain add 1 2&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Running this shell script means we have a non IBM JVM invoking an EJB inside WebSphere 6.0 or WebSphere 7.0 on Ubuntu.&lt;br /&gt;&lt;br /&gt;As an aside, I also successfully tested go.sh against a iSeries WebSphere Express 6.1.0.11 hosting the BasicCalculatorEJB.jar &amp;amp; changing the naming.provier url above to the new host and iiop bootstrap port:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_IaRd0uF5-I4/SkOa9GiWpzI/AAAAAAAAAPc/kRjQ2yj4_2s/s1600-h/Screenshot-HTTP+Server+Administration+on+S10ADA02+-+Mozilla+Firefox.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 277px;" src="http://4.bp.blogspot.com/_IaRd0uF5-I4/SkOa9GiWpzI/AAAAAAAAAPc/kRjQ2yj4_2s/s320/Screenshot-HTTP+Server+Administration+on+S10ADA02+-+Mozilla+Firefox.png" alt="" id="BLOGGER_PHOTO_ID_5351291156763682610" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;NOTES:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;This shell script was successfully tested, on Ubuntu 9.04, using the following non IBM JVM's:&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size:85%;"&gt;java version "1.6.0_0"&lt;br /&gt;OpenJDK Runtime Environment (IcedTea6 1.4.1) (6b14-1.4.1-0ubuntu7)&lt;br /&gt;OpenJDK Client VM (build 14.0-b08, mixed mode, sharing)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;java version "1.6.0_13"&lt;br /&gt;Java(TM) SE Runtime Environment (build 1.6.0_13-b03)&lt;br /&gt;Java HotSpot(TM) Client VM (build 11.3-b02, mixed mode, sharing)&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;The IBM provided BasicCalculatorClient source code is the same for v6.0 and v7.0 of WebSphere installs!&lt;/li&gt;&lt;li&gt;This has not, successfully, been tested with JAAS.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6662621277353988265-6463552467742780492?l=rationalwebsphere.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rationalwebsphere.blogspot.com/feeds/6463552467742780492/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rationalwebsphere.blogspot.com/2009/06/websphere-thin-client-with-various-jvms.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6662621277353988265/posts/default/6463552467742780492'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6662621277353988265/posts/default/6463552467742780492'/><link rel='alternate' type='text/html' href='http://rationalwebsphere.blogspot.com/2009/06/websphere-thin-client-with-various-jvms.html' title='WebSphere Thin Client with various JVM&apos;s'/><author><name>James Sears</name><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://3.bp.blogspot.com/_IaRd0uF5-I4/SkNPyk_HcHI/AAAAAAAAAOk/IPQJTExfaC8/s72-c/6+Screenshot-Untitled+Window.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6662621277353988265.post-6614717613042206268</id><published>2009-06-23T10:26:00.000-07:00</published><updated>2009-09-24T03:58:47.154-07:00</updated><title type='text'>WebSphere EJB Thin Client JAAS example on Ubuntu 9.04</title><content type='html'>&lt;span&gt;This posting shows you how to invoke an EJB using JAAS from a thin client (a junit test case) via SSL. This is all on Ubuntu 9.04.&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt; The code was first developed in RAD 6.0.1 (20050725_1800) and then imported into RAD 7.5.3&lt;/span&gt;. The example session EJB runs unchanged, bar IDE compiler compliance level, in &lt;span&gt;WAS 6.0.2.35&lt;/span&gt; and &lt;span&gt;WAS 7.0.0.0&lt;/span&gt;&lt;span&gt;. ND.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;The example keeps coding to the minimum but still demonstrates &lt;/span&gt;&lt;span&gt;declarative and programmatic&lt;/span&gt;&lt;span&gt; custom security.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;The important precondition to getting this to work is making sure that security is enabled in WAS - I enabled &lt;a href="http://rationalwebsphere.blogspot.com/2009/06/how-to-configure-websphere-application.html"&gt;custom security&lt;/a&gt; for this. Apart from what is written below, everything is default generated using the RAD wizards.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Project Creation&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;The example is broken down into four projects (wizard driven in their creation):&lt;br /&gt;&lt;ol&gt;&lt;li&gt;EJB1 - holds the stateless session bean as well as the important &lt;span style="font-weight: bold;"&gt;ejb-jar.xml&lt;/span&gt; deployment descriptor and its equally important &lt;span style="font-weight: bold;"&gt;ibm-ejb-jar-bnd.xmi&lt;/span&gt; companion.&lt;/li&gt;&lt;li&gt;EJB1Client - holds the home and remote interfaces for the EJB1 project.&lt;/li&gt;&lt;li&gt;EJB1EAR - used to export the .ear file, but also holds the important &lt;span style="font-weight: bold;"&gt;application.xml&lt;/span&gt; and the &lt;span style="font-weight: bold;"&gt;ibm-application-bnd.xmi&lt;/span&gt; files.&lt;/li&gt;&lt;li&gt;EJB1Test - holds the junit test case; eclipse runtimes (with the correct classpath &amp;amp; JRE references); and WAS configuration / localisation details.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;The importance of all of the .xml deployment descriptors and their companion .xmi files can not be understated. As its these that define the declarative security constraints:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_IaRd0uF5-I4/SrjtlQBeFtI/AAAAAAAAAbw/G2tdQMhlLUI/s1600-h/a0.jpeg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 231px;" src="http://2.bp.blogspot.com/_IaRd0uF5-I4/SrjtlQBeFtI/AAAAAAAAAbw/G2tdQMhlLUI/s320/a0.jpeg" alt="" id="BLOGGER_PHOTO_ID_5384314578733504210" border="0" /&gt;&lt;/a&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;EJB1&lt;/span&gt;&lt;br /&gt;Apart from the security constraints implied on it by the deployment descriptors, the SessionBean1Bean demonstrates some useful &lt;span&gt;programmatic&lt;/span&gt; security API's in a very simple business logic method:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_IaRd0uF5-I4/Srjtx0FrsVI/AAAAAAAAAb4/TdX0jYUghI4/s1600-h/a1.jpeg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 314px;" src="http://1.bp.blogspot.com/_IaRd0uF5-I4/Srjtx0FrsVI/AAAAAAAAAb4/TdX0jYUghI4/s320/a1.jpeg" alt="" id="BLOGGER_PHOTO_ID_5384314794573279570" border="0" /&gt;&lt;/a&gt;&lt;code style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;   System.out.println("subject=" + WSSubject.getCallerSubject());&lt;br /&gt;   System.out.println("user=" + getSessionContext().getCallerPrincipal().getName());&lt;br /&gt;   System.out.println("RoleA=" + getSessionContext().isCallerInRole("RoleA"));&lt;br /&gt;   System.out.println("RoleB=" + getSessionContext().isCallerInRole("RoleB"));&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;The declarative security is defined in the deployment descriptors:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_IaRd0uF5-I4/SrjuC6cqq7I/AAAAAAAAAcA/Y888CN-PLQk/s1600-h/a2.jpeg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 278px;" src="http://4.bp.blogspot.com/_IaRd0uF5-I4/SrjuC6cqq7I/AAAAAAAAAcA/Y888CN-PLQk/s320/a2.jpeg" alt="" id="BLOGGER_PHOTO_ID_5384315088338070450" border="0" /&gt;&lt;/a&gt;&lt;span style="font-weight: bold;"&gt;ejb-jar.xml&lt;/span&gt;&lt;br /&gt;&lt;code style="color: rgb(0, 0, 0);"&gt;&amp;lt;?xml version="1.0" encoding="UTF-8"?&amp;gt;&lt;br /&gt;&amp;lt;ejb-jar id="ejb-jar_ID" version="2.1"&lt;br /&gt; xmlns="http://java.sun.com/xml/ns/j2ee"&lt;br /&gt; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"&lt;br /&gt; xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/ejb-jar_2_1.xsd"&amp;gt;&lt;br /&gt; &amp;lt;display-name&amp;gt;EJB1&amp;lt;/display-name&amp;gt;&lt;br /&gt; &amp;lt;enterprise-beans&amp;gt;&lt;br /&gt;  &amp;lt;session id="SessionBean1"&amp;gt;&lt;br /&gt;   &amp;lt;ejb-name&amp;gt;SessionBean1&amp;lt;/ejb-name&amp;gt;&lt;br /&gt;   &amp;lt;home&amp;gt;jsears.SessionBean1Home&amp;lt;/home&amp;gt;&lt;br /&gt;   &amp;lt;remote&amp;gt;jsears.SessionBean1&amp;lt;/remote&amp;gt;&lt;br /&gt;   &amp;lt;ejb-class&amp;gt;jsears.SessionBean1Bean&amp;lt;/ejb-class&amp;gt;&lt;br /&gt;   &amp;lt;session-type&amp;gt;Stateless&amp;lt;/session-type&amp;gt;&lt;br /&gt;   &amp;lt;transaction-type&amp;gt;Container&amp;lt;/transaction-type&amp;gt;&lt;br /&gt;   &amp;lt;security-role-ref&amp;gt;&lt;br /&gt;    &amp;lt;description&amp;gt;&amp;lt;/description&amp;gt;&lt;br /&gt;    &amp;lt;role-name&amp;gt;RoleA&amp;lt;/role-name&amp;gt;&lt;br /&gt;    &amp;lt;role-link&amp;gt;RoleA&amp;lt;/role-link&amp;gt;&lt;br /&gt;   &amp;lt;/security-role-ref&amp;gt;&lt;br /&gt;   &amp;lt;security-role-ref&amp;gt;&lt;br /&gt;    &amp;lt;description&amp;gt;&amp;lt;/description&amp;gt;&lt;br /&gt;    &amp;lt;role-name&amp;gt;RoleB&amp;lt;/role-name&amp;gt;&lt;br /&gt;    &amp;lt;role-link&amp;gt;RoleB&amp;lt;/role-link&amp;gt;&lt;br /&gt;   &amp;lt;/security-role-ref&amp;gt;&lt;br /&gt;  &amp;lt;/session&amp;gt;&lt;br /&gt; &amp;lt;/enterprise-beans&amp;gt;&lt;br /&gt; &amp;lt;assembly-descriptor id="AssemblyDescriptor_1247566653738"&amp;gt;&lt;br /&gt;  &amp;lt;security-role&amp;gt;&lt;br /&gt;   &amp;lt;role-name&amp;gt;RoleA&amp;lt;/role-name&amp;gt;&lt;br /&gt;  &amp;lt;/security-role&amp;gt;&lt;br /&gt;  &amp;lt;security-role&amp;gt;&lt;br /&gt;   &amp;lt;role-name&amp;gt;RoleB&amp;lt;/role-name&amp;gt;&lt;br /&gt;  &amp;lt;/security-role&amp;gt;&lt;br /&gt;  &amp;lt;method-permission&amp;gt;&lt;br /&gt;   &amp;lt;role-name&amp;gt;RoleA&amp;lt;/role-name&amp;gt;&lt;br /&gt;   &amp;lt;role-name&amp;gt;RoleB&amp;lt;/role-name&amp;gt;&lt;br /&gt;   &amp;lt;method&amp;gt;&lt;br /&gt;    &amp;lt;ejb-name&amp;gt;SessionBean1&amp;lt;/ejb-name&amp;gt;&lt;br /&gt;    &amp;lt;method-name&amp;gt;*&amp;lt;/method-name&amp;gt;&lt;br /&gt;   &amp;lt;/method&amp;gt;&lt;br /&gt;  &amp;lt;/method-permission&amp;gt;&lt;br /&gt; &amp;lt;/assembly-descriptor&amp;gt;&lt;br /&gt; &amp;lt;ejb-client-jar&amp;gt;EJB1Client.jar&amp;lt;/ejb-client-jar&amp;gt;&lt;br /&gt;&amp;lt;/ejb-jar&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;ibm-ejb-jar-bnd.xmi&lt;/span&gt;&lt;code style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;&amp;lt;?xml version="1.0" encoding="UTF-8"?&amp;gt;&lt;br /&gt;&amp;lt;ejbbnd:EJBJarBinding xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ejb="ejb.xmi" xmlns:ejbbnd="ejbbnd.xmi" xmi:id="EJBJarBinding_1249651772497"&amp;gt;&lt;br /&gt;&amp;lt;ejbJar href="META-INF/ejb-jar.xml#ejb-jar_ID"/&amp;gt;&lt;br /&gt;&amp;lt;ejbBindings xmi:id="EnterpriseBeanBinding_1249651772497" jndiName="ejb/jsears/SessionBean1Home"&amp;gt;&lt;br /&gt;&amp;lt;enterpriseBean xmi:type="ejb:Session" href="META-INF/ejb-jar.xml#SessionBean1"/&amp;gt;&lt;br /&gt;&amp;lt;/ejbBindings&amp;gt;&lt;br /&gt;&amp;lt;/ejbbnd:EJBJarBinding&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;EJB1Client&lt;/span&gt;&lt;br /&gt;Not much is worth mentioning about the Home and Remote interfaces - they are bog standard, and there's no deployment descriptors to worry about:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_IaRd0uF5-I4/Sro1zRihprI/AAAAAAAAAc4/uKVaEnKTf4I/s1600-h/a1.jpeg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 210px;" src="http://3.bp.blogspot.com/_IaRd0uF5-I4/Sro1zRihprI/AAAAAAAAAc4/uKVaEnKTf4I/s320/a1.jpeg" alt="" id="BLOGGER_PHOTO_ID_5384675459472664242" border="0" /&gt;&lt;/a&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;EJB1EAR&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;The only thing the EJB1EAR project contains are a couple of, important, deployment descriptors:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_IaRd0uF5-I4/SrjuMo1s_DI/AAAAAAAAAcI/m3UqcWmdX48/s1600-h/a3.jpeg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 278px;" src="http://1.bp.blogspot.com/_IaRd0uF5-I4/SrjuMo1s_DI/AAAAAAAAAcI/m3UqcWmdX48/s320/a3.jpeg" alt="" id="BLOGGER_PHOTO_ID_5384315255409933362" border="0" /&gt;&lt;/a&gt;&lt;span style="font-weight: bold;"&gt;application.xml&lt;/span&gt;&lt;code style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;&amp;lt;?xml version="1.0" encoding="UTF-8"?&amp;gt;&lt;br /&gt;&amp;lt;application id="Application_ID" version="1.4"&lt;br /&gt; xmlns="http://java.sun.com/xml/ns/j2ee"&lt;br /&gt; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"&lt;br /&gt; xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/application_1_4.xsd"&amp;gt;&lt;br /&gt; &amp;lt;display-name&amp;gt;EJB1EAR&amp;lt;/display-name&amp;gt;&lt;br /&gt; &amp;lt;module id="EjbModule_1247566458176"&amp;gt;&lt;br /&gt;  &amp;lt;ejb&amp;gt;EJB1.jar&amp;lt;/ejb&amp;gt;&lt;br /&gt; &amp;lt;/module&amp;gt;&lt;br /&gt; &amp;lt;security-role id="SecurityRole_1247569173615"&amp;gt;&lt;br /&gt;  &amp;lt;role-name&amp;gt;RoleA&amp;lt;/role-name&amp;gt;&lt;br /&gt; &amp;lt;/security-role&amp;gt;&lt;br /&gt; &amp;lt;security-role id="SecurityRole_1247569173624"&amp;gt;&lt;br /&gt;  &amp;lt;role-name&amp;gt;RoleB&amp;lt;/role-name&amp;gt;&lt;br /&gt; &amp;lt;/security-role&amp;gt;&lt;br /&gt;&amp;lt;/application&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;ibm-application-bnd.xmi&lt;/span&gt;&lt;code style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;&amp;lt;?xml version="1.0" encoding="UTF-8"?&amp;gt;&lt;br /&gt;&amp;lt;applicationbnd:ApplicationBinding xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:applicationbnd="applicationbnd.xmi" xmi:id="ApplicationBinding_1247569173614"&amp;gt;&lt;br /&gt;&amp;lt;authorizationTable xmi:id="AuthorizationTable_1247569173615"&amp;gt;&lt;br /&gt;&amp;lt;authorizations xmi:id="RoleAssignment_1249995536059"&amp;gt;&lt;br /&gt;&amp;lt;users xmi:id="User_1249995536059" name="corey"/&amp;gt;&lt;br /&gt;&amp;lt;role href="META-INF/application.xml#SecurityRole_1247569173615"/&amp;gt;&lt;br /&gt;&amp;lt;/authorizations&amp;gt;&lt;br /&gt;&amp;lt;authorizations xmi:id="RoleAssignment_1249995536136"&amp;gt;&lt;br /&gt;&amp;lt;users xmi:id="User_1249995536136" name="bob"/&amp;gt;&lt;br /&gt;&amp;lt;role href="META-INF/application.xml#SecurityRole_1247569173624"/&amp;gt;&lt;br /&gt;&amp;lt;/authorizations&amp;gt;&lt;br /&gt;&amp;lt;/authorizationTable&amp;gt;&lt;br /&gt;&amp;lt;application href="META-INF/application.xml#Application_ID"/&amp;gt;&lt;br /&gt;&amp;lt;/applicationbnd:ApplicationBinding&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;EJB1Test&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;The EJB1Test project is the most complicated of all the projects. This isn't because of the Java code but instead because the project needs to support being run against WAS 6.0.2.35 and WAS 7.0.0.0. What this means is different support files:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;classpaths for each environment.&lt;/li&gt;&lt;li&gt;SSL properties for each WAS profile.&lt;/li&gt;&lt;li&gt;eclipse runtime profiles - was.6.0.SessionBean1Test.profile; was.7.0.SessionBean1Test.profile. A lot of the complexity is hidden in the eclipse runtime profiles (that are detailed below).&lt;/li&gt;&lt;li&gt;client JRE's - WAS 6 required the IBM JRE shipped with WAS; WAS 7 was accessible through SUN's jdk1.6.0_12.&lt;/li&gt;&lt;/ul&gt;Support files were sourced from the following folders:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;*.jar files from .../lib; .../runtimes/&lt;/li&gt;&lt;li&gt;*.jks from .../profiles/AppSrv01/etc/&lt;/li&gt;&lt;li&gt;*.conf; *.props from .../profiles/AppSrv01/properties/&lt;/li&gt;&lt;/ul&gt;The outline of the EJB1Test project might explain things a little better:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_IaRd0uF5-I4/SrjvZHyX8rI/AAAAAAAAAcg/K2WHXPnIf_Q/s1600-h/a6.jpeg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 264px; height: 320px;" src="http://2.bp.blogspot.com/_IaRd0uF5-I4/SrjvZHyX8rI/AAAAAAAAAcg/K2WHXPnIf_Q/s320/a6.jpeg" alt="" id="BLOGGER_PHOTO_ID_5384316569387528882" border="0" /&gt;&lt;/a&gt;The junit class looked like this:&lt;br /&gt;&lt;br /&gt;&lt;code style="color: rgb(0, 0, 0);"&gt;package jsears;&lt;br /&gt;&lt;br /&gt;import java.math.BigDecimal;&lt;br /&gt;import java.util.Hashtable;&lt;br /&gt;&lt;br /&gt;import javax.naming.Context;&lt;br /&gt;import javax.naming.InitialContext;&lt;br /&gt;import javax.rmi.PortableRemoteObject;&lt;br /&gt;import javax.security.auth.Subject;&lt;br /&gt;import javax.security.auth.login.LoginContext;&lt;br /&gt;&lt;br /&gt;import com.ibm.websphere.security.auth.WSSubject;&lt;br /&gt;import com.ibm.websphere.security.auth.callback.WSCallbackHandlerImpl;&lt;br /&gt;&lt;br /&gt;import jsears.SessionBean1;&lt;br /&gt;import jsears.SessionBean1Home;&lt;br /&gt;import junit.framework.TestCase;&lt;br /&gt;&lt;br /&gt;public class SessionBean1Test extends TestCase {&lt;br /&gt; public void testSessionBean1() {&lt;br /&gt;  try {   &lt;br /&gt;   Hashtable env = new Hashtable();&lt;br /&gt;   env.put(Context.INITIAL_CONTEXT_FACTORY, System.getProperty("java.naming.factory.initial"));&lt;br /&gt;   env.put(Context.PROVIDER_URL, System.getProperty("java.naming.provider.url"));&lt;br /&gt;   final Context initialContext = new InitialContext(env);&lt;br /&gt;   initialContext.lookup("");&lt;br /&gt;&lt;br /&gt;   LoginContext lc = new LoginContext("WSLogin", new WSCallbackHandlerImpl("bob", "bob1"));&lt;br /&gt;   lc.login();&lt;br /&gt;&lt;br /&gt;   final Subject subject = lc.getSubject();&lt;br /&gt;   System.out.println("subject=" + subject.toString());&lt;br /&gt;&lt;br /&gt;   WSSubject.doAs(lc.getSubject(),&lt;br /&gt;     new java.security.PrivilegedAction() {&lt;br /&gt;    public Object run() {&lt;br /&gt;&lt;br /&gt;     try {&lt;br /&gt;      Object objref = initialContext&lt;br /&gt;      .lookup("ejb/jsears/SessionBean1Home");&lt;br /&gt;&lt;br /&gt;      SessionBean1Home home = (SessionBean1Home) PortableRemoteObject&lt;br /&gt;      .narrow(objref, SessionBean1Home.class);&lt;br /&gt;&lt;br /&gt;      SessionBean1 currencyConverter = home.create();&lt;br /&gt;&lt;br /&gt;      BigDecimal param = new BigDecimal("100.00");&lt;br /&gt;      BigDecimal amount = currencyConverter.dollarToYen(param);&lt;br /&gt;      System.out.println(amount);&lt;br /&gt;&lt;br /&gt;      amount = currencyConverter.yenToEuro(param);&lt;br /&gt;      System.out.println(amount);&lt;br /&gt;&lt;br /&gt;     } catch (Exception e) {&lt;br /&gt;      e.printStackTrace();&lt;br /&gt;      fail(e.getClass() + ":" + e.getMessage());&lt;br /&gt;     }&lt;br /&gt;&lt;br /&gt;     return null;&lt;br /&gt;    }&lt;br /&gt;   });&lt;br /&gt;&lt;br /&gt;  } catch (Exception e) {&lt;br /&gt;   e.printStackTrace();&lt;br /&gt;   fail(e.getClass() + ":" + e.getMessage());&lt;br /&gt;  }&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;The WAS 6.0.2.35 eclipse runtime profile looks like this:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;NOTE: the BOOTSTRAP_ADDRESS   port - specified as part of the eclipse runtime profile might differ for your WAS profile.&lt;/li&gt;&lt;/ul&gt;was.6.0.SessionBean1Test.launch&lt;br /&gt;&lt;code style="color: rgb(0, 0, 0);"&gt;-Djava.naming.provider.url=iiop://127.0.0.1:2810&lt;br /&gt;-Djava.naming.factory.initial=com.ibm.websphere.naming.WsnInitialContextFactory&lt;br /&gt;-Djava.security.auth.login.config=file:conf.was.6/wsjaas_client.conf&lt;br /&gt;-Dcom.ibm.CORBA.ORBInit=com.ibm.ws.sib.client.ORB&lt;br /&gt;-Dcom.ibm.CORBA.ConfigURL=file:conf.was.6/sas.client.props&lt;br /&gt;-Djavax.net.ssl.trustStore=conf.was.6/etc/DummyClientKeyFile.jks&lt;br /&gt;-Djavax.net.ssl.keyStore=conf.was.6/etc/DummyClientTrustFile.jks&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_IaRd0uF5-I4/SrjvpeK2OHI/AAAAAAAAAcw/KHA1t5sYpfE/s1600-h/a8.jpeg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 242px;" src="http://2.bp.blogspot.com/_IaRd0uF5-I4/SrjvpeK2OHI/AAAAAAAAAcw/KHA1t5sYpfE/s320/a8.jpeg" alt="" id="BLOGGER_PHOTO_ID_5384316850273663090" border="0" /&gt;&lt;/a&gt;The WAS 7.0.0.0 eclipse runtime profile looks like this:&lt;br /&gt;&lt;br /&gt;was.7.0.SessionBean1Test.launch&lt;br /&gt;&lt;code style="color: rgb(0, 0, 0);"&gt;-Djava.naming.provider.url=iiop://127.0.0.1:2816&lt;br /&gt;-Djava.naming.factory.initial=com.ibm.websphere.naming.WsnInitialContextFactory&lt;br /&gt;-Djava.security.auth.login.config=file:conf.was.7/wsjaas_client.conf&lt;br /&gt;-Dcom.ibm.SSL.ConfigURL=file:conf.was.7/sun.ssl.client.props&lt;br /&gt;-Dcom.ibm.CORBA.ORBInit=com.ibm.ws.sib.client.ORB&lt;br /&gt;-Dcom.ibm.CORBA.ConfigURL=file:conf.was.7/sas.client.props&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;a style="font-weight: bold;" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_IaRd0uF5-I4/Sro82bawDDI/AAAAAAAAAdI/NKvDMuhjS4I/s1600-h/a1.jpeg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 231px;" src="http://2.bp.blogspot.com/_IaRd0uF5-I4/Sro82bawDDI/AAAAAAAAAdI/NKvDMuhjS4I/s320/a1.jpeg" alt="" id="BLOGGER_PHOTO_ID_5384683210245409842" border="0" /&gt;&lt;/a&gt;sun.ssl.client.props&lt;code style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;...&lt;br /&gt;user.root=/home/jsears/local/tmp3/EJB1Test/conf.was.7&lt;br /&gt;...&lt;br /&gt;# KeyStore information&lt;br /&gt;com.ibm.ssl.keyStoreName=ClientDefaultKeyStore&lt;br /&gt;com.ibm.ssl.keyStore=${user.root}/etc/DummyClientKeyFile.jks&lt;br /&gt;com.ibm.ssl.keyStorePassword={xor}CDo9Hgw=&lt;br /&gt;com.ibm.ssl.keyStoreType=JKS&lt;br /&gt;com.ibm.ssl.keyStoreProvider=SUN&lt;br /&gt;com.ibm.ssl.keyStoreFileBased=true&lt;br /&gt;&lt;br /&gt;# TrustStore information&lt;br /&gt;com.ibm.ssl.trustStoreName=ClientDefaultTrustStore&lt;br /&gt;com.ibm.ssl.trustStore=${user.root}/etc/DummyClientTrustFile.jks&lt;br /&gt;com.ibm.ssl.trustStorePassword={xor}CDo9Hgw=&lt;br /&gt;com.ibm.ssl.trustStoreType=JKS&lt;br /&gt;com.ibm.ssl.trustStoreProvider=SUN&lt;br /&gt;com.ibm.ssl.trustStoreFileBased=true&lt;br /&gt;com.ibm.ssl.trustStoreReadOnly=false&lt;br /&gt;...&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Running it from RAD 6.0.1 + WAS 6.0.2.35&lt;/span&gt;&lt;br /&gt;The examples in the previous section were all generated in RAD 6.0.1 and featured WAS 6.0.2.35.&lt;br /&gt;&lt;br /&gt;This is the output from running the &lt;span style="font-weight: bold;"&gt;testSessionBean1&lt;/span&gt; method:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_IaRd0uF5-I4/SrjvF2UPyKI/AAAAAAAAAcQ/Chu1iMHkGBk/s1600-h/a4.jpeg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 160px;" src="http://1.bp.blogspot.com/_IaRd0uF5-I4/SrjvF2UPyKI/AAAAAAAAAcQ/Chu1iMHkGBk/s320/a4.jpeg" alt="" id="BLOGGER_PHOTO_ID_5384316238280247458" border="0" /&gt;&lt;/a&gt;What's far more interesting is what you see from the declarative security methods called in the &lt;span style="font-weight: bold;"&gt;dollarToYen&lt;/span&gt; method inside the &lt;span style="font-weight: bold;"&gt;SessionBean1Bean&lt;/span&gt;. Basically the code demonstrates if the user, specified in the &lt;span style="font-weight: bold;"&gt;testSessionBean1&lt;/span&gt; method  is in a particular role.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;This is what you see when you use bob/bob1 as the login credentials:&lt;/li&gt;&lt;/ul&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_IaRd0uF5-I4/SrjvPHtRhxI/AAAAAAAAAcY/QH6vWPAsUFw/s1600-h/a5.jpeg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 98px;" src="http://4.bp.blogspot.com/_IaRd0uF5-I4/SrjvPHtRhxI/AAAAAAAAAcY/QH6vWPAsUFw/s320/a5.jpeg" alt="" id="BLOGGER_PHOTO_ID_5384316397567444754" border="0" /&gt;&lt;/a&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;And this is what you see when you use corey/corey1 as the login credentials:&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_IaRd0uF5-I4/Sro5ETfmCjI/AAAAAAAAAdA/P9gEZXylQmo/s1600-h/a1.jpeg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 105px;" src="http://4.bp.blogspot.com/_IaRd0uF5-I4/Sro5ETfmCjI/AAAAAAAAAdA/P9gEZXylQmo/s320/a1.jpeg" alt="" id="BLOGGER_PHOTO_ID_5384679050589899314" border="0" /&gt;&lt;/a&gt;Effectively, these screens prove that declarative and programmatic security are working.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Running it from &lt;/span&gt;&lt;span&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;RAD 7.5.3 + WAS 7.0.0.0 ND&lt;/span&gt;&lt;br /&gt;In order to use the projects inside RAD 7.5.3 and against WAS 7.0.0.0 ND I first had to set up with custom security - via the Security &gt; Global security &gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_IaRd0uF5-I4/SrtHqK9iMDI/AAAAAAAAAdo/RlcPjgsaWdo/s1600-h/a4.jpeg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 210px;" src="http://4.bp.blogspot.com/_IaRd0uF5-I4/SrtHqK9iMDI/AAAAAAAAAdo/RlcPjgsaWdo/s320/a4.jpeg" alt="" id="BLOGGER_PHOTO_ID_5384976569274085426" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_IaRd0uF5-I4/SrtIH89bdeI/AAAAAAAAAd4/OY1U_NaBm38/s1600-h/a6.jpeg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 203px;" src="http://4.bp.blogspot.com/_IaRd0uF5-I4/SrtIH89bdeI/AAAAAAAAAd4/OY1U_NaBm38/s320/a6.jpeg" alt="" id="BLOGGER_PHOTO_ID_5384977080911623650" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_IaRd0uF5-I4/SrtHqZvDf9I/AAAAAAAAAdw/mv2p9Tq1FbU/s1600-h/a5.jpeg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 199px;" src="http://2.bp.blogspot.com/_IaRd0uF5-I4/SrtHqZvDf9I/AAAAAAAAAdw/mv2p9Tq1FbU/s320/a5.jpeg" alt="" id="BLOGGER_PHOTO_ID_5384976573239885778" border="0" /&gt;&lt;/a&gt;&lt;span&gt;Next I had to import the four projects into the IDE, &lt;/span&gt;RAD required that they were "migrated" - I did not change any files manually:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_IaRd0uF5-I4/SrtHpCDwyJI/AAAAAAAAAdQ/yqkK9Y2BwdI/s1600-h/a1.jpeg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 306px; height: 320px;" src="http://2.bp.blogspot.com/_IaRd0uF5-I4/SrtHpCDwyJI/AAAAAAAAAdQ/yqkK9Y2BwdI/s320/a1.jpeg" alt="" id="BLOGGER_PHOTO_ID_5384976549704419474" border="0" /&gt;&lt;/a&gt;&lt;span style="text-decoration: underline;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_IaRd0uF5-I4/SrtHpuPYv2I/AAAAAAAAAdY/xk7t-V58q_w/s1600-h/a2.jpeg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 314px; height: 320px;" src="http://4.bp.blogspot.com/_IaRd0uF5-I4/SrtHpuPYv2I/AAAAAAAAAdY/xk7t-V58q_w/s320/a2.jpeg" alt="" id="BLOGGER_PHOTO_ID_5384976561564335970" border="0" /&gt;&lt;/a&gt;&lt;span&gt;With WAS 7 I simply published the project to the server and called the junit test case - via the appropriate eclipse runtime debug configuration (the one with com.ibm.ws.ejb.thinclient_7.0.0.jar in it). &lt;/span&gt;The result of running the junit test case was the same as before (except the was.7.0.SessionBean1Test.launch generates no stderr):&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_IaRd0uF5-I4/SrtIIkOcFhI/AAAAAAAAAeI/rQUzpd54A9w/s1600-h/a8.jpeg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 115px;" src="http://4.bp.blogspot.com/_IaRd0uF5-I4/SrtIIkOcFhI/AAAAAAAAAeI/rQUzpd54A9w/s320/a8.jpeg" alt="" id="BLOGGER_PHOTO_ID_5384977091451950610" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_IaRd0uF5-I4/SrtIIPdXcyI/AAAAAAAAAeA/lcxtEJOHsgI/s1600-h/a7.jpeg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 115px;" src="http://1.bp.blogspot.com/_IaRd0uF5-I4/SrtIIPdXcyI/AAAAAAAAAeA/lcxtEJOHsgI/s320/a7.jpeg" alt="" id="BLOGGER_PHOTO_ID_5384977085877416738" border="0" /&gt;&lt;/a&gt;Finally, changing the LoginContext to use an unrecognised password results in WSLoginFailedException:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;LoginContext lc = new LoginContext("WSLogin", new WSCallbackHandlerImpl("corey", "corey2"))&lt;/li&gt;&lt;/ul&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_IaRd0uF5-I4/SrtO7dCK51I/AAAAAAAAAeQ/pOLGaDaHOss/s1600-h/a9.jpeg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 127px;" src="http://1.bp.blogspot.com/_IaRd0uF5-I4/SrtO7dCK51I/AAAAAAAAAeQ/pOLGaDaHOss/s320/a9.jpeg" alt="" id="BLOGGER_PHOTO_ID_5384984562764539730" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6662621277353988265-6614717613042206268?l=rationalwebsphere.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rationalwebsphere.blogspot.com/feeds/6614717613042206268/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rationalwebsphere.blogspot.com/2009/06/websphere-ejb-thin-client-jaas-example.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6662621277353988265/posts/default/6614717613042206268'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6662621277353988265/posts/default/6614717613042206268'/><link rel='alternate' type='text/html' href='http://rationalwebsphere.blogspot.com/2009/06/websphere-ejb-thin-client-jaas-example.html' title='WebSphere EJB Thin Client JAAS example on Ubuntu 9.04'/><author><name>James Sears</name><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/_IaRd0uF5-I4/SrjtlQBeFtI/AAAAAAAAAbw/G2tdQMhlLUI/s72-c/a0.jpeg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6662621277353988265.post-7148450757762734390</id><published>2009-06-23T10:25:00.000-07:00</published><updated>2009-06-26T06:57:55.260-07:00</updated><title type='text'>Configuring embedded JMS in Websphere Application Server</title><content type='html'>In WebSphere ND 7.0 (though this applies in a near identical way for previous v6.0+ versions) I did the following:&lt;br /&gt;&lt;br /&gt;&lt;ul style="font-weight: bold;"&gt;&lt;li&gt;Create a new Service Integration Bus, called "B1":&lt;/li&gt;&lt;/ul&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_IaRd0uF5-I4/SkTEUEBxXSI/AAAAAAAAAPs/x-ZesNlGzo4/s1600-h/b1.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 245px;" src="http://4.bp.blogspot.com/_IaRd0uF5-I4/SkTEUEBxXSI/AAAAAAAAAPs/x-ZesNlGzo4/s320/b1.png" alt="" id="BLOGGER_PHOTO_ID_5351618106180590882" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_IaRd0uF5-I4/SkTEVJOOIiI/AAAAAAAAAQM/LIkp-b5z9_8/s1600-h/b5.png"&gt;&lt;/a&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-style: italic;"&gt;Service Integration &gt; New &gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Assign "B1" to the Server, accepting all the defaults:&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_IaRd0uF5-I4/SkTEUZ_IeAI/AAAAAAAAAP0/THnBK8S98-M/s1600-h/b2.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 245px;" src="http://4.bp.blogspot.com/_IaRd0uF5-I4/SkTEUZ_IeAI/AAAAAAAAAP0/THnBK8S98-M/s320/b2.png" alt="" id="BLOGGER_PHOTO_ID_5351618112075102210" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_IaRd0uF5-I4/SkTEUxhplZI/AAAAAAAAAQE/NFz1N60C7rE/s1600-h/b4.png"&gt;&lt;/a&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-style: italic;"&gt;Service Integration &gt; Buses &gt; B1 &gt; Bus members&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;ul style="font-weight: bold;"&gt;&lt;li&gt;On "B1" create a destination, "Q1", accepting all defaults:&lt;/li&gt;&lt;/ul&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_IaRd0uF5-I4/SkTEUsKzo8I/AAAAAAAAAP8/TF5gv9DNKPE/s1600-h/b3.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 245px;" src="http://4.bp.blogspot.com/_IaRd0uF5-I4/SkTEUsKzo8I/AAAAAAAAAP8/TF5gv9DNKPE/s320/b3.png" alt="" id="BLOGGER_PHOTO_ID_5351618116955907010" border="0" /&gt;&lt;/a&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-style: italic;"&gt;Service Integration &gt; Buses &gt; B1 &gt; Destinations &gt; New &gt; Queue&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Give "Q1" a JMS provider, with the following (elsewhere use defaults):&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ol&gt;&lt;li&gt;  &lt;p class="western"&gt;Name = JMS_Q1&lt;/p&gt;&lt;/li&gt;&lt;li&gt;  &lt;p class="western"&gt;JNDI name = jms/JMS_Q1&lt;/p&gt;&lt;/li&gt;&lt;li&gt;  &lt;p class="western"&gt;Bus name = B1&lt;/p&gt;&lt;/li&gt;&lt;li&gt;  &lt;p class="western"&gt;Queue name = Q1&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p class="western"&gt;Del;ivery mode = Persistent&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_IaRd0uF5-I4/SkTEUxhplZI/AAAAAAAAAQE/NFz1N60C7rE/s1600-h/b4.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 245px;" src="http://3.bp.blogspot.com/_IaRd0uF5-I4/SkTEUxhplZI/AAAAAAAAAQE/NFz1N60C7rE/s320/b4.png" alt="" id="BLOGGER_PHOTO_ID_5351618118393894290" border="0" /&gt;&lt;/a&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-style: italic;"&gt;Resources &gt; JMS &gt; JMS Providers &gt; Default messaging provider @ Server level &gt; New&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;ul style="font-weight: bold;"&gt;&lt;li&gt;Create a JMS Connection Factory, with the following (elsewhere use defaults):&lt;/li&gt;&lt;/ul&gt;&lt;ol&gt;&lt;li&gt;Name = JMS_CF1&lt;/li&gt;&lt;li&gt;JNDI name = jms/JMS_CF1&lt;/li&gt;&lt;li&gt;Bus name = B1&lt;/li&gt;&lt;/ol&gt;        &lt;p class="western"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_IaRd0uF5-I4/SkTEVJOOIiI/AAAAAAAAAQM/LIkp-b5z9_8/s1600-h/b5.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 245px;" src="http://1.bp.blogspot.com/_IaRd0uF5-I4/SkTEVJOOIiI/AAAAAAAAAQM/LIkp-b5z9_8/s320/b5.png" alt="" id="BLOGGER_PHOTO_ID_5351618124754854434" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p style="text-align: center;" class="western"&gt;&lt;a name="title-bread-crumb11"&gt;&lt;/a&gt;&lt;a name="title-bread-crumb2"&gt;&lt;/a&gt; &lt;span style="font-style: italic;"&gt;Resources &gt; JMS &gt; Connection factories &gt; Default messaging provider @ Server level &gt; New&lt;/span&gt;&lt;/p&gt;&lt;ul style="font-weight: bold;"&gt;&lt;li&gt;Create a JMS Queue Connection Factory, with the following (elsewhere use defaults):&lt;/li&gt;&lt;/ul&gt;&lt;ol&gt;&lt;li&gt;  &lt;p class="western"&gt;Name = JMS_QCF1&lt;/p&gt;&lt;/li&gt;&lt;li&gt;  &lt;p class="western"&gt;JNDI name = jms/JMS_QCF1&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p class="western"&gt;Bus name = B1&lt;/p&gt; &lt;/li&gt;&lt;/ol&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_IaRd0uF5-I4/SkTEtXIUTlI/AAAAAAAAAQU/wFxCd8ORwnc/s1600-h/b6.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 245px;" src="http://4.bp.blogspot.com/_IaRd0uF5-I4/SkTEtXIUTlI/AAAAAAAAAQU/wFxCd8ORwnc/s320/b6.png" alt="" id="BLOGGER_PHOTO_ID_5351618540805049938" border="0" /&gt;&lt;/a&gt;&lt;span style="font-style: italic;"&gt;Resources &gt; JMS &gt; Queue connection factories &gt; Default messaging provider @ Server level &gt; Queues&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Restart WAS!&lt;/li&gt;&lt;li&gt;Send a message with the &lt;a href="http://127.0.0.1:9080/UTC/"&gt;Universal Test Client&lt;/a&gt;:&lt;/li&gt;&lt;/ul&gt;&lt;ol&gt;&lt;li&gt;Queue JNDI Name = jms/JMS_Q1&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Queue CF JNDI Name = jms/JMS_QCF1&lt;/li&gt;&lt;li&gt;Message = hello world&lt;/li&gt;&lt;/ol&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_IaRd0uF5-I4/SkTS_EOqccI/AAAAAAAAAQc/BvEIcrwwk84/s1600-h/b1.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 202px;" src="http://1.bp.blogspot.com/_IaRd0uF5-I4/SkTS_EOqccI/AAAAAAAAAQc/BvEIcrwwk84/s320/b1.png" alt="" id="BLOGGER_PHOTO_ID_5351634238131827138" border="0" /&gt;&lt;/a&gt;&lt;ul&gt;&lt;li&gt;Check message is in Q1; here I used WAS's own console (for alternaitves see my post &lt;a href="http://rationalwebsphere.blogspot.com/2009/06/useful-embedded-was-jms-utilities.html"&gt;Useful WebSphere JMS Utilities&lt;/a&gt;):&lt;/li&gt;&lt;/ul&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_IaRd0uF5-I4/SkTS_n_NQ5I/AAAAAAAAAQk/sa6NXhCElJY/s1600-h/b2.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 265px;" src="http://2.bp.blogspot.com/_IaRd0uF5-I4/SkTS_n_NQ5I/AAAAAAAAAQk/sa6NXhCElJY/s320/b2.png" alt="" id="BLOGGER_PHOTO_ID_5351634247730676626" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6662621277353988265-7148450757762734390?l=rationalwebsphere.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rationalwebsphere.blogspot.com/feeds/7148450757762734390/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rationalwebsphere.blogspot.com/2009/06/configuring-embedded-jms-in-websphere.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6662621277353988265/posts/default/7148450757762734390'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6662621277353988265/posts/default/7148450757762734390'/><link rel='alternate' type='text/html' href='http://rationalwebsphere.blogspot.com/2009/06/configuring-embedded-jms-in-websphere.html' title='Configuring embedded JMS in Websphere Application Server'/><author><name>James Sears</name><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://4.bp.blogspot.com/_IaRd0uF5-I4/SkTEUEBxXSI/AAAAAAAAAPs/x-ZesNlGzo4/s72-c/b1.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6662621277353988265.post-8430073420083202297</id><published>2009-06-23T06:40:00.000-07:00</published><updated>2009-09-15T02:55:11.744-07:00</updated><title type='text'>Useful WebSphere JMS JNDI Utilities</title><content type='html'>&lt;script type="text/javascript"&gt;&lt;br /&gt;var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");&lt;br /&gt;document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));&lt;br /&gt;&lt;/script&gt;The following tools allow you to invoke WAS's embedded JMS server.&lt;br /&gt;&lt;br /&gt;NOTE: These tools were tested against WAS 6. In particular, the instance they pointed at was the one that ships with RAD 6 - e.g. .../IBM/RAD-6.0/runtimes/base_v6&lt;br /&gt;&lt;br /&gt;The first couple use WAS's own JVM, but execute outside of any container, and require a &lt;a href="http://www.eclipse.org/swt/"&gt;SWT&lt;/a&gt; distro (I used swt-3.4-gtk-linux-x86):&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.alphaworks.ibm.com/tech/jmstool"&gt; IBM Client Application For JMS&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_IaRd0uF5-I4/SkDmHsuPyAI/AAAAAAAAANs/dTJADSKeGzg/s1600-h/Screenshot-Untitled+Window.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 92px;" src="http://4.bp.blogspot.com/_IaRd0uF5-I4/SkDmHsuPyAI/AAAAAAAAANs/dTJADSKeGzg/s320/Screenshot-Untitled+Window.png" alt="" id="BLOGGER_PHOTO_ID_5350529377254754306" border="0" /&gt;&lt;/a&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.alphaworks.ibm.com/tech/sibexplorer"&gt;Service Integration Bus Explorer&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_IaRd0uF5-I4/SkDmHqADKTI/AAAAAAAAANk/2w72EB-QicM/s1600-h/Screenshot-About+This+Program+.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 174px;" src="http://4.bp.blogspot.com/_IaRd0uF5-I4/SkDmHqADKTI/AAAAAAAAANk/2w72EB-QicM/s320/Screenshot-About+This+Program+.png" alt="" id="BLOGGER_PHOTO_ID_5350529376524118322" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;The &lt;a href="http://localhost:9080/UTC/initialize?port=2809&amp;amp;wasAdminPort=2809&amp;amp;wasAdminConn=RMI"&gt;Universal Test Client&lt;/a&gt; application (IBMUTC.ear) is a bit different as it runs inside the web container of WAS:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_IaRd0uF5-I4/SkDpUnwZoDI/AAAAAAAAAN0/xsnuvFbjcTs/s1600-h/Screenshot-Universal+Test+Client+-+Mozilla+Firefox.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 195px;" src="http://2.bp.blogspot.com/_IaRd0uF5-I4/SkDpUnwZoDI/AAAAAAAAAN0/xsnuvFbjcTs/s320/Screenshot-Universal+Test+Client+-+Mozilla+Firefox.png" alt="" id="BLOGGER_PHOTO_ID_5350532897794793522" border="0" /&gt;&lt;/a&gt;Finally, there is &lt;a href="http://www.hermesjms.com/confluence/display/HJMS/Home"&gt;HermesJMS&lt;/a&gt; - which, perhaps thankfully, can run on a "standard" JVM (e.g. a non IBM JVM) but is still able to connect to the embedded WAS JMS server! Unfortunately it does not run "out of the box" - some configuration is required:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;after you have installed HermesJMS (java -jar hermes-installer-1.13.jar) the last line in bin/hermes.sh needs to be force fed the correct ORB implementation - e.g. add&lt;span style="font-weight: bold;"&gt; -Dcom.ibm.CORBA.ORBInit=com.ibm.ws.sib.client.ORB&lt;/span&gt;&lt;/li&gt;&lt;li&gt;next you need some SIB client jar's (&lt;a href="http://www-01.ibm.com/support/docview.wss?uid=swg24012804"&gt;IBM Client for JMS on J2SE with IBM WebSphere Application Server&lt;/a&gt;) so that you can configure a ClasspathGroups entry in HermesJMS and point it at the correct connection factory (via the BOOTSTRAP_ADDRESS port)&lt;/li&gt;&lt;li&gt;NOTE: you will need to have a SIB defined in WAS with the requisite connection factories and destination(s) - e.g. jms/CF in the example below.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_IaRd0uF5-I4/SkD562OO2zI/AAAAAAAAAN8/QLavZzctkKk/s1600-h/Screenshot-Preferences.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 229px; height: 320px;" src="http://4.bp.blogspot.com/_IaRd0uF5-I4/SkD562OO2zI/AAAAAAAAAN8/QLavZzctkKk/s320/Screenshot-Preferences.png" alt="" id="BLOGGER_PHOTO_ID_5350551146699086642" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_IaRd0uF5-I4/SkD57GomxeI/AAAAAAAAAOE/F9UIMzcqGw4/s1600-h/Screenshot-Preferences-1.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 310px; height: 320px;" src="http://1.bp.blogspot.com/_IaRd0uF5-I4/SkD57GomxeI/AAAAAAAAAOE/F9UIMzcqGw4/s320/Screenshot-Preferences-1.png" alt="" id="BLOGGER_PHOTO_ID_5350551151104673250" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6662621277353988265-8430073420083202297?l=rationalwebsphere.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rationalwebsphere.blogspot.com/feeds/8430073420083202297/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rationalwebsphere.blogspot.com/2009/06/useful-embedded-was-jms-utilities.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6662621277353988265/posts/default/8430073420083202297'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6662621277353988265/posts/default/8430073420083202297'/><link rel='alternate' type='text/html' href='http://rationalwebsphere.blogspot.com/2009/06/useful-embedded-was-jms-utilities.html' title='Useful WebSphere JMS JNDI Utilities'/><author><name>James Sears</name><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://4.bp.blogspot.com/_IaRd0uF5-I4/SkDmHsuPyAI/AAAAAAAAANs/dTJADSKeGzg/s72-c/Screenshot-Untitled+Window.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6662621277353988265.post-55537071568287311</id><published>2009-06-23T03:25:00.000-07:00</published><updated>2009-10-02T03:44:48.198-07:00</updated><title type='text'>Useful Web Sites / RSS feeds</title><content type='html'>These are useful to me:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.ibm.com/developerworks/websphere/library/techarticles/0909_topten/0909_topten.html?S_TACT=105AGX54&amp;amp;S_CMP=C1001&amp;amp;ca=dnw-1037&amp;amp;ca=dth-w&amp;amp;open&amp;amp;cm_mmc=6046-_-n-_-vrm_newsletter-_-10731_132372&amp;amp;cmibm_em=dm:0:14723606"&gt;Happy birthday, developerWorks!&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://publib.boulder.ibm.com/infocenter/ieduasst/v1r1m0/index.jsp?topic=/com.ibm.iea.was_v6/was/WASv602_All.html"&gt;IBM Education Assistant&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://wpcertification.blogspot.com/"&gt;WebSphere Certification&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.websphereusergroup.org.uk/"&gt;WebSphere User Group (UK)&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.ibm.com/developerworks/websphere/techjournal/"&gt;IBM WebSphere Developer Technical Journal&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://webspherehelp.blogspot.com/"&gt;WebSphere Help, Tips &amp;amp; Tricks &lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://webspheremessaging.blogspot.com/"&gt;WebSphere and Messaging&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://publib.boulder.ibm.com/infocenter/wasinfo/v6r0/index.jsp"&gt;IBM WebSphere Info Center v6.0&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_IaRd0uF5-I4/SkNGejp6SXI/AAAAAAAAAOU/Itl8epWJ2TI/s1600-h/Screenshot-Mozilla+Firefox.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 269px;" src="http://2.bp.blogspot.com/_IaRd0uF5-I4/SkNGejp6SXI/AAAAAAAAAOU/Itl8epWJ2TI/s320/Screenshot-Mozilla+Firefox.png" alt="" id="BLOGGER_PHOTO_ID_5351198273027328370" border="0" /&gt;&lt;/a&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/index.jsp"&gt;IBM WebSphere Info Center v6.1&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://publib.boulder.ibm.com/infocenter/wasinfo/v7r0/index.jsp"&gt;IBM WebSphere Info Center v7.0&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.mqug.org.uk/"&gt;WebSphere Integration User Group (UK)&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_IaRd0uF5-I4/SkETgsRZ22I/AAAAAAAAAOM/SB294r-EpTY/s1600-h/RSS-logo1..jpg.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 91px; height: 91px;" src="http://3.bp.blogspot.com/_IaRd0uF5-I4/SkETgsRZ22I/AAAAAAAAAOM/SB294r-EpTY/s320/RSS-logo1..jpg.png" alt="" id="BLOGGER_PHOTO_ID_5350579284653759330" border="0" /&gt;&lt;/a&gt; &lt;ul&gt;&lt;li&gt;&lt;a href="http://www-304.ibm.com/jct03001c/services/learning/ites.wss/us/en?pageType=rss_feed&amp;amp;subChapter=374&amp;amp;subChapterInd=C&amp;amp;subChapterName=Rational+Software&amp;amp;chapter=374&amp;amp;chapterName=Rational+Software&amp;amp;courseIndicator=N"&gt;IBM : Rational Software - New courses&lt;/a&gt; - http://www-304.ibm.com/jct03001c/services/learning/ites.wss/us/en?pageType=rss_feed&amp;amp;subChapter=374&amp;amp;subChapterInd=C&amp;amp;subChapterName=Rational+Software&amp;amp;chapter=374&amp;amp;chapterName=Rational+Software&amp;amp;courseIndicator=N&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.coderanch.com/forums/rss/forumTopics/46/Websphere"&gt;JavaRanch: "Websphere"&lt;/a&gt; - http://www.coderanch.com/forums/rss/forumTopics/46/Websphere&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.redbooks.ibm.com/rss/rational.xml"&gt;IBM Redbooks | Rational&lt;/a&gt; - http://www.redbooks.ibm.com/rss/rational.xml&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.redbooks.ibm.com/rss/websphere.xml"&gt;IBM Redbooks | WebSphere&lt;/a&gt; - http://www.redbooks.ibm.com/rss/websphere.xml&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.ibm.com/developerworks/forums/rss/rssmessages.jspa?forumID=430"&gt;DeveloperWorks Tools (RAD, RSA, RDA, RSM, RWD)&lt;/a&gt; - http://www.ibm.com/developerworks/forums/rss/rssmessages.jspa?forumID=430&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.ibm.com/developerworks/forums/rss/rssmessages.jspa?forumID=266"&gt;DeveloperWorks WAS&lt;/a&gt; - http://www.ibm.com/developerworks/forums/rss/rssmessages.jspa?forumID=266&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://webspherecommunity.blogspot.com/"&gt;WebSphere Community Blog&lt;/a&gt; - http://webspherecommunity.blogspot.com/feeds/posts/default&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6662621277353988265-55537071568287311?l=rationalwebsphere.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rationalwebsphere.blogspot.com/feeds/55537071568287311/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rationalwebsphere.blogspot.com/2009/06/useful-rss-feeds.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6662621277353988265/posts/default/55537071568287311'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6662621277353988265/posts/default/55537071568287311'/><link rel='alternate' type='text/html' href='http://rationalwebsphere.blogspot.com/2009/06/useful-rss-feeds.html' title='Useful Web Sites / RSS feeds'/><author><name>James Sears</name><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/_IaRd0uF5-I4/SkNGejp6SXI/AAAAAAAAAOU/Itl8epWJ2TI/s72-c/Screenshot-Mozilla+Firefox.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6662621277353988265.post-5802937730704495229</id><published>2009-06-23T01:36:00.000-07:00</published><updated>2009-09-22T00:55:53.264-07:00</updated><title type='text'>Installing RAD 6.0.1.2 &amp; WAS 6.0.2.33 onto Ubuntu 9.04 Desktop</title><content type='html'>This post explains how I installed RAD 6.0.1.2 and WebSphere Application Server 6.0.2.33 onto Ubuntu 9.04.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;Firstly, its worth remembering the it is possible for RAD 6.0 &amp;amp; RAD 75 to co-exist on the same PC. The difference is that RAD 6 is run from the command line as neither its installer nor updater integrates into Ubuntu's menu's:&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_IaRd0uF5-I4/SkCfB7FAnPI/AAAAAAAAANM/D7CJGaGfjlo/s1600-h/Screenshot-jsears%40jsears-desktop:+%7E-IBM-RAD-6.0.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 186px;" src="http://2.bp.blogspot.com/_IaRd0uF5-I4/SkCfB7FAnPI/AAAAAAAAANM/D7CJGaGfjlo/s320/Screenshot-jsears%40jsears-desktop:+%7E-IBM-RAD-6.0.png" alt="" id="BLOGGER_PHOTO_ID_5350451212703538418" border="0" /&gt;&lt;/a&gt;I installed RAD 6 after I installed RAD 75 - so its likely that you might have to do the following if you were to just install RAD 6:&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;ul&gt;&lt;li style="font-weight: bold;"&gt;sudo unlink /bin/sh&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;sudo ln -s /bin/bash /bin/sh&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;span style="font-size:100%;"&gt;I downloaded the core files from http://ibm.com/partnerworld/ - using credentials; the patches are publicly accessible from ibm.com.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;IBM has a useful support page the lists the mandatory and optional files - &lt;a href="http://www-01.ibm.com/support/docview.wss?uid=swg21227676"&gt;&lt;span style="font-size:100%;"&gt;Files that must be downloaded to install Rational Application Developer from electronic image&lt;/span&gt;&lt;/a&gt; - but what is not so obvious is the order the patches need to be installed.&lt;br /&gt;&lt;br /&gt;I've listed all the files I used for my install, their size, and also the order I installed them in:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;-rwxrwxr-x  1 jsears jsears   55531442 2009-04-02 07:59 Linux.0-C81CXML.bin - Extractor&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;-rw-rw-r--  1 jsears jsears 1500947095 2009-04-02 08:04 Linux.2-C81CYML.bin - Core&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;-rw-rw-r--  1 jsears jsears  388285200 2009-04-02 08:10 Linux.3-C81CZML.bin - WAS6&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;-rw-rw-r--  1 jsears jsears  313340148 2009-04-08 13:16 Linux.7-C81D2ML.bin - Agent controller&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;I also downloaded the matching Windows files as well ;-)&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;-rw-rw-r--  1 jsears jsears   28991847 2009-04-02 08:04 Win.0-C81CIML.exe - Extractor&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;-rw-rw-r--  1 jsears jsears 1465089897 2009-04-02 08:08 Win.2-C81CJML.bin - Core&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;-rw-rw-r--  1 jsears jsears  384736660 2009-04-02 08:11 Win.3-C81CKML.bin - WAS6&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;-rw-rw-r--  1 jsears jsears  313340148 2009-04-08 13:14 Win.7-C81CPML.bin - Agent Controller&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;span style="font-size:100%;"&gt;What is important is that for the core files you must rename them to their original names - e.g. "&lt;/span&gt;&lt;span style="font-size:100%;"&gt;Linux.2-C81CYML.bin - Core" would become "&lt;/span&gt;&lt;span style="font-size:100%;"&gt;C81CYML.bin". This is so that the extractor / installer can find them in the same folder as the extractor.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The patches (common to both Windows and Linux installs) were applied in the following order:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;-rw-rw-r--  1 jsears jsears     953031 2009-04-02 11:51 1-rpu_602.zip&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;-rw-rw-r--  1 jsears jsears 1675778833 2009-04-02 18:21 2-rad60_6011.zip&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;-rw-rw-r--  1 jsears jsears 1095904839 2009-04-02 14:56 3-radpre60_6012.zip&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;-rw-rw-r--  1 jsears jsears  296336679 2009-04-02 10:57 4-rad60_6012.zip&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;-rw-rw-r--  1 jsears jsears   85941358 2009-04-02 12:02 5-rad6012_JRE_Update.zip&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;-rw-rw-r--  1 jsears jsears  288694625 2009-04-02 12:26 6-rad6012_interim_fix001.zip&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;-rw-rw-r--  1 jsears jsears  129895083 2009-04-02 12:09 7-rad6012_interim_fix002.zip&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;-rw-rw-r--  1 jsears jsears 1299626269 2009-04-03 13:20 8-rad60_WAS6025.zip&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;-rw-rw-r--  1 jsears jsears  233480881 2009-04-03 11:52 9-rad60_WAS6025_SDK_update.zip&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;-rw-rw-r-- 1 jsears jsears 271152159 2009-04-22 14:24 6.0.2-WS-WAS-LinuxX32-FP00000033.pak&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;-rw-rw-r-- 1 jsears jsears 271300738 2009-04-22 14:24 6.0.2-WS-WAS-WinX32-FP00000033.pak&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;I installed the *.pak files with the "IBM Support Assistant 4.0.2 Workbench" tool:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;-rw-rw-r-- 1 jsears jsears 143320204 2009-04-02 12:32 ibmsa-v402-wb-linux.zip&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;-rw-rw-r-- 1 jsears jsears 126165772 2009-04-02 12:29 ibmsa-v402-wb-win32.zip&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-size:100%;"&gt;The patches get applied via the IDE: Help &gt; Software Updates &gt; IBM Rational Product Updater menu. With the above patches you should end up with it looking like this:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_IaRd0uF5-I4/SkClzSWnFsI/AAAAAAAAANU/J4b5MrWJ2mw/s1600-h/Screenshot-Rational+Software+Development+Platform+Product+Updates+.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 195px;" src="http://3.bp.blogspot.com/_IaRd0uF5-I4/SkClzSWnFsI/AAAAAAAAANU/J4b5MrWJ2mw/s320/Screenshot-Rational+Software+Development+Platform+Product+Updates+.png" alt="" id="BLOGGER_PHOTO_ID_5350458657834735298" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;And when you've applied the *.pak files then, when running from within the IDE, you should end up with this:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_IaRd0uF5-I4/SkClzlx9ELI/AAAAAAAAANc/pXaGfkE6tEc/s1600-h/Screenshot-WebSphere+Administrative+Console+-+Mozilla+Firefox.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 238px;" src="http://2.bp.blogspot.com/_IaRd0uF5-I4/SkClzlx9ELI/AAAAAAAAANc/pXaGfkE6tEc/s320/Screenshot-WebSphere+Administrative+Console+-+Mozilla+Firefox.png" alt="" id="BLOGGER_PHOTO_ID_5350458663049695410" border="0" /&gt;&lt;/a&gt;As a side note, I also installed a Tomcat 5.0.30 instance into my IDE - I took this from &lt;a href="http://archive.apache.org/dist/tomcat/tomcat-5/v5.0.30/bin/"&gt;http://archive.apache.org/dist/tomcat/tomcat-5/v5.0.30/bin/&lt;/a&gt;. The install is simply an extract of the .zip file and integration into the IDE via the Window &gt; Preferences &gt; Server &gt; Installed Runtimes menu.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6662621277353988265-5802937730704495229?l=rationalwebsphere.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rationalwebsphere.blogspot.com/feeds/5802937730704495229/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rationalwebsphere.blogspot.com/2009/06/installing-rad-6012-was-6033-onto.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6662621277353988265/posts/default/5802937730704495229'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6662621277353988265/posts/default/5802937730704495229'/><link rel='alternate' type='text/html' href='http://rationalwebsphere.blogspot.com/2009/06/installing-rad-6012-was-6033-onto.html' title='Installing RAD 6.0.1.2 &amp; WAS 6.0.2.33 onto Ubuntu 9.04 Desktop'/><author><name>James Sears</name><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/_IaRd0uF5-I4/SkCfB7FAnPI/AAAAAAAAANM/D7CJGaGfjlo/s72-c/Screenshot-jsears%40jsears-desktop:+%7E-IBM-RAD-6.0.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6662621277353988265.post-7568937356043253198</id><published>2009-06-23T01:04:00.000-07:00</published><updated>2009-07-13T01:17:26.860-07:00</updated><title type='text'>Useful Redbooks</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_IaRd0uF5-I4/SkCNXpl3kkI/AAAAAAAAANE/Ja9NK9-ngU8/s1600-h/rb170x32.gif"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 170px; height: 32px;" src="http://4.bp.blogspot.com/_IaRd0uF5-I4/SkCNXpl3kkI/AAAAAAAAANE/Ja9NK9-ngU8/s320/rb170x32.gif" alt="" id="BLOGGER_PHOTO_ID_5350431794757341762" border="0" /&gt;&lt;/a&gt;I have found the following IBM Redbooks useful when it comes to training for "&lt;span style="text-decoration: underline;"&gt;&lt;/span&gt;&lt;span style="font-weight: normal;font-size:100%;" &gt;&lt;a href="http://www-03.ibm.com/certify/tests/edu256.shtml"&gt;Test 256&lt;/a&gt;: Application Development with IBM Rational Application Developer for WebSphere Software V6.0" and "&lt;/span&gt;&lt;a href="http://www-03.ibm.com/certify/tests/edu257.shtml"&gt;&lt;span style="font-size:100%;"&gt;Test 257&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size:100%;"&gt;: Enterprise Application Development with IBM Rational Application Developer for WebSphere Software V6.0&lt;/span&gt;&lt;span style="font-weight: normal;font-size:100%;" &gt;"&lt;/span&gt;:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.google.co.uk/search?q=Rational+Application+Developer+V6+Programming+Guide&amp;amp;ie=utf-8&amp;amp;oe=utf-8&amp;amp;aq=t&amp;amp;rls=com.ubuntu:en-GB:unofficial&amp;amp;client=firefox-a"&gt;Rational Application Developer V6 Programming Guide&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.google.co.uk/search?hl=en&amp;amp;client=firefox-a&amp;amp;rls=com.ubuntu%3Aen-GB%3Aunofficial&amp;amp;hs=1ug&amp;amp;q=IBM+WebSphere+Application+Server+V6.1+Security+Handbook&amp;amp;btnG=Search&amp;amp;meta="&gt;IBM WebSphere Application Server V6.1 Security Handbook&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.google.co.uk/search?hl=en&amp;amp;client=firefox-a&amp;amp;rls=com.ubuntu%3Aen-GB%3Aunofficial&amp;amp;hs=na1&amp;amp;q=WebSphere+Version+6+Web+Services+Handbook+Development+and+Deployment&amp;amp;btnG=Search&amp;amp;meta="&gt;WebSphere Version 6 Web Services Handbook Development and Deployment&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.redbooks.ibm.com/abstracts/sg247660.html"&gt;WebSphere Application Server V7.0 Security Guide&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;The following Redbooks might be useful as well:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;WebSphere Application Server V6 System Management and Configuration Handbook&lt;br /&gt;&lt;/li&gt;&lt;li&gt;WebSphere Application Server V6: Default Messaging Provider Problem Determination&lt;/li&gt;&lt;li&gt;WebSphere Application Server V6 Scalability and Performance Handbook&lt;/li&gt;&lt;li&gt;WebSphere Application Server V6.1: JMS Problem Determination&lt;/li&gt;&lt;li&gt;Experience J2EE! Using WebSphere Application Server V6.1&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Experience Java EE! Using WebSphere Application Server Community Edition 2.1&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6662621277353988265-7568937356043253198?l=rationalwebsphere.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rationalwebsphere.blogspot.com/feeds/7568937356043253198/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rationalwebsphere.blogspot.com/2009/06/useful-redbooks.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6662621277353988265/posts/default/7568937356043253198'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6662621277353988265/posts/default/7568937356043253198'/><link rel='alternate' type='text/html' href='http://rationalwebsphere.blogspot.com/2009/06/useful-redbooks.html' title='Useful Redbooks'/><author><name>James Sears</name><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://4.bp.blogspot.com/_IaRd0uF5-I4/SkCNXpl3kkI/AAAAAAAAANE/Ja9NK9-ngU8/s72-c/rb170x32.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6662621277353988265.post-4376834068391165258</id><published>2009-06-18T06:51:00.000-07:00</published><updated>2009-11-24T06:32:16.771-08:00</updated><title type='text'>Installing RAD 75, RAD 751 &amp; WAS 7 onto Ubuntu 9.04 Desktop</title><content type='html'>RAD V7.5 + WAS V7.0 (Network Deployment) was downloaded from http://ibm.com/partnerworld/ using credentials.&lt;br /&gt;&lt;br /&gt;Update V7.5.1 downloaded from standard IBM site - e.g. did not require /partnerworld/ credentials.&lt;br /&gt;&lt;br /&gt;NOTE: V7.5.4 can be downloaded from:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www-01.ibm.com/support/docview.wss?rs=2042&amp;amp;uid=swg24024367"&gt;Rational Application Developer for WebSphere Software, Version 7.5.4&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Ubuntu 9.04 (standard build) needs to have libstdc++.so.5 installed, to support the IBM Installation Manager, meaning: &lt;span style="font-weight: bold;"&gt;sudo apt-get install libstdc++5&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Install directory layout looked like this:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;PEK &lt;- license key &lt;/li&gt;&lt;li&gt;RAD &lt;- RAD75_1.zip ... RAD75_6.zip extracted in that order &lt;/li&gt;&lt;li&gt;RAD_SETUP &lt;- &lt;span style="font-weight: bold;"&gt;sudo launchpad.sh&lt;/span&gt;&lt;/li&gt;&lt;li&gt;751/RAD &lt;- rad751_1.zip ... rad751_3 extracted in that order; patch applied using IBM Installation Manager (see below). &lt;/li&gt;&lt;li&gt;WAS7 &lt;- aka C1G32ML, &lt;span style="font-weight: bold;"&gt;sudo launchpad.sh&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;Install defaults were accepted throughout (unless mentioned).&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_IaRd0uF5-I4/SjpMDJxhWDI/AAAAAAAAALk/u1_u17pYvoc/s1600-h/Screenshot-IBM+Installation+Manager+.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 232px;" src="http://2.bp.blogspot.com/_IaRd0uF5-I4/SjpMDJxhWDI/AAAAAAAAALk/u1_u17pYvoc/s320/Screenshot-IBM+Installation+Manager+.png" alt="" id="BLOGGER_PHOTO_ID_5348671124502829106" border="0" /&gt;&lt;/a&gt;&lt;span style="font-style: italic;"&gt;&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;sudo RAD_SETUP/launchpad.sh&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;Once installed then modify Applications &gt; IBM Instillation Manager menu with gksudo:&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_IaRd0uF5-I4/SjpQRUg0e4I/AAAAAAAAALs/EWn1Od-i7fA/s1600-h/Screenshot-Launcher+Properties.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 90px;" src="http://2.bp.blogspot.com/_IaRd0uF5-I4/SjpQRUg0e4I/AAAAAAAAALs/EWn1Od-i7fA/s320/Screenshot-Launcher+Properties.png" alt="" id="BLOGGER_PHOTO_ID_5348675765950249858" border="0" /&gt;&lt;/a&gt;&lt;span style="font-style: italic;"&gt;Launcher permission&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Update to 751 via Ibm Instillation Manager &gt; File &gt; Preferences &gt; Add repository .../751/RAD/disk1 then Update &gt; Next &gt; etc...&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_IaRd0uF5-I4/SjpWmOBtHeI/AAAAAAAAAME/TuGTkFMyYtw/s1600-h/Screenshot-IBM+Installation+Manager+.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 230px;" src="http://2.bp.blogspot.com/_IaRd0uF5-I4/SjpWmOBtHeI/AAAAAAAAAME/TuGTkFMyYtw/s320/Screenshot-IBM+Installation+Manager+.png" alt="" id="BLOGGER_PHOTO_ID_5348682722056150498" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-style: italic;"&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;Updating to 7.5.1&lt;/span&gt;&lt;span style="font-style: italic;"&gt; (using the local repository)&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;NOTE: 7.5.2 iFix001 can be downloaded via:&lt;br /&gt;&lt;a href="http://download.boulder.ibm.com/ibmdl/pub/software/rationalsdp/v75/rad/updates/"&gt;http://download.boulder.ibm.com/ibmdl/pub/software/rationalsdp/v75/rad/updates/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Prepare for WAS7 install, else installer gets stuck!&lt;br /&gt;&lt;ul&gt;&lt;li style="font-weight: bold;"&gt;sudo unlink /bin/sh&lt;/li&gt;&lt;li style="font-weight: bold;"&gt;sudo ln -s /bin/bash /bin/sh&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Next, install WAS7 - using &lt;span style="font-weight: bold;"&gt;WAS7/sudo lauchpad.sh&lt;/span&gt; - disregarding the unsupported operating system warning!&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_IaRd0uF5-I4/SjpbAk1vM7I/AAAAAAAAAMM/CM2L_El0_eM/s1600-h/Screenshot-IBM+WebSphere+Application+Server+7.0.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 221px;" src="http://2.bp.blogspot.com/_IaRd0uF5-I4/SjpbAk1vM7I/AAAAAAAAAMM/CM2L_El0_eM/s320/Screenshot-IBM+WebSphere+Application+Server+7.0.png" alt="" id="BLOGGER_PHOTO_ID_5348687572903080882" border="0" /&gt;&lt;/a&gt;&lt;span style="font-style: italic;"&gt;Unsupported OS warning&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;I installed an Application Server:&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_IaRd0uF5-I4/SjpbAwCuNhI/AAAAAAAAAMU/93M3Q9c63E8/s1600-h/Screenshot-IBM+WebSphere+Application+Server+7.0-1.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 221px;" src="http://2.bp.blogspot.com/_IaRd0uF5-I4/SjpbAwCuNhI/AAAAAAAAAMU/93M3Q9c63E8/s320/Screenshot-IBM+WebSphere+Application+Server+7.0-1.png" alt="" id="BLOGGER_PHOTO_ID_5348687575910331922" border="0" /&gt;&lt;/a&gt;&lt;span style="font-style: italic;"&gt;Network Deployment version of WAS&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;Verify the install with First steps:&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_IaRd0uF5-I4/SjqeokVsktI/AAAAAAAAAMc/RiC_5z77dIA/s1600-h/Screenshot-First+steps+output++-+Installation+verification-1.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 154px;" src="http://3.bp.blogspot.com/_IaRd0uF5-I4/SjqeokVsktI/AAAAAAAAAMc/RiC_5z77dIA/s320/Screenshot-First+steps+output++-+Installation+verification-1.png" alt="" id="BLOGGER_PHOTO_ID_5348761927242519250" border="0" /&gt;&lt;/a&gt;&lt;span style="font-style: italic;"&gt;First steps confirmation&lt;/span&gt; &lt;/div&gt;&lt;br /&gt;Make sure RAD / my uid can invoke the profile: &lt;span style="font-weight: bold;"&gt;sudo chown -R jsears:jsears /opt/IBM/WebSphere/AppServer/&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Now hook the server into RAD the usual way...&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Add /opt/IBM/WebSphere/AppServer into the Server Runtime Environments dialog:&lt;/li&gt;&lt;/ul&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_IaRd0uF5-I4/SjqmUwYwL5I/AAAAAAAAAM0/7530dNWVF7Y/s1600-h/Screenshot-Preferences+.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 270px;" src="http://4.bp.blogspot.com/_IaRd0uF5-I4/SjqmUwYwL5I/AAAAAAAAAM0/7530dNWVF7Y/s320/Screenshot-Preferences+.png" alt="" id="BLOGGER_PHOTO_ID_5348770382972202898" border="0" /&gt;&lt;/a&gt;&lt;ul&gt;&lt;li&gt;Create a New Server (accepting all the defaults):&lt;/li&gt;&lt;/ul&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_IaRd0uF5-I4/SjqmUtKH42I/AAAAAAAAAMs/XqaBunDepJ4/s1600-h/Screenshot-New+Server+.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 304px; height: 320px;" src="http://2.bp.blogspot.com/_IaRd0uF5-I4/SjqmUtKH42I/AAAAAAAAAMs/XqaBunDepJ4/s320/Screenshot-New+Server+.png" alt="" id="BLOGGER_PHOTO_ID_5348770382105535330" border="0" /&gt;&lt;/a&gt;&lt;ul&gt;&lt;li&gt;Start the server:&lt;/li&gt;&lt;/ul&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_IaRd0uF5-I4/SjqmUfdKMDI/AAAAAAAAAMk/ZYPhVDBDWcM/s1600-h/Screenshot-Java+EE+-+Rational%C2%AE+Application+Developer%E2%84%A2+for+WebSphere%C2%AE+Software+.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 207px;" src="http://4.bp.blogspot.com/_IaRd0uF5-I4/SjqmUfdKMDI/AAAAAAAAAMk/ZYPhVDBDWcM/s320/Screenshot-Java+EE+-+Rational%C2%AE+Application+Developer%E2%84%A2+for+WebSphere%C2%AE+Software+.png" alt="" id="BLOGGER_PHOTO_ID_5348770378427281458" border="0" /&gt;&lt;/a&gt;&lt;ul&gt;&lt;li&gt;And, finally, connect to the server - &lt;a href="http://127.0.0.1:9060/ibm/console/unsecureLogon.jsp"&gt;http://127.0.0.1:9060/ibm/console/unsecureLogon.jsp&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_IaRd0uF5-I4/SjqnifGz1uI/AAAAAAAAAM8/hg7kxRWzGRo/s1600-h/Screenshot-Integrated+Solutions+Console+-+Mozilla+Firefox.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 190px;" src="http://1.bp.blogspot.com/_IaRd0uF5-I4/SjqnifGz1uI/AAAAAAAAAM8/hg7kxRWzGRo/s320/Screenshot-Integrated+Solutions+Console+-+Mozilla+Firefox.png" alt="" id="BLOGGER_PHOTO_ID_5348771718363338466" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6662621277353988265-4376834068391165258?l=rationalwebsphere.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rationalwebsphere.blogspot.com/feeds/4376834068391165258/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rationalwebsphere.blogspot.com/2009/06/installing-rad-75-rad-751-was-7-onto.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6662621277353988265/posts/default/4376834068391165258'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6662621277353988265/posts/default/4376834068391165258'/><link rel='alternate' type='text/html' href='http://rationalwebsphere.blogspot.com/2009/06/installing-rad-75-rad-751-was-7-onto.html' title='Installing RAD 75, RAD 751 &amp; WAS 7 onto Ubuntu 9.04 Desktop'/><author><name>James Sears</name><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/_IaRd0uF5-I4/SjpMDJxhWDI/AAAAAAAAALk/u1_u17pYvoc/s72-c/Screenshot-IBM+Installation+Manager+.png' height='72' width='72'/><thr:total>1</thr:total></entry></feed>
