Scaling up to WebLogic 12c Server from GlassFish 3.x
One of the main goals of Oracle's strategy for GlassFish server was to "integrate with Fusion Middleware and Products" (source: Community Roadmap May, 2010). Back in this year you heard a lot of fears and rumors about the two servers becoming one. Seeing both products moving forward in terms of features and releases it gets clearer what that strategy could be. Beginning with GlassFish's support for a limited set of weblogic specific deployment descriptors, Oracle also moved on with WebLogic to do the same. Beginning with 10.3.6 WebLogic Server adds support for reading and using GlassFish's web deployment descriptors. These are glassfish-web.xml and sun-web.xml. This is useful for providing specific GlassFish behavioral
settings and mappings for resources and security to WebLogic Server. The goal behind that obviously is to allow a GlassFish application to be deployed more easily to WebLogic Server and vice verse.
What WebLogic knows about GlassFish
WebLogic Server detects the presence of GlassFish web deployment descriptors in WAR files and parses them. Known entries are parsed into WebLogic server settings and applied at runtime via WebLogic MBeans (weblogic.j2ee.descriptor.wl.WeblogicWebAppBean).
WebLogic always will use an existing weblogic.xml instead of the GlassFish deployment descriptors if it is present and WebLogic applies the settings at runtime which means, that no weblogic.xml is actually generated.
If you deploy a GlassFish web-application to WebLogic you get some log messages with INFO level and you can follow what is happening:
<Info> <HTTP> <BEA-101392>...
<Glassfish Descriptor element <glassfish-web-app> is not supported>
<Glassfish Descriptor element <context-root> was successfully parsed and applied>
<Glassfish Descriptor element <idempotent-url-pattern> is not supported>
<Glassfish Descriptor element <property> is not supported>
<Glassfish Descriptor element <reapIntervalSeconds> was successfully parsed and applied>
<Glassfish Descriptor element <res-ref-name> was successfully parsed and applied>
<Glassfish Descriptor element <jndi-name> was successfully parsed and applied>
<Glassfish Descriptor element <delegate> was successfully parsed and applied>
<Glassfish Descriptor element <keepgenerated> was successfully parsed and applied>
Compared to what GlassFish knows about WebLogic, this is still a very limited set of parameters. But it covers the most needed ones. And we are still looking forward to even less xml configuration with further Java EE versions. But let's look at the other side.
What GlassFish knows about WebLogic
GlassFish Server offers limited support for the weblogic-application.xml, weblogic.xml, and weblogic-webservices.xml deployment descriptor files. The only element in weblogic-application.xml that GlassFish Server supports is security. The equivalent element in the glassfish-application.xml file is security-role-mapping.
But for what is all that good for?
Good question. There are some possible interpretations for what is happening.
1) GlassFish could be positioned as a certified, lightweight development platform for Oracle's FMW stack based on WebLogic server. If this would be the main goal, I wouldn't expect WebLogic to understand any of the GF DDs but GF knowing about all tweaks and settings of WLS.
2) Easy re-deployment of GF apps on WLS. This is what you find on the official launch slides. If you are running GF and you need to scale up to WLS you have a more easier migration path.
3) Both teams are trying to get hands on the concepts and switches of the other side. The GF roadmaps from the past highlight a "Common Server Platform" for WLS and GF. So knowing each other could be an easy and obvious first step for the teams.
As always, a bit of everything might be true. So there is nothing else left for now than simply to be happy about and watch how both excellent servers come closer together and to be open for future possibilities.
What WebLogic knows about GlassFish
WebLogic Server detects the presence of GlassFish web deployment descriptors in WAR files and parses them. Known entries are parsed into WebLogic server settings and applied at runtime via WebLogic MBeans (weblogic.j2ee.descriptor.wl.WeblogicWebAppBean).
WebLogic always will use an existing weblogic.xml instead of the GlassFish deployment descriptors if it is present and WebLogic applies the settings at runtime which means, that no weblogic.xml is actually generated.
|
If you deploy a GlassFish web-application to WebLogic you get some log messages with INFO level and you can follow what is happening:
<Info> <HTTP> <BEA-101392>...
<Glassfish Descriptor element <glassfish-web-app> is not supported>
<Glassfish Descriptor element <context-root> was successfully parsed and applied>
<Glassfish Descriptor element <idempotent-url-pattern> is not supported>
<Glassfish Descriptor element <property> is not supported>
<Glassfish Descriptor element <reapIntervalSeconds> was successfully parsed and applied>
<Glassfish Descriptor element <res-ref-name> was successfully parsed and applied>
<Glassfish Descriptor element <jndi-name> was successfully parsed and applied>
<Glassfish Descriptor element <delegate> was successfully parsed and applied>
<Glassfish Descriptor element <keepgenerated> was successfully parsed and applied>
Compared to what GlassFish knows about WebLogic, this is still a very limited set of parameters. But it covers the most needed ones. And we are still looking forward to even less xml configuration with further Java EE versions. But let's look at the other side.
What GlassFish knows about WebLogic
GlassFish Server offers limited support for the weblogic-application.xml, weblogic.xml, and weblogic-webservices.xml deployment descriptor files. The only element in weblogic-application.xml that GlassFish Server supports is security. The equivalent element in the glassfish-application.xml file is security-role-mapping.
|
|
But for what is all that good for?
Good question. There are some possible interpretations for what is happening.
1) GlassFish could be positioned as a certified, lightweight development platform for Oracle's FMW stack based on WebLogic server. If this would be the main goal, I wouldn't expect WebLogic to understand any of the GF DDs but GF knowing about all tweaks and settings of WLS.
2) Easy re-deployment of GF apps on WLS. This is what you find on the official launch slides. If you are running GF and you need to scale up to WLS you have a more easier migration path.
3) Both teams are trying to get hands on the concepts and switches of the other side. The GF roadmaps from the past highlight a "Common Server Platform" for WLS and GF. So knowing each other could be an easy and obvious first step for the teams.
As always, a bit of everything might be true. So there is nothing else left for now than simply to be happy about and watch how both excellent servers come closer together and to be open for future possibilities.

Comments
Thanks for the comment. As I stated in the text, GF knows even more about WLS than the other way round. But you would agree, that WLS has some unique productive management features that makes it more likely to scale up for applications, than scale down?
I would be happy to read some official statements about the conversion of the platform and the desired usage scenarios beginning with development up to high available production environments. Last sentence explicitly NOT stating, that GF wouldn't be able to do it!!
Thanks,
..OO(and sorry for pushing at that corner. Orcl is still doing too less to address the explicit values of both servers, if you ask me)
Markus
We have an application that we support on Glassfish2, Websphere are Weblogic. We generate the deployment descriptors automatically. Now that we are adding support for Glassfish3, it is reading not only the files we intend but also the weblogic ones - and complaining! For example, weblogic-webservices.xml contains:
JAXWS
but Glassfish3 reads that and grumbles:
[#|2012-01-27T15:31:00.121+0000|SEVERE|glassfish3.1.1|javax.enterprise.webservices.org.glassfish.webservices|_ThreadID=17;_ThreadName=Thread-2;|WS00057: WebService type is declared as JAXWS but should be either has a JAX-WS or JAX-RPC|#]
I imagine that if we "fix" that to "JAX-WS" then Weblogic will grumble...
This is a nice idea but sometimes it's easier to keep things separate. At least the ability to disable the feature would be appreciated.
as far as I know, this shouldn't happen. If the original GF descriptors are in place the WLS ones should be ignored. If you have a simple example, go ahead and file a bug in the GF JIRA!
Rgds,
M