Oracle9i® JDeveloper

Version 9.0.4

October 2003




To maximize developer productivity, JDeveloper provides a comprehensive set of integrated tools to support the complete development lifecycle, from source control, modeling, and coding through debugging, testing, profiling, and deploying. JDeveloper simplifies J2EE development by providing wizards, editors, visual design tools, and deployment tools to create high-quality, standard J2EE components including applets, JavaBeans, JavaServer Pages (JSP), servlets, and Enterprise JavaBeans (EJB). JDeveloper also provides a public Extension SDK to extend and customize the development environment and to seamlessly integrate with external products.

To simplify the development of scalable, high-performance J2EE applications, JDeveloper offers an open and extensible J2EE framework called Business Components for Java (BC4J). BC4J implements Sun's J2EE design patterns and allows developers to quickly build sophisticated J2EE applications.

For more information about this release, please visit the JDeveloper page on the Oracle Technology Network at You will also find there the Oracle9i JDeveloper Version 9.0.4 Release Notes Addendum which contains additional information not available at the time of this document's publication.

Support for Oracle9i Release 2 (9.2)

  • Oracle9i Release 2 (9.2)
  • Oracle9i Release 1 (9.0.1)
  • Oracle8i (8.1.7)

Drivers for Oracle9i Release 2 can be installed in JDeveloper version 9.0.4, but are not supported.

Deploying to OC4J

OC4J Version Shipped with Oracle JDeveloper 9.0.4

iOC4J 9.0.4embedded server
  • On Windows installations: <jdev_install>/jdev/system####/oc4j-config
  • On non-Windows and multi-user installations: <jdev_user_dir> /jdev/system####/oc4j-config
JDeveloper also ships a copy of OC4J 9.0.4, which you can run in standalone mode. The files for the OC4J 9.0.4 standalone server are located in:
  • < jdev_install>/j2ee/home (standalone OC4J installation directory, related files are in < jdev_install>/j2ee/home/config)
If you deploy your applications to standalone OC4J, make sure that you use the remote admin.jar file that was shipped with the remote OC4J. If you are using an admin.jar that doesn't match the version of OC4J to which you are deploying, deployment may fail. You can configure deployment to use the correct admin.jar for the OC4J standalone instance when you set up your connection using the JDeveloper Application Server Connection Wizard.

To view the version of OC4J that you are using, enter the following from your OC4J installation directory:

java -jar oc4j.jar -version

OC4J Memory Requirements


If you get a java.lang.OutOfMemoryError, you have two options:

  • If your machine lacks sufficient free memory to run OC4J with a larger maximum heap size, shut down the Java process that runs OC4J and restart it with the -Doracle.j2ee.dont.use.memory.archive=true flag to turn off class preloading, for example:

  • Java -Doracle.j2ee.dont.use.memory.archive=true -jar oc4j.jar

  • If your machine has at least 512 MB of free memory, OC4J will run more quickly if you leave preloading enabled, but startup time will increase considerably. Shut down the Java process that runs OC4J, and restart it with a larger maximum heap size using the -mx flag, for example:

  • Java -mx512M -jar oc4j.jar

Deploying to Other Application Servers

Problems Running UIX Web Applications (including the BC4J JSP Admin Page) Deployed to Non-Oracle Application Servers (2577293)

[INFO] RequestProcessor - -Processing a 'GET' for Path...
Root cause of ServletException

To avoid this error, you must make changes to the uix-config.xml file.

If you are running a BC4J JSP application with an Admin page, make the change on the server:

  1. Find and unzip the bc4j.ear file on the server.
  2. Unzip the webapp.war file that is extracted.
  3. Open the extracted file WEB-INF/uix-config.html in a text editor.
  4. Uncomment the <default-configuration> element.
  5. Set the value of the <full-uri> element to the URL of your application server, including the port number.
  6. Set the value of the <full-path> element to the full local path to the parent directory of the cabo directory on your application server.
  7. Note: Be sure to use the parent directory, not the cabo directory itself.

  8. Repackage the webapp.war file.
  9. Repackage the bc4j.ear file.
  10. Redeploy the modified bc4j.ear file.
  1. In the System Navigator, find the file uix-config.html and open it in the code editor.
  2. Uncomment the <default-configuration> element.
  3. Set the value of the <full-uri> element to the URL of your application server, including the port number.
  4. Set the value of the <full-path> element to the full local path to the parent directory of the cabo directory on your application server.
  5. Note: Be sure to use the parent directory, not the cabo directory itself.

  6. Save the file and redeploy the application to WebLogic.

Deploying Web Applications to Apache Tomcat 4.1

tomcat_install/common/lib tomcat_install/lib

Problems in JSP Applications Deployed to Tomcat (2615358)

Only one of the two parameters ... or ... should be defined.

This is caused by an error in Tomcat's tag pooling mechanism. Because Tomcat does not release tags after pooling, subsequent uses of the same tag with incompatible attributes defined will cause this error.

To avoid the error, you must disable tag pooling in Tomcat:

  1. Open the file <tomcat_home>/conf/web.xml in a text editor.
  2. Find the following element:
  3. <init-param>
  4. Change the value of <param-value> to false.

XSQL Page Processor Cannot Read Pages from Unexpanded Servlet 2.2 WAR File (1552039)

Type Incompatibilities when Deploying to WebLogic


WebLogic6.1 Fails to Understand 'Windows-1252' Encoding in XML Files

  1. Open Tools | Preferences.
  2. In the Environment panel change the Encoding field to UTF-8.
  3. Click OK.

CORBA Requires JDK 1.3 at Runtime (2685103)

Miscellaneous Deployment Issues

ejb-ref in web.xml not Updated if the Bean Type is Changed from Remote to Local (2589997)


BC4J Issues

Available Tables not Visible Under Java Type Map and SQL92 SQL Flavor (2693168)

902 Projects with VO or Attribute Names Containing $ do not Migrate (2701773)

JDeveloper 9.0.4 *.jpr File Format Not Backward Compatible with 9.0.3 (2682921)

Migrated Project: Export Interface is Removed but Still Implemented in IMPL Class (2676186)

The workaround is to delete the "implements" clause (for example, "implements EmpView") from the class declaration in your class file. You can do this before or after migrating the project, although it is probably easier to do it after because the compilation errors will tell you what needs to be fixed.

Bean Name in <EJB-LOCAL-REF> not Updated when Underlying Entity is Renamed (2587916)

Setting Current Database Time Using Entity Facades (2525437)

getDbCurrentTime() getDbCurrentTime()oracle.jbo.server.ejb.facade.EntityFacadeCollImpl

Replace qView with getRowSet in Migration Documentation (2723075)


Documentation Refers to BC4J "Wizards"

Unable to Run a BC4J JSP in OC4J in VB Bind Mode (2594776)

The workaround is to manually add the following system properties to the OC4J command line. If you are using the embedded server then add these to the VM settings of the project from which the embedded OC4J instance is started:


Problem Running Struts Actions in 9.0.3 Project After Upgrade (2756440)

The target /your action cannot be started because it does not exist.

Help Sometimes Not Available for Business Component Browser

You can only access the help system from the Business Component Browser if you launch the browser by right-clicking an application module and choosing Test. If you invoke the Business Component Browser by running, debugging, or profiling your model project, help will not be available.

jbo.debugoutput Property can Take Value of "file"

In addition to the documented values of "silent", "console", and "routing_classname", you can set the value of jbo.debugoutput to "file" to log BC4J debugging information to a text file.

EJB Issues

Cannot Run EJB in Embedded OC4J Server if Workspace Has Two Projects (2096700, 2591173)

Project Settings | Configuration | Development | Paths

JClient Issues

JTree Binding is not Editable (2061405)

Cannot Run JClient Applications in EJB Mode Running in Webstart 1.2 (2699458)


Webstart not Launched in IE 5.5 Due to Mimetype Problems (2573655)

The workaround is to create a new mime type using regedit and associating it to the .jnlp extension. For example, in regedit, locate HKEY_CLASSES_ROOT -> MIME -> Database -> Content Type -> application/x-java-jnlp-file;charset=ISO-8859-1 and set property Extension to value .jnlp.

SpinnerNumberModel for JSpinner Contol does not Work for oracle.jbo.domain.Number (2738858)

However, in BC4J the default mapping for an numeric attribute is 'oracle.jbo.domain.Number'. JUSpinnerBinding currently only supports the following types: Double, Float, Long, Integer, Short or Byte .

So the underlying attribute should be mapped to java.lang.Integer.

Source Control Support Issues

Oracle SCM: JDeveloper Does Not Share Folder Mappings with the Oracle SCM RON

To download Oracle SCM files to the file system for use in JDeveloper:

Oracle SCM: Using JDeveloper and the Oracle SCM VHV

Oracle SCM: Connecting to Oracle Software Configuration Manager 6i Release 4.1.1 or Above


Modeling Issues: General

Performing Source Control Operations On Model Element and Diagram Files (2211605)

Exceptions on Startup if Install Directory Has a Space in Name (2709528)

Modeling Issues: Modeling Java Classes, BC4J or EJB Components

Deleting Modeled Java Classes (2706800)

Modeling Issues: Modeling Activities for E-Business Integration

E-Business Integration Generator Generates Propagations Using Public Database Links (2063917)

This bug will be fixed in later versions of the database. After applying this patch, the public database links can be manually replaced with private database links, by querying the contents of the ALL_DB_LINKS view and creating private database links in the appropriate schema, with the same details as the public links being replaced.

Using HTTP Propagation on a 9.0.1 Database

Web Services Issues

Renaming a Method on a Modeled Web Service Fails to Expose It (2702659)

You have to reselect the method for publication as a web service. Double-click the modeled web service, and on the Exposed Methods page select the method and click OK.

SOAP Web Service Does Not Start New Session (2218102)

Using JMS Web Services with OC4J


To run a JMS web service deployed to OC4J 9.0.3 or Oracle9iAS 9.0.3, you should configure OC4J to hand over the JMS implementation to OJMS. For more information, refer to "Oracle9iAS Containers for J2EE (OC4J) - Java Message Service (JMS) - Frequently Asked Questions" on the Oracle Technology Network,

Creating JMS Web Services that Use Both Send and Receive Operations

In Step 3 of the JMS Web Service Wizard, select Receive operation uses separate JMS destination, and enter the connection factory and the destination for the receive operation. These must be different to the connection factory and destination for the send operation.

Running the PL/SQL Web Service Generator with JDK 1.4

< jdev_install> /jdbc/lib

To configure JDeveloper to use the JDK 1.4 JDBC drivers, you must amend the <jdev_install>/jdev/bin/jdev.conf file. Replace the line:
AddJavaLibFile ../../jdbc/lib/classes12.jar
AddJavaLibFile ../../jdbc/lib/ojdbc14.jar

JDeveloper will now use the JDK 1.4 version of the JDBC drivers, for all JDBC operations.

Runtime Error Calling a Web Service from a Generated Stub (2389203)

m_smr.mapTypes(Constants.NS_URI_SOAP_ENC, new QName("", "return"), null, null, new org.apache.soap.encoding.soapenc.StringDeserializer());

Cannot Model Web Services Based on PL/SQL Packages (2466833)

Creating a Stub with Overloaded Methods to a .NET Web Service (2689939)

When you create a stub to a .NET web service which contains more than one method with the same name, the stub is generated with just one method present, for example:

public Float Add(Float a, Float b) throws Exception

You must manually edit the stub to add the additional overloaded methods, for example:

public Float Add(Float a, Float b) throws Exception
public Integer Add(Integer a, Integer b) throws Exception

Web Service Stub if Generated from JDeveloper Install Path has Space (3068701)

The workaround is to install JDeveloper in a path without a space in any folder name.

Generating Stubs for WSDL Files That Refer to Other WSDL Files (2627242)

If you want to generate a stub for a WSDL file that refers to, or imports, another WSDL file, the Web Service Stub/Skeleton Wizard will not be able to finish as it incorrectly identifies the WSDL file as invalid.

Using WebDAV Connections in JDeveloper

Web-based Distributed Authoring and Versioning (WebDAV) is a set of extensions to the HTTP protocol that enables access to files on remote Web servers.

Note: Before using WebDAV Connections in Oracle JDeveloper, you must first install the WebDAV extension from the Extension Exchange on OTN. For more information, refer to Installing Oracle JDeveloper Version 9.0.4 or the Oracle Developer Suite 10g Installation Guide.

UNIX-Specific Issues

Unable to Select from the Code Insight List by Mouse-Click (2671418)

Sun Java Bug 4751177: Ignore Error Messages

"java.lang.SecurityException: Could not lockSystem" or "Oct 23, 2002 
4:16:55 PM java.util.prefs.FileSystemPreferences 

checkLockFile0ErrorCodeWARNING: Could not lock System prefs.Unix error code 
0.Oct 23, 2002 4:16:55 PM java.util.prefs.FileSystemPreferences syncWorld 
WARNING: Couldn't flush system prefs: 
Couldn't get file lock."

Solaris Only: Long Delay Showing Database Objects in Entity Beans from Tables Wizard (2691427)

Users might experience long delays seeing database objects in entity beans from the Table Wizard. This typically happens if you start with an empty workspace and there are no database connections defined in the IDE. The workaround to this is to click the BACK button in the wizard panel which is waiting to show the database objects and then click the NEXT button. All available tables should then be displayed.

Publishing a Diagram as a JPEG or PNG Remotely on Solaris (3142729)

When publishing a diagram as a JPEG or PNG graphic remotely on a Solaris machine, the operation to publish the diagram can take a very long time to complete and may appear that JDeveloper has frozen. A workaround to this problem is either to perform the publish operation directly on the Solaris machine, or to publish the diagram as SVG.

Linux: java.lang.ArrayIndexOutOfBoundsException When Doing a Refactor (3164474)

This occurs when running JDeveloper with Java2SDK1.4.2_01 on Red Hat Enterprise Linux AS 2.1 with kernel 2.4.9-e.25. It does not occur with Java2SDK1.4.2 nor with Java2SDK1.4.2_01 on other Linux kernel versions (such as kernel 2.4.20 that comes with Red Hat 9.0).

Miscellaneous Issues

PL/SQL Compilation Errors Not Displayed (2688533)

PROCEDURE scott.my_proc IS

Allowable Values for Columns Must be Given a Display Sequence (2717508)

For JDeveloper 9.0.4, you must always provide non-NULL values for the Display Sequence properties. You do this through the properties palette of Oracle Designer.

This behavior will change for JDeveloper 9.0.5, when a NULL value will be acceptable for a Display Sequence property.

Toystore Demo Contains Obsolete bc4jstruts.jar File

To update the file, remove it from your project, and replace it with the copy of bc4jstruts.jar found in <JDEV_HOME>/BC4J/jlib.

Right Mouse Menu "Go to Source" no Longer Working (3146584)

The right mouse menu "Go to Source" on a element in the Show Dependency window no longer works. Instead, use double-click on the item to open the proper editor on the java element.

Passivation/Activation of interMedia Domain Objects with Media Content to Upload does not Work in 3 Tier Environment (2887647)

When you build a BC4J JSP application that uploads media content to interMedia columns and you select "EJB Entity Facades" when asked for what type of Business Entities will be modeled, the media content upload will fail if the BC4J JSP application is running in the "Stateful" mode with the "failover" option set to true.


Oracle Corporation
World Headquarters
500 Oracle Parkway
Redwood Shores, CA 94065, USA
Worldwide Inquiries:
Fax 650.506.7200 
Copyright and Corporate Info
false ,,,,,,,,,,,,,,,