Deploying Oracle Endeca Portlets in WebLogic

We’re long overdue for a “public service” post dedicated to sharing best practices around how Ranzal does certain things during one of our implementation cycles.  Past installments have covered installation pitfalls, temporal analysis and the Endeca Extensions for Oracle EBS.

In this post, we’re sharing our internal playbook (adapted from our internal Wiki) for deploying custom portlets (such as our Advanced Visualization Framework or our Smart Tagger) inside of an Oracle Endeca Studio instance on WebLogic.

The documentation is pretty light in this area so consider this our attempt to fill in the blanks for anyone looking to deploy their own portlets (or ours!) in a WebLogic environment.  More after the jump…

Setting The Stage

A few key pre-requisites for installing:

  • Make sure that WebLogic is running.
  • Find the Studio home location where the Weblogic domain is configured.
  • Make sure that the post-installation tasks of creating the deploy and weblogic-deploy folders were performed
    studio-folders
  • If the folders were not created, create them and restart WebLogic.
  • Locate and backup the .ear file that is currently deployed
  • Unzip the ear file to an easily accessible location, hereby referred to as the Unzip Home.
    unzipped

Copying, Configuring and Re-Zipping

  • Copy your portlet .war file (ex: branchbird-visualization-portlet-3.1.XXX.war) to the deploy folder underneath Studio home (Ex: C:OracleMiddleware31user_projectsdomainsendeca_studio_domaineidstudiodeploy)
    deploy
  • Wait a few seconds for the file to be processed or watch the log file for a message indicating success.
  • Observe that a new .war file has been created in the weblogic-deploy folder inside of Studio home (Ex: C:OracleMiddleware31user_projectsdomainsendeca_studio_domaineidstudioweblogic-deploy).  Note that the name of the file may have changed slightly.
  • Copy this new .war file into the Unzip Home (where the .ear file was unzipped in step 6 of the previous section).
  • In the Unzip Home, edit the application.xml file inside of the META-INF folder to include the new portlet.
    appxml
  • Re-zip the Unzip Home directory into a .ear file using your favorite zipping tool.  On Linux, the following should work from the root of the Unzip Home: jar -cvf <original_ear_name>.ear .
    Don’t forget the final “.”
  • Replace the original .ear file with the newly created one and restart Web Logic.
  • Once Studio has started again, you can validate that the component is working correctly by checking the “Add Component” dialog for the new Portlet…
    add-component
    …or in the WebLogic console under “Deployments”.

And that’s it!  It’s a seriously involved task, especially relative to the “drop in and go” deployment model on Tomcat but it’s an essential one for traditional “Red Stack” customers that tend to always deploy when possible on WebLogic.

Let us know if this was helpful and if you’d like to see us do more of these (topics wanted!).

Advertisements

3 thoughts on “Deploying Oracle Endeca Portlets in WebLogic

  1. Hi Patrick,
    I am relatively new to customizing portlets. I want to create a portlet for OEID 3.1 and I have followed the Studio Customization guide. I could manage to create a portlet & run it in Ant view to build a war file and deploy it. It’s being seen in the “Add Component” tab too. My challenge here is now that I know how it is possible to create a default portlet, what links do I follow to understand the coding and the components or basic modules required for a proper functional portlet. Also I tried importing one of the .war files of Endeca components but it’s giving me a lot of errors. How do i understand the coding and processes involved here?
    Thanks in advance,
    Brinda

    • Hi Brinda,

      I’d say you have 3 primary resources if you’re looking to start this type of work on your own.

      1) The default portlet has sample code that you can work with, it’s more of a “Hello World” experience but I believe it does retrieve data.
      2) The Endeca Server Development guide is a great resource for the various APIs and web services available to you.
      3) The Studio product, a long time ago, was based on Liferay, which is open source. So, there should be portlets out there that you could look at as an example. They’d have nothing to do with Endeca but might be useful in terms of design and architecture.

  2. +1 Patrick. That was of a great help.

    Is there any sample code, Like how exactly they are configuring the ‘Setting’ icon in the portlet(To Select various datasets). I am able to use some API and display a chart using d3.js and displayed some graph using provisioning service. Data now comes from an excel and I can display a custom graph.

    Now the challenge in front of me is

    1. Configuring setting ‘icon’ to select different data sets.

    2. Getting data from integrator.(Not using any provisioning service.)

    Any inputs are highly appreciated.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s