Deploying Fusion Order Demo on 11.1.1.6

How to Deploy Fusion Order Demo on SOA Suite 11.1.1.6

We need to build a demo for a customer, why not use Fusion Order Demo (FOD) and modify it to do some extra things.  Great idea, let me install it on one of my Linux servers I said…

Turns out there are a few gotchas, so here is how I installed it on a Linux server with JDeveloper on my Windows desktop.

Task 1: Install Oracle JDeveloper Studio

I already had JDeveloper 11.1.1.6 with SOA extensions installed so this was easy.

Task 2: Install the Fusion Order Demo Application

First thing to do is to obtain the latest version of the demo from OTN, I obtained the R1 PS5 release.

Gotcha #1 – my winzip wouldn’t unzip the file, I had to use 7-Zip.

Task 3: Install Oracle SOA Suite

On the domain modify the setDomainEnv script by adding “-Djps.app.credential.overwrite.allowed=true” to JAVA_PROPERTIES and restarting the Admin Server.

Also set the JAVA_HOME variable and add Ant to the path.

I created a domain with separate SOA and BAM servers and also set up the Node Manager to make it easier to stop and start components.

Taking a Look at the WebLogic Fusion Order Demo Application

Note that when opening the composite you will get warnings because the components are not yet deployed to MDS.

Deploying Fusion Order Demo

Task 1: Create a Connection to an Oracle WebLogic Server

If some tests complete when you test the connection to the WebLogic domain but other tests fail, for example the JSR-88 tests, then you may need to go into the console and under each servers Configuration->General->Advanced setting, set the “External Listen Address” to be the name that JDeveloper uses to access the managed server.

Task 2: Create a Connection to the Oracle BAM Server

I can’t understand why customers wouldn’t want to use BAM.  Monitor Express makes it a matter of a few clicks to provide real time process status information to the business.

Oh yes!  I remember now, several customers IT staff have told me they don’t want the business seeing this data because they will hassle the IT department if something goes wrong, and BAM lets them see it going wrong in real time…

Task 3: Install the Schema for the Fusion Order Demo Application

When editing the Infrastructure->MasterBuildScript->Resources build.properties make sure that you set jdeveloper.home to the jdeveloper directory underneath the directory that you installed JDeveloper into.  I installed JDeveloper Studio into “C:\JDev11gPS5” so my jdeveloper.home is “C:\JDev11gPS5\jdeveloper”.

Gotcha #2 – the ant script throws an error partway through but does not report it at the end, so check carefully for the following error:

oracle.jbo.JboException: JBO-29000: Unexpected exception caught: java.lang.NoClassDefFoundError, msg=oracle/jdbc/OracleClob

This occurs because the build.xml does not include the ojdbc6dms library which have CLOB support so in JDeveloper add it to the path “oracle.jdbc.path” in Infrastructure->/DatabaseSchema/Resources build.xml file.

<path id="oracle.jdbc.path">
  <fileset dir="${jdeveloper.home}/../wlserver_10.3/server/lib">
    <include name="ojdbc6.jar"/>
  </fileset>
  <fileset dir="${jdeveloper.home}/../oracle_common/modules/oracle.jdbc_11.1.1">
    <include name="ojdbc6dms.jar"/>
  </fileset>
</path>

Rerun the ant script from Infrastructure/Ant with a target of “buildAll” and it should now complete without errors.

Task 4: Set the Configuration Property for the Store Front Module

Nothing to watch out for here.

Task 5: Edit the Database Connection

Nothing to watch out for here.

Task 6: Deploy the Store Front Module

There is an additional step when deploying, you will be asked for an MDS repository to use.  Best to use the MDS-SOA repository and put the content in its own partition.

Gotcha #3 –when prompted select the mds-soa MDS repository and choose the soa.  Note that this is an MDS partition, not a SOA partition.

Note that when you deploy the StoreFrontServiceSDO_Services application it will populate the local WebLogic LDAP with the demo users.  If this step fails it will be because you forgot to set the “-Djps.app.credential.overwrite.allowed=true” parameter and restart the Admin Server.

Task 7: Deploy the WebLogic Fusion Order Demo Application

Set up the environment for BAM.

When editing the WebLogicFusionOrderDemo->bin->Resources build.properties make sure that you set oracle.home to the jdeveloper directory underneath the directory that you installed JDeveloper into.  I installed JDeveloper Studio into “C:\JDev11gPS5” so my oracle.home is “C:\JDev11gPS5\jdeveloper”.

Gotcha #5a – Make sure that you create directories on the server for the FileAdapter to use as a file directory and a separate control directory and make sure you set the corresponding properties in the build.properties file:

  • orderbooking.file.adapter.dir
  • orderbooking.file.adapter.control.dir

Gotcha #5b – Also make sure you set the following properties in the build.properties file:

  • soa.domain.name
  • managed.server.host
  • managed.server.rmi.port
  • soa.db.username
  • soa.db.password
  • soa.db.connectstring

Note that the soa.server.oracle.home property must be set to the ORACLE_SOA_HOME (usually Oracle_SOA1 under the MW_HOME) on the server.

Gotcha #6 – I found that unless I went into the console to each servers Configuration->Protocols->IIOP->Advanced setting, and set the “Default IIOP Username” and “Default IIOP Password” to be the weblogic user the deployment failed.

Gotcha #7 – when deploying BAM objects in seedBAMServerObjects activity I got an exception “java.lang.NoClassDefFoundError: org/apache/commons/codec/binary/Base64” which is caused because the BAM installation under JDeveloper does not have all the required libraries.  To fix this copy the commons-codec-1.3.jar file from the server machine ORACLE_SOA_HOME/bam/modules/oracle.bam.third.party_11.1.1 to the JDev machine ORACLE_JDEV_HOME/bam/modules/oracle.bam.third.party_11.1.1.

Gotcha #8 – when deploying BAM objects in seedBAMServerObjects activity I got an error “BAM-02440: ICommand is unable to connect to the Oracle BAM server because user credentials (username/password) have not been specified.”.  The quick way to fix this is to change to the directory where the import script was created on the JDeveloper machine (ORACLE_JDEV_HOME\bam\dataObjects\load) and run the load script after setting the JAVA_HOME

..\..\bin\icommand -CMDFILE ImportFODBamObjects.xml

I am sure if I spent more time in the ant scripts I could have found what was wrong with the script for deploying this.

Running Fusion Order Demo

You are now ready to place an order through the frontend app at http://soahost:soaport/StoreFrontModule/faces/home.jspx.  The BAM dashboard is available for you to monitor the progress of your order and EM is all set to let you monitor the health of the processes.  Enjoy studying a relatively complex example that demonstrates many best practices such as use of MDS.

Comments:

Hi Antony

I see that there is lot of information you are trying to provide here for all the SOA suite developers out there .
I am one of the guys who is looking for SOA suite basics for Admin . I know that oracle provides very good documentation but it is kind of complex for beginners like me. So can you help me with anything in particular that i need to learn when talking about SOA administration (From Installation. Again i know oracle has some courses which are a bit expensive for me.)

Any help is appreciated

Thanks in advance

Posted by guest on August 01, 2012 at 11:25 AM MDT #

Hi, I just follow your guide to overcome some difficulties, but I'm facing a new one.

My AdminServer and Managed SOA and BAM servers are running on a remote machine that is on the network. I can successfully create a connection using JDeveloper to de servers, but, when I'm trying to deploy WebLogicFusionOrderDemo (I'm testing the configuration file with "validateFodConfigSettings" over ant) it says that:

[java] Sending ping to 192.168.0.103:8001 - for soa-infra app
[java] Response: 404
[java] NameError: SOAInfraAppNotFound

Somehow I cannot reach the server IP, btw, the servers are running (checked over the console).

Some info from config:

# connection information for the managed server, used for soa-deployment, http
managed.server.host=192.168.0.103
managed.server.port=8001

# rmi port for testing, ejb invocation and others
managed.server.rmi.port=8001

# credential information for the servers
server.user=weblogic
server.password=weblogic1

# wls target server (for shiphome set to server_soa, for ADRS use AdminServer)
server.targets=soa_server1

# soa-server side oracle home directory - needed for deployment plans
# and the weblogic sca library deployment (out of the ExternalPartnerSupplier project
soa.server.oracle.home=192.168.0.103/C:/Oracle/Middleware/WL1036/Oracle_SOA1

Don't really know what to do...

Thanks!

Posted by guest on August 09, 2012 at 08:58 AM MDT #

Thank you very much for this post. I finally managed to deploy with minimal hassels.

One more Gotcha for those who are going to follow the steps mentioned in the README.txt file under FOD_HOME\CompositeServices.

You need to execute ant task importCommonServiceArtifactsIntoMds before
validateFodConfigSettings or else it will fail because the MDS Parition is not created.

Posted by guest on September 24, 2012 at 02:36 AM MDT #

thank you very much.I might have struggled a lot if this post is not available.

Posted by guest on September 27, 2012 at 12:09 PM MDT #

Hi Antony,

Thanks for the valuable information. I followed the instructions you have provided and managed to deploy the application however when I invoke the target server-setup-seed-deploy-test I am getting following error.

[java] Expected option at: as
[java] Usage:
[java] oracle.integration.platform.blocks.event.SendEvent -dbconn <db connection string> -dbuser <db user> -dppass <db password> (-eventName <qname> [-eventBody <bodyFileName>] | -event <eventFileName>)
[java] Specifiy the database connection info and event info. The event info can be just the event name, the event name and a body (from a file) or an entire event (from a file).

BUILD FAILED
F:\SOALearning\FusionOrderDemo_R1PS5\CompositeServices\bin\build.xml:321: The following error occurred while executing this line:
F:\SOALearning\FusionOrderDemo_R1PS5\CompositeServices\bin\build.xml:452: Java returned: -1

Please let me know if something is missing.

Thanks in advance.

Nauman

Posted by Nauman Shaikh on September 30, 2012 at 06:28 AM MDT #

Post a Comment:
Comments are closed for this entry.
About

Musings on Fusion Middleware and SOA Picture of Antony Antony works with customers across the US and Canada in implementing SOA and other Fusion Middleware solutions. Antony is the co-author of the SOA Suite 11g Developers Cookbook, the SOA Suite 11g Developers Guide and the SOA Suite Developers Guide.

Search

Archives
« April 2014
SunMonTueWedThuFriSat
  
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
   
       
Today