New version of JInitiator is available
I just uploaded the latest version of Oracle's Java plugin Jinitiator to OTN. It incorporates Sun's latest JDK 1.3 version (1.3.1_21).
I would not be surprised if this would turn out to be the last drop we'll get from Sun. If you haven't migrated your Forms application to Sun's plug-in yet, you should start doing so I think.
In version 11 of Forms we will only support Sun's plug-in. We will continue to support JInitiator for 10.1.2 but if this turns out to be the last drop from Sun it is definitely worth it to look at their plug-in now because any security fixes from Sun will come in their plug-in rather than ours, going forward.
Forms and Java Web Start
Now that Sun's new plug-in technology, v1.6.0_10, is close to being released (a Release Candidate was released last Friday) I have been playing around with the new Draggable Applet feature. I am not finished with that yet but to make that work I needed to have a JNLP file describing the APPLET. So I made one and to my surprise it just worked. I didn't have to employ any tricks.
I could start Forms directly from the JNLP file both from a browser (if I set the mime type correctly) and from the desktop. Forms starts in a Java frame that is independent of the browser. We have, so far, said that Forms is not supported running with Java Web Start and that is still the case but it works!
Here is what I did to make it work:
Sun's plugin 1.6.0_10.
You'll need the latest Java Plugin (JRE) from Sun. Its available here. It will automatically install Java Web Start. I think there are different version now so choose the fullest version. The Kernal version will possibly not have the Web Start feature included.
The JNPL file
<?xml version="1.0" encoding="UTF-8"?><jnlp spec="1.0+" href="http://localhost:7777/forms/java/forms.jnlp"
codebase="http://localhost:7777/forms/java/">
<information>
<title>Customers</title>
<vendor>Oracle Inc.</vendor>
<description>Summit Demo</description>
<description kind="one-line">Summit</description>
<description kind="tooltip">Summit Demo</description>
<description kind="short">Summit Demo</description>
<shortcut online="true">
<desktop />
</shortcut>
</information>
<security>
<all-permissions />
</security>
<resources>
<j2se version="1.6+" />
<jar href="frmall.jar" size="" main="true" />
</resources>
<applet-desc main-class="oracle.forms.engine.Main" name="Forms" width="800" height="600">
<param name="separateFrame" value="false" />
<param name="lookAndFeel" value="oracle" />
<param name="splashScreen" value="" />
<param name="background" value="" />
<param name="colorScheme" value="blue" />
<param name="serverURL"
value="/forms/frmservlet?ifcfs=http://localhost:7777/forms/frmservlet" />
<param name="serverApp" value="default" />
<param name="logo" value="false" />
<param name="serverArgs" value="module=customers.fmx usesdi=yes
userid=summit/summit@loc sso_userid= debug=no buffer_records=no
debug_messages=no array=no query_only=no quiet=yes render=no
host= port= record= tracegroup= log= " />
</applet-desc>
</jnlp>
I named the file forms.jnlp.
At closer inspection you'll see how similar this JNLP file is to the OBJECT or EMBED tag that you use currently and that came with the Forms installation. All the PARAM attributes are there and the values look like the values you see there if you open the source in the browser. There is no substitution variables in it and the Forms Servlet doesn't know how to perform substitution on it if you put them in so you'll have to translate your base.html or basejpi.html to the JNLP format with this as your guide.
Some potential pitfalls:
- Substitute "localhost" with the name of your host and the port number for the one you use in all places.
- The HREF in the JNLP tag should point to where the JNLP file is stored and that location must have a virtual path defined to it so it can be reached from a browser.
- Substitute the userid (the normal connect string) and module (the name of the form you would like this JNLP file to start, which must be in the forms_path of course) parameters in the serverArgs tag for values that makes sense to your application.
- The j2se tag's version attribute should probably stay like it is. I have not tested this with 1.5.
- The tag called shortcut in the information tag is the tag that is needed for Draggable Applet support. It is not strictly needed here but I included it here for completeness sake.
Mime mapping
To make it possible to serve this JNLP file up from a server and making it possible for a user to start a Forms application in a local Web Start container by clicking on a link in their browser you need to set up a virtual path to the location of the JNLP file or just put the JNLP file in a location on disk that already has a virtual path set up for it.
You must also add this to the httpd.conf file in the Apache config directory:
AddType applications/x-java-jnlp-file .jnlp
Find the place in the file where other AddType directives are and add it right under the last existing one. In my installation they were located under an IfModule directive for mod_mime.c. The httpd.conf file itself is located in $ORACLE_HOME/FRHome/Apache/Apache/conf
Restart Apache to make the type change take effect.
After you perform these steps it should be possible to serve up the JNLP file from a URL both in an HTML file and as a bookmark, meaning that users can have a bookmark in their browser or on their desktops that starts up a Forms application in Java Web Start. The application is independent of the browser so it can be closed as soon as the application has started up. If you copy the JNLP file to the users' machine the browser doesn't even start up when the user double clicks on it.
Disclaimer
This blog entry is not an announcement of support for Web Start. We don't certify Forms with Web Start so we don't know for sure that this works. We might choose to perform certification using Web Start in the future but we don't currently and have no plans to do so in the near future.
My intention with this entry is to share what I found and perhaps create some interest in the Web Start deployment option that I can take to the table at new-feature-discussion time.
Feedback and/or corrections are welcomed in the comments to this entry.
WebLogic and Forms
By now you have probably heard that the Fusion Middleware 11 application server will be based on a WebLogic Server core with numerous pieces of Oracle Application Server and OC4J being migrated onto that core runtime. Since there has been quite a few questions about this both on forums and in emails to me I'd like to clarify the situation here.
First some background information. Oracle acquired BEA some time back and a part of that acquisition was the WebLogic Application Server. In essence WebLogic is what is usually referred to as a Java Container or simply a Java runtime.
Oracle Application Server is much more than a Java runtime. It serves up applications made in PLSQL, Perl, PHP, Java, Forms and Reports and many other technologies. Until now Oracle's Application Server has used OC4J (literally "Oracle Container for Java") as its Java runtime to serve up applications made with technologies like Java Server Pages (JSPs), Java Server Faces (JSF) and ADF.
In version 11 of Fusion Middleware, as noted above, we plan to change this part of the Application Server, making the J2EE container the WebLogic Server core combined with various capabilities of OC4J. This converged runtime will take care of serving up Java based applications. The rest of the Oracle Application Server will continue to function as before.
Forms uses the Java Runtime (or the Java Container) in a very limited way. The Forms Server process is written in C and performs most of the work that takes place on the server machine. It does not use the Java runtime at all. The client is written in Java but runs in a browser and uses a Java VM plug-in, either Oracle's own (JInitiator) or Sun's so it does not use the Java Runtime either. The only part of Forms that uses the Java runtime is the Forms Listener Servlet. This Servlet acts as a message broker (for requests coming from the Forms client and for the response to those requests that comes from the Forms server) and makes it possible for Forms to run across proxies and firewalls. The Forms Listener Servlet will use WebLogic as its Java Runtime in version 11 of the Fusion Middleware application server.
This change is for version 11 of the Application Server only. We have no plans to retrofit Forms to run with WebLogic for current or earlier versions of Forms.
[Updated on the 12th of Aug 2008 to better reflect the changes planned]
Presentation on new features in Forms 11g is online
I just uploaded a presentation on new features in upcoming Forms 11g to the new Forms Modernization page on OTN. Here is a direct link to it for those of you who are inpatient: New Features in Forms 11
New Forms related campaign on OTN
We (Oracle) just kicked off a new Forms related campaign. It spotlights the opportunities for modernization of existing, Forms based, applications that our customers are using, many on very old versions of Forms. See this page for more information.
:: Next Page >>