my recent reads..

WebCenter Wiki - Up and Running with OC4J 10.1.3

I finally had a chance to sit down with Oracle WebCenter recently, primarily to give the wiki functionality a test drive. I wanted to test in a virgin OC4J 10.1.3.3 container (as opposed to the Preconfigured Standalone OC4J) just to make it interesting and see all the moving parts. As far as I could discover, there's not a great deal of information available on the topic. In this post I'm going to chronical the specific installation procedure I used to get WebCenter Wiki running under OCJ4 10.1.3.3.

This is the end result we're after..


Documentation and Downloads

The documentation for WebCenter Wiki is a little obscure when it comes to installing in a "plain" OC4J container. It turns out to be pretty straight-forward, but just as mc said in the forums recently: "Oracle documentation just make it look difficult"!

I refered to the following materials for the install:

It can all get a bit confusing, but the following diagram illustrates the installation dependencies

There are four downloads required, all readily available from OTN:

Installation Procedure


I'm going to document the install steps here in the order I actually executed them. Variations are possible. I'm installing this under Windows XP, but the same applies on other platforms (just switch \ to / and use the appropriate command shell syntax).

1. Get the OC4J container running
To be precise, I am using "Oracle Containers for J2EE (OC4J) 10g Release 3 (10.1.3.3)". I won't cover in detail here. Basically you need to unpack and startup. The only thing you may need to configure are the port settings to avoid conflicts with other services.

2. Install PDK-Java
Details for installing the Oracle Portlet Development Kit are in index.html from the Oracle Portlet Container and PDK-Java 10.1.3.2 download. Assuming we've exploded the download into "G:\pdksoftware", the following performs the installation into the 10.1.3.3 home:

set ORACLE_HOME=G:\MyCache\oc4j_extended_101330
set J2EE_HOME=%ORACLE_HOME%\j2ee\home
set JAVA_HOME=C:\bin\jdk1.6.0_03
set PDKPATH=G:\pdksoftware
%JAVA_HOME%\bin\java -jar -classpath %ORACLE_HOME%\lib\xmlparserv2.jar -jar %PDKPATH%\pdk\jpdk\v2\pdkinstaller.jar %J2EE_HOME%


3. Install the Portal Container
From the same kit, we install the Portlet container

set ORACLE_HOME=G:\MyCache\oc4j_extended_101330
set J2EE_HOME=%ORACLE_HOME%\j2ee\home
set JAVA_HOME=C:\bin\jdk1.6.0_03
set PDKPATH=G:\pdksoftware
%JAVA_HOME%\bin\java -jar %PDKPATH%\pdk\portlet-container\portlet-server-install.jar %J2EE_HOME%


4. Install and Test the Sample Portlets
Using Enterprise Manager (http://localhost:8888/em or similar), go to the "Applications" tab and deploy the %PDKPATH%\pdk\jpdk\v2\jpdk.ear.

Once done, you should be able to successfully access the sample providers at http://localhost:8888/jpdk/providers/sample and get a page like the one shown on the right.

5. Install ADF
Explode the Oracle ADF Installer, which uses a silent "runInstaller" to install.

First, you'll need to update the adfinstaller.properties file, paying particular attention to OracleHome, DesHome and type values. This is from my install:

# The absolute path to the directory containing the ADF jars to be installed.
# This is the location of the directory where you unzipped the adfinsatller.zip
OracleHome = G:\\Sources\\incoming\\www.oracle.com\\OracleAS\\ADF\\adfinstaller

# Home directory for the destination application server,
# where the ADF Jars need to be installed
DesHome = G:\\MyCache\\oc4j_extended_101330

# Specify the platform for the Application Server where the ADF libraries need
# to be installed. This has to be one of the following choices.
# OC4J/AS/TOMCAT/JBOSS/WEBLOGIC
type = OC4J

And then run:
java -jar runinstaller.jar adfinstaller.properties

Restart OC4J at this point.

BUT, if you were like me, my container failed to start at this point with Error initializing server: Shared library "adf.oracle.domain" could not be found..

Annoying, but no panic. Edit ORACLE_HOME/j2ee/home/config/server.xml, re-order the shared library entry for "adf.oracle.domain" (I moved it to just after the "oracle.persistence" shared library) and try to startup again.

NB: after getting to this point, I find my OC4J does not completely shutdown after issuing a shutdown request via RMI %ORACLE_HOME%\bin\oc4j -shutdown -port %RMIPORT% -password %adminpwd%. Leaving that problem for another day.. :sigh:

6. Install Oracle Wiki (finally)
Using Enterprise Manager (http://localhost:8888/em or similar), deploy the owc_wiki.ear from the Oracle WebCenter Additional Services CD

7. Configuring Security
If you try and hit the wiki now (http://localhost:8888/owc_wiki) you will probably get a 500 error because security is not started or configured.

For this test, I'm just going to use the out-of-the-box Java SSO File-Based Security Provider.

In EM, startup the Java SSO application (look under the application group "Middleware Services > Other Services"). If you try and access the wiki now, you should see a login form but get an error when you submit because we need to generate the Symmetric Key. Every time I go to do this, following the Java SSO documentation, I struggle to find the right link in EM.

To be clear, in 10.1.3 look for "SSO Configuration" on the Administration tab of the OC4J container (below). Go to the page, make sure "Generate new symmetric key" is checked, select your key type, and click "Apply". You will be prompted to restart OC4J.


Browse to the wiki again and we have .. Success!


8. Adding users
Remember we're using the JAZN XML security provider rather than OID or other directory. Andreas had a nice post recently on how to Add a user to the JavaSSO, and that's what I need to do to add a personal account for myself..

set ORACLE_HOME=G:\MyCache\oc4j_extended_101330
set J2EE_HOME=%ORACLE_HOME%\j2ee\home
set JAVA_HOME=C:\bin\jdk1.6.0_03

%JAVA_HOME%\bin\java -jar %J2EE_HOME%\jazn.jar -adduser jazn.com paul password1
%JAVA_HOME%\bin\java -jar %J2EE_HOME%\jazn.jar -grantrole users jazn.com paul

JAZN is a bit dumb compared to using a real directory, so you need to restart OC4J again to pick up the new credentials.


And there we go. Oracle Wiki up and running in OC4J. Just 8 "simple" steps;-)
read more and comment..

The White Stripes - Icky Thump


I heard the title track from The White Stripes' Icky Thump some time back. Think it might have been on BBC World Service's White Label. Finally picked up the album last weekend.

It's quirky playful, in a Sonic Youth kind of way, but perhaps with a more solid blues rock/bluegrass sensibility. It gets stuck in your head. Love it.


read more and comment..

Tricky Business


Tricky Business by Dave Barry. The first book for a long time that had me snorting with laughter amongst groups of startled strangers.

As Dave Barry says..
This book is dedicated to the people of South Florida, for being so consistently weird

If I was to classify this book, I'd say its sort of like a Saturday Night Live version of CSI:Miami, directed by the Cohen Bros, and staring all the extras from Miami Vice (the original series). With a twist of Tarantino. Get it?


read more and comment..

What's With Oracle and Flex?

Adobe's Flex seems to be cropping up across the enterprise vendor space. It's made a clean sweep of the BI vendor products (a much smaller group these days). And now Flex seems to be making major inroads in SAP and Oracle.

I wonder however if this is real strategy at work, or just an example of a good cohesive solution filling the void in the midst of AJAX-chaos?

I'd commented before on SAP's adoption, and they seem to have stolen the limelight over the past year. It was easy to forget a no-fanfare announcement of Flex support by Oracle at OpenWorld 2006. It was just PR after all - and seems to have dropped off the Internet! But it seems one of the most lasting impressions of OpenWorld 2007 was the promiscuous proliferation of Flex in the various demos and announcements.

James Ward (the Adobe RIA Cowboy) reported the usage in his blog, and has apparently been working closely with Oracle on their adoption.

It was very interesting to hear RedMonk's Michael Coté picking this discussion up in their "RIA Weekly" podcasts - with gossip about OpenWorld sightings in Episode 01, with more depth about the specific product teams using Flex in Episode 02.

As James & Michael discuss, Oracle's adoption seems to be of the common "stick your widgets in our page" style. The flagship adoptions are so far MetaLink (selected pages only), and BI Publisher (yet to release).

Flex is pretty cool, I agree. But it is hard to discern a broad RIA strategy at work here.

AJAXWorld might have been controversial by splitting the RIA world into two camps (Should You Choose AJAX or Adobe?). Choose Ajax or Flex? I think Oracle's answer may simply be "we need to choose?"

Consider Oracle is also playing many other AJAX cards: OpenAJAX Alliance support; quite a bit of true AJAX used in various products; and "AJAX" support in ADF/JSF [although as far as I can figure, it's all IFrame-based].

Does any of this really tell us anything about the strategic direction for Oracle Fusion Applications UI technology?

Now that the Oracle AppsLab guys are Back from OpenWorld, I'd be really keen to hear their take on all this. In fact, I'd expect that guys like James Ward were engaged with OracleAppsLab and the AppsLab blog should be the place to get the inside running.

But back to my original, cynical observation. I have a sneaking suspicion that we're seeing Flex pop up all over the enterprise space for one simple reason: Adobe have a good pitch, and a product that is nicely wrapped up and walled in (even questions of Flex's openness seem to have fallen by the wayside). The AJAX elevator pitch just isn't in such good a shape.

Hence so much easy to push a top-down directive to "skin it with Flex". It may even accidentally be the best long term decision for your product.
read more and comment..