Oracle9 JDeveloper Version 9.0.4

Release Notes Addendum

Version 9.0.4

April 2004

Content

Introduction

The issues listed here were compiled after the release of Oracle9i JDeveloper Version 9.0.4 in December 2003.

This is an addendum to the release notes for that release. As new issues arise, they will be added to this addendum.

Platform Support

When determining which version of JDeveloper is supported on your platform please check the following matrix:

Oracle9i JDeveloper Release

Included in Release:

Platform Supported

Oracle9i JDeveloper 9.0.4.0.0 (Build 1347)

Oracle Application Server 10g (9.0.4) for Solaris, HP, and Linux

Oracle Developer Suite 10g (9.0.4) for Solaris, HP, and Linux

Solaris, HP, Linux
Oracle9i JDeveloper 9.0.4.0.0 (Build 1407) Oracle Developer Suite 10g (9.0.4) for Microsoft Windows Microsoft Windows
Oracle9i JDeveloper 9.0.4.0.0 (Build 1419) Oracle Application Server 10g (9.0.4) for Microsoft Windows Microsoft Windows,Solaris, HP, Linux

Check the About Box to verify the version of JDeveloper you are using. In some cases, the faceplate of the JDeveloper CD included with the Oracle Application Server 10g (9.0.4) for Microsoft Windows may only indicate Microsoft Windows support when the release is actually supported on Microsoft Windows, Solaris, HP, and Linux.

BC4J Issues

Migrating an Entity Facade Project Does Not Automatically Update "ejb-jar.xml" (3099781)

After migrating an entity facade project to JDeveloper 9.0.4, you must expand the EJB Application Module package node in the System Navigator. Once you do so, the <ejb-local-ref> tag in ejb-jar.xml will be updated properly.

BC4J Struts Wizards Do Not Update Struts Class Files Outside the Default Package (2888538)

It is currently not possible to use the BC4J Struts wizards (which appear in the New Gallery) to update an existing application's project folder, while maintaining custom Struts class files for that project in their own package.

When you run the BC4J Struts wizards on the project folder, the wizard expects to find definition files (including ApplicationResource.properties) in the default package for that folder. If the Struts files exist instead in a user-defined package, the wizard will generate its own version of the Struts definition files in the default package and then modify struts-config.xml to point to those files. In the process, the previous reference to the ApplicationResources.properties file in the struts-config.xml file is overwritten (rather than a new reference being added).

If you want to manage custom code (that is, code not generated by the BC4J Struts wizards) in a separate package, you should first run the wizard on an empty project folder. Once the generated application has been created, edit the default package name in the folder's Project Settings dialog. Subsequently, all Struts classes will appear in the newly defined package.

HP-UX Issues

JDeveloper Requires -Dsun.nio.cs.map="Windows-31J/Shift_JIS" When Using HP Java2 SDK 1.4.1.05 for PA-RISC (3238704)

HP Java2 SDK 1.4.1.05 for PA-RISC has an issue (JAGae96995) that causes the following exception when JDeveloper is started on HP-UX:

java.lang.NullPointerException
at java.nio.charset.Charset.put(Charset.java:437)
at java.nio.charset.Charset.access$200(Charset.java:243)
at java.nio.charset.Charset$3.run(Charset.java:476)
at java.security.AccessController.doPrivileged(Native Method)
at java.nio.charset.Charset.availableCharsets(Charset.java:469)

Oracle has notified HP of this issue, and HP plans to fix it in HP Java2 SDK version 1.4.1.06.

Since Oracle Developer Suite 10g uses HP Java2 SDK 1.4.1.05 for PA-RISC, the oracle_home/jdev/bin/jdev shell script that starts JDeveloper has been modified to work around this issue. Because of this workaround, the two Japanese character sets Windows-31J and Shift_JIS cannot be used with JDeveloper. Comments in the shell script oracle_home/jdev/bin/jdev describe the workaround and how to enable and disable it.

JClient Issues

JClient Applications and Java Web Start Deployment Produce Runtime Exceptions (3276210, 3276215, 3290699)

Before you can run the Java Web Start wizard in JDeveloper, you must generate an EAR file that contains signed JAR files for BC4J and JDBC, as well as other required JAR files. For convenience, JDeveloper provides the script create_jclient_ear.bat (or .sh) to sign and package the JAR files into an EAR file ( bc4jlibs.ear) for easy deployment to the OC4J web server. This script file invokes the {ORACLE_HOME}\BC4J\bin\bc4jlibs_build.xml Ant script to manage signing.

In certain cases, when you run the JClient application, you may get a ClassNotFound exception and you will need to ensure that Java Web Start can work with the required JAR files:

  • When your BC4J application module contains view object usages that define at least one attribute of type OrdMedia, you must create the JNLP definition with the "Include Oracle interMedia JAR Files" option selected in the JClient Java Web Start wizard. (Note that, in this case, the OrdMedia attribute need not be displayed in the JClient form.)
OR
  • When any of your JClient forms use the JClient interMedia control to display multimedia data defined by the BC4J view object usage, you must add an additional JAR file target to the bc4jlibs_build.xml build file and you must create the JNLP definition with the "Include Oracle interMedia JAR Files" option selected in the JClient Java Web Start wizard.

Note: Be sure to also update the bc4jlibs_build.xml file for the runtime12ee.jar file target. See the related release note in this addendum for details.

Specifically, you will use the Ant script to sign and package the JAR files as follows:

  • If your application does not work with the JClient interMedia control, you can run create_jclient_ear.bat to invoke the bc4jlibs_build.xml Ant script. The unmodified Ant script will not include Sun's jmf.jar in the resulting EAR.
  • If your application uses the JClient interMedia control, then the EAR file must contain jmf.jar and you must modify the bc4jlibs_build.xml file (see below) to handle signing of the two JAR files before running create_jclient_ear.bat.

To include jmf.jar in the signing process:

  1. Make a copy of {ORACLE_HOME}\BC4J\bin\bc4jlibs_build.xml.
  2. Open {ORACLE_HOME}\BC4J\bin\bc4jlibs_build.xml in your editor.
  3. Search for the following in the build file:

    <!--<target name="ord_war" depends="init,fix_jmf_jar">-->
    <target name="ord_war" depends="init">

    and (shifting the comment symbols) change it to:

    <target name="ord_war" depends="init,fix_jmf_jar">
    <!-- <target name="ord_war" depends="init"> -->

  4. Search for the following in the build file:

    <!--<antcall target="sign_jar">
       <param name="jarname" value="${temp.war.dir}/jlib/jmf.jar"/>
    </antcall>-->

    and (removing the comment symbols) change it to:

    <antcall target="sign_jar">
       <param name="jarname" value="${temp.war.dir}/jlib/jmf.jar"/>
    </antcall>

  5. If you intend to create the bc4jlibs.ear file on a non-Windows platform, search for the fix_jmf_jar target in the build file and modify the delete attribute:

    <delete dir="${temp.dir}/jardir/meta-inf"/>

  6. to show META-INF in all uppercase instead:

    <delete dir="${temp.dir}/jardir/META-INF"/>

  7. From a command shell, invoke the .bat (or .sh) file with the sign argument:
  8. create_jclient_ear.bat sign

  9. Deploy the generated {ORACLE_HOME}\BC4J\jlib\bc4jlibs.ear file.

After you sign these additional JAR files, you must run the JClient Java Web Start Launcher wizard to generate the JNLP definition for Java Web Start deployment.

To ensure that the appropriate JAR files appear in the JNLP definition:

  1. Choose File | New to locate the JClient Java Web Start Launcher Wizard in the New Gallery.
  2. Select Client Tier | Swing/JClient for BC4J from Categories .
  3. Double-click Java Web Start (JNLP) Files for JClient from the Items list to launch the JClient Java Web Start Wizard.
  4. Select the Include Oracle interMedia JAR Files option to add the required JAR files to the JNLP definition.

For complete information about working with Java Web Start and the deployment profiles required by a JClient application that uses Java Web Start, see the topics in the JDeveloper Help system.

JClient Applications and Java Web Start Deployment Need SQLJ Libraries (3290699)

Before you can run the Java Web Start wizard in JDeveloper, you must generate an EAR file that contains signed JAR files for BC4J and JDBC, as well as other required JAR files. For convenience, JDeveloper provides the script create_jclient_ear.bat (or .sh) to sign and package the JAR files into an EAR file for easy deployment to the OC4J web server. This script file invokes the {ORACLE_HOME}\BC4J\bin\bc4jlibs_build.xml Ant script to manage signing.

However, before you can run the Ant script you must create a target for the SQLJ libraries in order add runtime12ee.jar to the EAR file. Otherwise, running the unmodified Ant script will result in a JClient Java Web Start runtime error "unable to download http://host:port/sqlj/lib/runtime12ee.jar".

Note: Be sure also to update the bc4jlibs_build.xml file for the jmf.jar file target when your JClient application uses interMedia controls. See the related release note in this addendum for details.

To include runtime12ee.jar in the EAR file:

  1. Make a copy of {ORACLE_HOME}\BC4J\bin\bc4jlibs_build.xml.
  2. Open {ORACLE_HOME}\BC4J\bin\bc4jlibs_build.xml in your editor.
  3. Search for taskdef in the build file and insert the following before the taskdef tag:
  4.                                      <property name="sqlj.home" value="${jdeveloper.root}/sqlj"/> <property name="sqlj.war.name" value="${temp.ear.dir}/sqlj.war"/> <!-- create war for sqlj jars.--> <target name="sqlj_war" depends="init">    <copy todir="${temp.war.dir}">       <fileset dir="${sqlj.home}">          <include name="lib/runtime12ee.jar"/>       </fileset>       <fileset dir="${jdeveloper.root}/jdev/multi/system/templates/jclient">          <include name="WEB-INF/web.xml"/>       </fileset>                                     
    </copy> <antcall target="sign_jar"> <param name="jarname" value="${temp.war.dir}/lib/runtime12ee.jar"/> </antcall> <jar jarfile="${temp.ear.dir}/sqlj.war"> <fileset dir="${temp.war.dir}"> <include name="**/*.jar"/> <include name="**/*.zip"/> <include name="WEB-INF/web.xml"/> </fileset> </jar> <delete dir="${temp.war.dir}"/> </target>
  5. To add sqlj.war to the application XML file, search for <webmodule weburi="jlib.war" contextroot="/jlib"/> in the build file and insert the following within the body of the appxml tag:
  6. <webmodule weburi="sqlj.war" contextroot="/sqlj"/>

  7. To include sqlj.war in the EAR file, search for <antcall target="jlib_war"/> in the build file and append the following line:
  8. <antcall target="sqlj_war"/>

  9. From a command shell, invoke the .bat (or .sh) file with the sign argument:
  10. create_jclient_ear.bat sign

  11. Deploy the generated {ORACLE_HOME}\BC4J\jlib\bc4jlibs.ear file.

For more details about the signing workaround, see # for Sun's recommendation.

For complete information about working with Java Web Start, and the deployment profiles required by a JClient application that uses Java Web Start, see the topics in the JDeveloper Help system.

Generating JClient and Thin Client Applications in the Same Project Causes JDeveloper to Hang (3273558)

When creating BC4J client applications, you must use separate project folders for each type of client, including JClient forms (Swing application), BC4J JSP, or BC4J UIX JSP.

If you want to create a workspace with multiple BC4J clients that access the same BC4J data model (for example, UIX JSP pages and JClient forms), be sure to generate your thin client web pages and rich client forms inside separate project folders. Following this guideline when managing your application workspace will ensure that JDeveloper does not hang.

Linux Issues

Resolved: On Some Versions, Refactoring Causes a java.lang.ArrayIndexOutOfBounds Exception (3164474)

Previously, this was an issue when JDeveloper was running Java2SDK1.4.2_01 on Red Hat Enterprise Linux AS 2.1 with kernel 2.4.9-e.25.

The issue has now been resolved.

Intermittent: Deploying EBI Files Causes a ClassNotFound Exception (3168559)

When you try to deploy EBI-generated files on Linux, it is sometimes the case that deployment dialog does not appear and the JVM throws the following exception:

java.lang.ClassNotFoundException: EBIDeploymentProfileDt.m_deploy at
java.net.URLClassLoader$1.run(URLClassLoader.java:199)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:187)
at java.lang.ClassLoader.loadClass(ClassLoader.java:289)
at oracle.ideimpl.IdeClassLoader.loadClass(IdeClassLoader.java:152)

If you encounter this situation, simply retry the deployment. It generally succeeds on the second attempt.

Misc Issues

Browsing the Javadoc for a Different JDK

JDeveloper ships with the Javadoc for JDK 1.4.1. It is currently not possible to update the local JDK doc JAR file when you want to view a different version of the Javadoc through the JDeveloper Help system table of contents. You can, however, point directly to Sun's Javadoc.

To supply the J2SE library with the doc path to the Javadoc hosted by Sun:

  1. Rename <jdev_install>/doc/ohj/jdk14doc.jar to <jdev_install>/doc/ohj/jdk14doc.zip.
  2. Open <jdev_install>/doc/ohj/helpbook.properties and edit the line for the jdk14doc.jar to reference the renamed jdk14doc.zip file:

    Book.FileName.42 = jdk14doc.zip

  3. Open JDeveloper, select your project folder in the navigator, and open the Libraries page of the Project Properties dialog ( Tools | Proj ect Properties ).
  4. Click the Edit button to the right of the J2SE library dropdown list, supply the classpath if necessary for the new JDK, and enter the doc path URL to point to the desired hosted doc on the Sun site. For example:

    http://docs.oracle.com/javase/1.4.2/docs/api/

Although the JAR file has been renamed and the helpbook.properties file updated, the Help system will still display the JDK 1.4 Javadoc in the table of contents.

Passivated Transactions Are Not Maintained Across Transactional Boundaries (3099314)

When an application module's transaction is committed or rolled back, passivated logs of that transaction (of the sort created by failover or application module pooling) are deleted. If you attempt to retrieve these transactions, you will receive an exception with number JBO-28039.

Using JDeveloper in a Multibyte Environment Obscures Some Characters in Text (2670389)

If you use JDeveloper in a multibyte environment, the embedded browser may display all multibyte characters as squares. If this happens, use the following option to prevent the problem:

AddVMOption -Dice.pilots.html4.ignoreNonGenericFonts=true

 

Oracle Corporation
World Headquarters
500 Oracle Parkway
Redwood Shores, CA 94065, USA
http://www.oracle.com

Worldwide Inquiries:
1-800-ORACLE1
Fax 650.506.7200

Copyright © 2004, Oracle Corporation. All Rights Reserved.

false ,,,,,,,,,,,,,,,