WLS 12c : first steps


At last ! I’ve been waiting a very long time :)

I wondered why WLS was so slow to come out … but ok, I know some huge work has been done on that version.

Waiting room

I was a bit surprised that Oracle did not announce it @Devoxx (since it would have been the perfect occasion) whereas some of my fellows already received an email, inviting them to attend the launch event on the 1st december.

Speaking about that launch event, I was excited to see the WLS 12c new features and when I joined the event, the excitement quickly faded away : I was a bit bored by the first part … I am not saying it was not interesting, but honestly it felt the audience targeted was clearly people not like me. So I kept on doing stuff while listening with a distant ear to the speakers.

Then came the second part, and that was one hundred time more interesting ! Even if the biggest feature announced was … Java EE 6 !

I’m not saying it’s not important, but as the Glassfish blog pointed it out recently, Java EE 6 is more than two year old now … So I guess everyone had already played with Java EE6 (with GF or another one, since WLS is the last one to be out !). I would have liked to see things more WebLogic specific.

Installing the product

I went several times on the Oracle download page to get the brand new WLS version, but everytime I had a “Check back soon” message.

And then, finally, on Friday, it was here, ready to be downloaded : as promised, a zip version is available and its size is hard to believe : 168 Mb ! Looks amazing, compared to the Windows installer version (more than 1Gb).

Following the instructions, I had to define my MW_HOME variable and then I could call the setWLSEnv script without any trouble. Once my environment set, I ran the script and I encountered the following exception :


Removing the JAVA_OPTION part (which I didn’t need) helped me to launch the script but I encountered another error :


Okay, my JAX-WS version is too old … yet, I’m using a recent JVM :

java version "1.6.0_20-ea"
Java(TM) SE Runtime Environment (build 1.6.0_20-ea-b02)
Java HotSpot(TM) 64-Bit Server VM (build 17.0-b12, mixed mode)

Ok, let’s update to the lattest version (update 25) … But it didn’t change a thing : I had to follow the instructions, that is to say copy the three libs into the jre/lib/endorsed directory)


It’s better but when I enter the username used to boot, the JVM shuts down …

Thanks to Google, I added an option “-Dweblogic.management.allowPasswordEcho=true” and this got me unstuck


And finally, my domain is created !


To sum up, I would say that the distro is really lighter than what I was used to but finally the installation is not as easy as I wanted it to be.

I had to tweak the scripts, add some options (undocumented) : I guess an extra effort could have been made to simplify the initial installation.

But now my domain has been set up, even if some things were a bit disappointing, I’m going to play with Java EE 6, on my favorite server and I’ll try to share some blogposts later on.


Andre Wolf said...

So much problems for just installing a simple application server.
It proves how much Oracle put money in QA and respects its customers.
There's a lot of very good applications servers.
WebLogic 12c is just Cumbersome, Complex, Costly.

Maxence Button said...

:) sacré Dédé !
Are you sure you did not mean to write that comment for WebSphere ? ;)
More seriously, it's true that WLS has always been among the fat appservers, but the fact this version came out with a 168 Mb distro is an excellent sign : things are moving and in the right direction.
I guess we've got to give the WLS team some time to improve.
And if you're disappointed with this nu way of installing the product, you may use the classical version. But IMHO, what's sure is that WLS is one of the most powerful appserver on the market.

See ya Dédé ! :)

Buttso said...

gday Max --

Those problems shouldn't be happening.

I wonder, when you executed setWLSEnv.sh, did you run directly, or did you execute it in the current shell?

You need to set the MW_HOME environment variable before running the script:

You need to do the latter:

sbutton:~/Java/wls-1211-dev $ export MW_HOME=/Users/sbutton/Java/wls-1211-dev

sbutton:~/Java/wls-1211-dev $ . ./wlserver/server/bin/setWLSEnv.sh

That leaves your current shell environment with the required settings, including the endorsed directory property (-Djava.endorsed.dirs) which points at the endorsed library overrides we bundle within the server.

sbutton:~/Java/wls-1211-dev $ echo $JAVA_OPTIONS

This also sets the appropriate CLASSPATH entries so you can execute weblogic.Server.

Also worth pointing out is that this is just needed to be done the first time you create a new domain -- once the domain has been created, you can then use the startWebLogic.sh script in the $DOMAIN_HOME directory and it'll start the server. You don't need to set any environment up or start the server via Java. The scripts have all the necessary settings to launch the server.

Perhaps also worth pointing out is that you can also use the Configuration Wizard GUI to create the first domain.

sbutton:~/Java/wls-1211-dev $ export MW_HOME=/Users/sbutton/Java/wls-1211-dev/
sbutton:~/Java/wls-1211-dev $ $MW_HOME/wlserver/common/bin/config.sh

Note that you need to set MW_HOME since the config.sh script will use it to locate the server libraries, etc.

Andre, I was respectfully going to respond to your comment, but I decided not to.

Mael said...

Hi Max

I hope WLS will not become the equivalent of Oracle DB in the appserver market, powerful but so complex to setup and dedicated to a few specialists.

Maybe Glassfish is now the answer for easy-to-use enterprise java ? did you consider to use glassfish ?

Vyas Sanzgiri said...


It is clear from the images that Max is using a Windows machine. It is also clear from README.txt that Windows does not need to perform step 4 which is setWLSEnv.

I followed the README and I had to refer to this guide to solve the issue.