64 Bit Eclipse for WebLogic Portal 10.3.4

(NOTE: This is not a vendor supported approach, your mileage may vary)

Someone recently sent me these instructions and they work great. Makes Eclipse (OEPE, really) much faster on a 64 Bit Windows 7 machine with 8GB RAM.

1) Install the standard WebLogic Portal for Windows, include OEPE

2) Install a 64bit JDK (he suggested JRockit, though the Sun JDK works fine for me)

3) Install the All-In-One 64-bit version of Oracle Enterprise Pack for Eclipse  (latest version at the time did the trick, you made need to match the version to your WLP version) in the same folder level as the WLP-installed version of OEPE (this location is important, or else you will need to correct the relative paths used later)

4) In the root folder of where you installed the 64 bit OEPE, find eclipse.ini and locate the line:

-openFile

And add the following:

-vm
C:Oraclejdk1.6.0_31_64bitbinjavaw.exe

Where the path is where your installation of the 64bit JDK resides

4) Slightly below that point you will find an -Xmx value. Increase it to 4096 (assuming you have 8GB RAM, otherwise, don’t do any of this)

5) Add the following at the end of eclipse.ini

-Dweblogic.home=C:/Oracle/WLP10.3.4/wlserver_10.3

Again, your path may vary.

6) Find bundles.info in [64-BIT OEPE Install Path]configurationorg.eclipse.equinox.simpleconfigurator and add the following at the end:

com.bea.wlp.eclipse.common,10.3.4,../wlportal_10.3/eclipse/plugins/com.bea.wlp.eclipse.common_10.3.4/,4,false
com.bea.wlp.eclipse.common.core,10.3.4,../wlportal_10.3/eclipse/plugins/com.bea.wlp.eclipse.common.core_10.3.4/,4,false
com.bea.wlp.eclipse.common.project,10.3.4,../wlportal_10.3/eclipse/plugins/com.bea.wlp.eclipse.common.project_10.3.4/,4,false
com.bea.wlp.eclipse.common.taglib,10.3.4,../wlportal_10.3/eclipse/plugins/com.bea.wlp.eclipse.common.taglib_10.3.4/,4,false
com.bea.wlp.eclipse.common.xmlcatalog,10.3.4,../wlportal_10.3/eclipse/plugins/com.bea.wlp.eclipse.common.xmlcatalog_10.3.4/,4,false
com.bea.wlp.eclipse.controls,10.3.4,../wlportal_10.3/eclipse/plugins/com.bea.wlp.eclipse.controls_10.3.4/,4,false
com.bea.wlp.eclipse.doc.user,10.3.4,../wlportal_10.3/eclipse/plugins/com.bea.wlp.eclipse.doc.user_10.3.4/,4,false
com.bea.wlp.eclipse.im,10.3.4,../wlportal_10.3/eclipse/plugins/com.bea.wlp.eclipse.im_10.3.4/,4,false
com.bea.wlp.eclipse.im.taglib,10.3.4,../wlportal_10.3/eclipse/plugins/com.bea.wlp.eclipse.im.taglib_10.3.4/,4,false
com.bea.wlp.eclipse.lib.beaxmlbeans,10.3.4,../wlportal_10.3/eclipse/plugins/com.bea.wlp.eclipse.lib.beaxmlbeans_10.3.4/,4,false
com.bea.wlp.eclipse.lib.wseeclient,10.3.4,../wlportal_10.3/eclipse/plugins/com.bea.wlp.eclipse.lib.wseeclient_10.3.4/,4,false
com.bea.wlp.eclipse.lib.xmlbeans,10.3.4,../wlportal_10.3/eclipse/plugins/com.bea.wlp.eclipse.lib.xmlbeans_10.3.4/,4,false
com.bea.wlp.eclipse.p13n,10.3.4,../wlportal_10.3/eclipse/plugins/com.bea.wlp.eclipse.p13n_10.3.4/,4,false
com.bea.wlp.eclipse.p13n.taglib,10.3.4,../wlportal_10.3/eclipse/plugins/com.bea.wlp.eclipse.p13n.taglib_10.3.4/,4,false
com.bea.wlp.eclipse.portal,10.3.4,../wlportal_10.3/eclipse/plugins/com.bea.wlp.eclipse.portal_10.3.4/,4,false
com.bea.wlp.eclipse.portal.library,10.3.4,../wlportal_10.3/eclipse/plugins/com.bea.wlp.eclipse.portal.library_10.3.4/,4,false
com.bea.wlp.eclipse.product,10.3.4,../wlportal_10.3/eclipse/plugins/com.bea.wlp.eclipse.product_10.3.4/,4,false
com.bea.wlp.eclipse.proptool,10.3.4,../wlportal_10.3/eclipse/plugins/com.bea.wlp.eclipse.proptool_10.3.4/,4,false
com.bea.wlp.eclipse.samples,10.3.4,../wlportal_10.3/eclipse/plugins/com.bea.wlp.eclipse.samples_10.3.4/,4,false
com.bea.wlp.eclipse.upgrade,10.3.4,../wlportal_10.3/eclipse/plugins/com.bea.wlp.eclipse.upgrade_10.3.4/,4,false
com.bea.wlp.eclipse.wsrp,10.3.4,../wlportal_10.3/eclipse/plugins/com.bea.wlp.eclipse.wsrp_10.3.4/,4,false
com.bea.wlp.eclipse.wsrp.taglib,10.3.4,../wlportal_10.3/eclipse/plugins/com.bea.wlp.eclipse.wsrp.taglib_10.3.4/,4,false
com.bea.workshop.common.ui.palette,10.3.4,../wlportal_10.3/eclipse/plugins/com.bea.workshop.common.ui.palette_10.3.4/,4,false
com.bea.workshop.netui.core,10.3.4,../wlportal_10.3/eclipse/plugins/com.bea.workshop.netui.core_10.3.4/,4,false
com.bea.workshop.netui.ui,10.3.4,../wlportal_10.3/eclipse/plugins/com.bea.workshop.netui.ui_10.3.4/,4,false
com.bea.workshop.upgrade81,10.3.4,../wlportal_10.3/eclipse/plugins/com.bea.workshop.upgrade81_10.3.4/,4,false
com.bea.workshop.upgrade81.controls,10.3.4,../wlportal_10.3/eclipse/plugins/com.bea.workshop.upgrade81.controls_10.3.4/,4,false
com.bea.workshop.upgrade81.ejb,10.3.4,../wlportal_10.3/eclipse/plugins/com.bea.workshop.upgrade81.ejb_10.3.4/,4,false
com.bea.workshop.upgrade81.netui,10.3.4,../wlportal_10.3/eclipse/plugins/com.bea.workshop.upgrade81.netui_10.3.4/,4,false
com.bea.workshop.upgrade81.thirdparty,10.3.4,../wlportal_10.3/eclipse/plugins/com.bea.workshop.upgrade81.thirdparty_10.3.4/,4,false

Now run OEPE from [64-BIT OEPE Install Path]eclipse.exe and you will have a stronger, faster, better OEPE for developing WLP.

If you found this interesting, please share.

© Scott S. Nelson

Running a WebLogic Portal (WLP) 10.3.4 Domain as a Windows Service

To start a WLP server as a Windows service it is simplest to make your own script based on the provided standard script located at WL_HOMEserverbininstallSvc.cmd. The standard script works fine for a plain WLS domain, but lacks some classpath and options necessary for WLP.

Start by making a copy of the installSvc.cmd script and naming it something specific to your domain.

Next, just under SETLOCAL you will find where WL_HOME is defined. Here you will add the definitions you would normally add in a script that later calls installSvc.cmd (as per the standard documentation).

set DOMAIN_NAME=gnma_test_domain
set USERDOMAIN_HOME=D:my_test_domain
set SERVER_NAME=AdminServer
set WLS_USER=weblogic
set WLS_PW=gnmaAdmin01
set PRODUCTION_MODE=true
set MEM_ARGS=-Xms512m –Xmx512m
set MW_HOME=C:OracleMiddleware

Note: I had heard of people using this approach who had issues with the length of the command line. This may be due to their use of the default domain path. In the example above, I use a shorter path.

At this point, edit the DOMAIN_HOMEbinstartWebLogic.cmd and set it to echo both the classpath and the options. Then start the domain and capture the output of those echoes, then shut the domain back down. Now REM out the existing CLASSPATH definition, then use the outputs you captured earlier to set the CLASSPATH and JAVA_OPTIONS like this:

REM set CLASSPATH=%WEBLOGIC_CLASSPATH%;%CLASSPATH%;
set CLASSPATH=%MW_HOME%patch_wls1034profilesdefault...
[REMAINING CLASSPATH SNIPPED TO FIT]

set JAVA_OPTIONS= -Xverify:none  -ea -da:com.bea...
[REMAINING CLASSPATH SNIPPED TO FIT]

Note that all absolute paths have been replaced with the definitions created earlier to keep the length down and make the script more portable. You should definitely make your own version rather than copying the above. If you do copy the above, be careful of extra spaces and carriage returns used for formatting this blog entry.

Finally, before the ENDLOCAL, add an uninstall line for later use:

rem call "%WL_HOME%serverbinuninstallSvc.cmd"

And that’s it. Looks really simple, but it took me quite some time to gather all the necessary pieces in order to make it work. Hopefully you find this before you went through half as much research.

The example here uses a domain with only the Admin server and no managed servers. For a variety of reasons I only want the Admin server to be run as a service. The standard documentation along with the example above should allow you to expand this to include managed servers should you feel the need.

If you found this interesting, please share.

© Scott S. Nelson

java.lang.NoClassDefFoundError: …/WsrpResourceServletInterceptor

Recently I tried packaging a WSRP Interceptor in a JAR to share between applications with the same requirement, but was getting the following error:

java.lang.NoClassDefFoundError: com/bea/wsrp/consumer/resource/WsrpResourceServletInterceptor

Someone ran a JAR scan and found the WsrpResourceServletInterceptor class file located in netuix_servlet.jar.

As usual, due to project timelines we had already gone with moving the interceptor into the web application rather than fixing the NoClassDefFoundError, but if it comes up again I will try adding that to the domain classpath. Or if you run across it and try it, please post the results as a comment here.

If you found this interesting, please share.

© Scott S. Nelson

WLP Table Test Correct

I keep forgetting to post this. The table test query from the installer defaults to Derby/pointbase as:

SQL SELECT COUNT(*) FROM SYS.SYSTABLES

It should be:

SQL SELECT 1 FROM DUAL

if using an Oracle database and

SQL SELECT 1

if using MySQL.

See Default Test Table Name for more.

If you found this interesting, please share.

© Scott S. Nelson

Quicktime Killjoy for WLS

Installed the latest QuickTime recently as required for WebEx, then today I could not start a new WebLogic domain. To save you all the searching I went through, it turns out that the QuickTime adds .;C:Program Files (x86)Javajre6libextQTJava.zip to the classpath, which causes the following error starting WLS:

QTJava.zip was unexpected at this time

Remove the classpath entry and the QTJAVA entry from your environment variables if you have the same issue. If you are starting WebLogic from a console you will need a new console session. If from an IDE, you will need to restart the IDE afterwards for the update to take effect.

If you found this interesting, please share.

© Scott S. Nelson