Oracle9i JDeveloper

Release Notes

Version 9.0.3.1

February 2003

Content

Introduction

Oracle9i JDeveloper is a J2EE™ development environment with end-to-end support for developing, debugging, and deploying e-business applications and web services.

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 /products/jdev. You will also find there the Oracle9i JDeveloper Version 9.0.3 Release Notes Addendum which contains additional information not available at the time of this document's publication.

Support for Oracle9i Release 2 (9.2)

JDeveloper version 9.0.3 is distributed with drivers for Oracle9i Release 1. These drivers are compatible with the following database versions:

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

Drivers for Oracle9i Release 2 can be installed in 9.0.3, but are not supported.

BC4J Issues

BC4J Projects Will Be Updated Automatically

The first time you open a BC4J project in JDeveloper 9.0.3 you will be alerted that your project will be upgraded. If your project contains many BC4J packages and many objects, this upgrade procedure may take several minutes.

BC4J <jbo:InputSelectLOV> Data Tag Does Not Migrate (2612879)

After you migrate a BC4J JSP page that uses the <jbo:InputSelectLOV> data tag from JDeveloper 9.0.2, your JSP will cause a runtime exception if you attempt to display the LOV page. The exception is thrown because in JDeveloper 9.0.3 the <jbo:InputSelectLOV> data tag uses a new implementation of the default LOV page, lovcomp.jsp. The workaround is to either edit the lovcomp.jsp file in your project or simply refresh the project to get the updated file. To refresh the project, you need only drop the <jbo:InputSelectLOV> data tag from the Component Palette onto any JSP page in your project. After you drop the tag, you may remove the inserted data tag and keep your old tag; the lovcomp.jsp file will have been refreshed in the public_html folder in your project. However, if you have modified the LOV page and you do not wish to overwrite the file, then you need to rename all occurrences of appModId with appConfig in the customized lovcomp.jsp file.

Preview Release Upgrade Issues for BC4J JSP Struts Applications

If you generated a Struts-based BC4J JSP application in the JDeveloper 9.0.3 preview release, you will want to be aware of Struts implementation changes that have occurred in the JDeveloper 9.0.3 production release. If you simply regenerate the application using the JDeveloper wizards in the production release, the generated application will make use of the updates. However, if you have already modified your generated application and you want to import it into JDeveloper 9.0.3 production, your BC4J JSP project will need to be modified to work with the BC4J Struts library updates. Specifically, you need to make these changes to a Struts-based BC4J JSP application that you generated from the wizards:

  1. Update these libraries in your Struts BC4J JSP project:

    • public_html\WEB-INF\lib\datatags.jar needs to be updated with
      <oracle_home>\BC4J\lib\datatags.jar
    • public_html\WEB-INF\lib\bc4jstruts.jar needs to be updated with
      <oracle_home>\BC4J\jlib\bc4jstruts.jar
  2. Apply the following changes to the generated BC4J action classes:

    1. Add a new import:

      import oracle.jbo.html.struts11.BC4JUtils;

    2. Replace:

      import oracle.jbo.html.struts11.BC4JAction; by
      import org.apache.struts.action.Action;

    3. Replace the superclass:

      public class DeptView1BrowseAction extends BC4JAction by
      public class DeptView1BrowseAction extends Action

    4. Replace the getForwardFromContext() method:

      return getForwardFromContext(context, mapping); by
      return BC4JUtils.getForwardFromContext(context, mapping);

At this point you should be able to compile, but more steps are necessary to run:

  1. Update the web and Struts component JSP pages by generating a new Struts Starter Page using the Struts Starter Page Wizard in the Struts-Based JSP for Business Components category of the New Gallery.

  2. Update all the Data <Xxx>Component.jsp files in your project by copying the JSP data component files from <jdev_install>\multi\system\templates\common\struts to the public_html directory of your project. Specifically, this includes:

    DataEditComponent.jsp
    DataNavigateComponent.jsp
    DataQueryComponent.jsp
    DataRecordComponent.jsp
    DataScrollerComponent.jsp
    DataTableComponent.jsp
    DataTransactionComponent.jsp

  3. In all the <ViewObjectName>_Edit.jsp pages generated by the 9.0.3 preview Struts wizard, delete the Cancel link by removing this line:

    <a href="javascript:history.go(-1)" ><bean:message key="edit.cancel"/></a>

    It has been replaced by a Cancel button in the form

New Default Naming Algorithm for View Object Instances Used in Application Modules

Given a reusable view object component like com.mycompany.hrapp.DepartmentList, in BC4J 9.0.2 when an instance of this view object component was used for the first time in an application module, the BC4J design time wizards defaulted the instance name to be the same as the component name: DepartmentList.

The fact that the component name and its related default instance name were the same caused many developers to miss the important distinction between component definition and component instance, leading to confusion while using BC4J in their applications.

To remedy this confusion, in BC4J 9.0.3, this initial default name is DepartmentList1. On the "Data Model" panel of the application module editor, you can click on any view object instance name in the data model, and rename it by typing in a new name and clicking the (Rename) button.

Each BC4J Application Module acts as a container for instances of view object components in a way conceptually analogous to how a UI panel like a JFrame acts as a visual container for instances of user interfaces components like JButton, JTextField, etc. When instances of a javax.swing.JButton class are added for the first time to a UI panel container, the default instance name chosen by the JDeveloper Form Editor is jButton1, the second instance name defaults to jButton2, etc. The new default instance naming for view object instances follows this same instance naming pattern.

Modifying BC4J Project Files Can Create Problems for Wizard-Generated BC4J Struts Clients

When you use the Struts application wizards to generate Struts-based JSP forms for a BC4J middle tier project, you may not be able to modify the BC4J project without causing the generated web application to fail.

For example, if you use the Struts wizards to generate a web application based on the current state of your BC4J objects, and then decide to change the name of an attribute name in a view object (in order to distinguish it from the default entity-derived attribute name), a JBO runtime exception will be thrown.

In this case, you can:

  • Rerun the wizard to regenerate the web application with the correct attribute names.
  • Edit FormBean classes in your web application that refer to the attribute name so they use the new value.
  • If you used DynaFormAction, you would only need to modify struts-config.xml file to reference the new attribute name.

Application Pool Name Change

The application pool name has changed for application pools which are created using an application definition (.cpx) file. This change may affect 9.0.2 JClient and 9.0.3 preview release BC4J web application developers who use client data model definitions and have implemented programmatic pool access (i.e. PoolMgr.getInstance().getResourcePool(<poolName>)). The 9.0.3 preview release BC4J web framework and the 9.0.2 JClient framework used the ApplicationModule definition name as the pool name. This has changed because of potential naming conflicts with pools derived from different configurations which reference the same ApplicationModule type. 9.0.3 production now uses the ApplicationModule configuration name as the ApplicationPool name. This is identical to the naming strategy that was used by the BC4J web application framework in 9.0.2.

Applications which have hardcoded an application pool name should be aware of this change and migrate the application to use the client data model configuration name to acquire a pool instance from the PoolMgr.

Default RELEASE_MODE Value Changed from Reserved to Stateful

The default value of the RELEASE_MODE configuration property has changed from Reserved to Stateful. This change was made because of potential scalability issues when using a Reserved release mode. This change should only affect applications which use the BC4J data web beans and are releasing the web bean resources with oracle.jdeveloper.html.DataWebBeanImpl.releaseApplicationResources(). If a Reserved release mode is still required then the application developer should use oracle.jdeveloper.html.DataWebBeanImpl.releaseApplicationResources(oracle.jbo.common.PropertyConstants.AM_RELEASE_RESERVED) or modify the RELEASE_MODE property of the ApplicationModule configuration.

Project not Saved When Invoking the BC4J Tester (2526963)

The BC4J tester will attempt to compile the project before displaying the tester dialog. However, it will not save the project even if the Save Before Compile IDE preference, Tools | Preferences | Environment, has been specified.

Cookie Configuration does not Match the Specified Configuration

If you receive the exception, 30018 - The cookie configuration does not match the specified configuration, it indicates that your web application includes two JSP pages/servlets that declare the same application id but have declared different configuration names (see the javadoc for oracle.jbo.http.HttpContainer.findSessionCookie and/or oracle.jbo.common.ampool.SessionCookie for a definition of the application id.)

In order to correct the issue it is necessary to make the configuration name consistent for all usages of the same application id. Please note that this exception may be thrown even if the configuration names are equal in a non case sensitive manner.

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

When accessing the BC4J corba server you need to set the following properties before initializing the ORB. These properties are set internally but in this case it's too late because OC4J initializes the ORB at startup.

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:

   
        -Dorg.omg.CORBA.ORBClass=com.inprise.vbroker.orb.ORB 
  
        -Dorg.omg.CORBA.ORBSingletonClass=com.inprise.vbroker.orb.ORBSingleton 
  
        -Djavax.rmi.CORBA.UtilClass=com.inprise.vbroker.rmi.CORBA.UtilImpl 
  
        -Djavax.rmi.CORBA.PortableRemoteObjectClass=com.inprise.vbroker.rmi.CORBA.PortableRemoteObjectImpl 

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

Creating a jsp application for a bc4j session facade results is an ejb-ref entry in the web.xml of the that project. If you change the interface type of that facade, from local to remote or vice versa, then you must update ejb-ref entry in web.xml. For example if you change the bean type from remote to local then you must replace the <ejb-ref> section in web.xml with the appropriate <ejb-local-ref> tags.

 

New Composed Details Vanish Until the Master is Posted

In the case of a composition association between two entities where the association does not involve Primary Key on the master side, new details are temporarily lost if the foreign key attribute on the master is modified after creating the new details. The rows come back with fixed foreign key attributes when the master entity is posted.

A workaround is to override set<FKAttribute> method in the master entity and also fix the FK attribute on the detail entities before updating the attribute on the master entity itself.

 

Issues with Business Components Bound to EJB Entity Beans

We recommend that you don't rename the session bean generated when you create an EJB application module; renaming the session bean will cause the Business Component Browser to fail. (2507318)

Attributes marked as history columns in an EJB Entity Facade are not updated. The workaround is to specify a data source for your application module, as follows:

  1. In the navigator, right-click your EJB Application Module and select Configurations...
  2. In the Configuration Manager, click Edit.
  3. In the Configuration Dialog, select the Application Module tab and select the JDBC Connection Required checkbox.
  4. Select JDBC Datasource in the dropdown list, and enter a datasource name, for example: jdbc/oeCoreDS. If you do not know what to use for the datasource name, use the value of jbo.server.internal_connection (select the Properties tab in the Configuration Dialog to see this value). (2514072)

Running the Caching and VARRAY Samples

The BC4J caching and VARRAY samples were created to work with the 9.0.1 version of the database. They may not work with the 8.1.7 or 9.0.2 versions.

Running JDeveloper/BC4J 3.2.3 Runtime on 9.2 Database Using Oracle Object Types

If you are using Oracle Object Types, the JDeveloper/BC4J 3.2.3 runtime will not work with a 9.2 database.

Migrated 9.0.2 BC4J Applications with Mandatory DBSequence Attributes Cause Validation Failure (2611269)

Attributes of type DBSequence cannot be Mandatory, since the database generates values for the sequence only upon post operations. This was not enforced in release 9.0.2, but it is enforced in release 9.0.3, so migrated applications violating this will cause validation errors.

To fix this problem in migrated 9.0.2 BC4J applications:

  1. In the System Navigator, double-click the entity object to open the Entity Object Wizard.
  2. Select the Attribute Settings node.
  3. Select the DBSequence attribute in the Select Attribute list.
  4. Reselect DBSequence in the Attribute Type list.
  5. Click OK to close the wizard.

Deploying to OC4J and Oracle9iAS

The information in this section supersedes information contained in the "Packaging and Deploying" book in the main JDeveloper Help Table of Contents. For specific information about deploying to other J2EE servers such as Apache Tomcat, BEA WebLogic, and JBoss, refer to the Help topic "Ways to Deploy J2EE Applications" in the "Packaging and Deploying" book, which you can access by choosing H elp | Help Topics . The deployment topics covered in this Release Notes section include the following:

OC4J Version Shipped with Oracle9i JDeveloper 9.0.3

By default, Oracle9i JDeveloper Version 9.0.3 lets you fully test your J2EE applications in JDeveloper using the embedded OC4J server before deploying to a target application server. The OC4J 9.0.3 embedded server resides in the following location in JDeveloper.

  • On Windows installations: < jdev_install> /system####/oc4j-config
  • On non-Windows and multi-user installations: < jdev_user_dir> /system####/oc4j-config

JDeveloper also ships a copy of OC4J 9.0.3, which you can run in standalone mode. The files for the OC4J 9.0.3 standalone server are located 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

Deploying JDeveloper 9.0.3 Applications to Standalone OC4J

The following table summarizes application deployment support in Oracle9i JDeveloper Version 9.0.3 to Oracle9iAS Containers for J2EE (OC4J) using admin.jar in standalone mode. The OC4J versions are listed from left (most recently released) to right (oldest version).

Application OC4J 9.0.3 OC4J 9.0.2.x
J2EE Supported* Supported**
BC4J Supported Not currently supported

J2EE web services: Java class or EJB

Supported Supported

J2EE web services: PL/SQL

Supported

Not supported

J2EE web services: JMS

Supported Not supported

* This version of OC4J is J2EE 1.3 compliant. Deployment of JSP 1.2, Servlet 2.3, and EJB 2.0 applications are supported.

** This version of OC4J is J2EE 1.2 compliant. Deployment of JSP 1.1, Servlet 2.2, and EJB 1.1 applications are supported.

OC4J in Standalone Mode Requires Correct tools.jar File

OC4J requires a file called tools.jar in <jdev_install>/jdk/lib . This file must match the version of the JDK being used to run OC4J. If it does not, you may have problems running applications in standalone OC4J.

  • If you are using the base installation of JDeveloper ( jdev903_base.zip), you will need to copy tools.jar from your JDK to <jdev_install>/jdk/lib .
  • If you are using the full installation of JDeveloper ( jdev903.zip), and are using a JDK other than 1.3.1_02 to run OC4J , you will need to copy the tools.jar included with your JDK to <jdev_install>/jdk/lib .
  • If you are using the full installation of JDeveloper ( jdev903.zip) with the included JDK 1.3.1_02 to run OC4J , you do not have to do anything.

OC4J 9.0.3 supports JDK 1.3.1_02 and JDK 1.4. Oracle recommends that you use the tools.jar from the JDK when running OC4J in standalone mode.

Deploying JDeveloper 9.0.3 Applications to Oracle9iAS

You deploy JDeveloper 9.0.3 applications to Oracle9iAS using:

  • Enterprise Manager (EM): The Oracle Enterprise Manager web site provides a process for deploying new applications into an OC4J server using the OC4J Enterprise Manager Home Page. You can also use the OC4J Home Page for high-availability, clustering, and other services.
  • Distributed Configuration Management (DCM): The DCM servlet is installed and configured by default in Oracle9iAS 9.0.3. If you are deploying to Oracle9iAS 9.0.2.x, you must install the DCM servlet manually.

See also: For more information on Oracle9iAS administration, management, and deployment of J2EE applications to Oracle9iAS via either DCM or Oracle HTTP Server, see the "Oracle9i Application Server Administrator's Guide" which is provided with the Oracle9iAS documentation library.

The following table summarizes application deployment support in Oracle9i JDeveloper Version 9.0.3 to Oracle9iAS Release 9.0.2 and 9.0.3 application server using these deployment tools:

Application Deployment Tool Oracle9iAS 9.0.3 Oracle9iAS 9.0.2.x
J2EE Enterprise Manager Supported*** Supported **
J2EE Distributed Configuration Management (DCM) * Supported*** Supported **
BC4J Enterprise Manager Supported Not currently supported
BC4J Distributed Configuration Management (DCM) * Supported Not currently supported
J2EE web services Enterprise Manager Supported Supported****
J2EE web services Distributed Configuration Management (DCM) * Supported Supported****

* For Oracle9iAS 9.0.2, requires installation of the DCM Servlet, deployed to a running Enterprise Manager OC4J instance.

** This version of OC4J is J2EE 1.2 compliant. Deployment of JSP 1.1, Servlet 2.2, and EJB 1.1 applications are supported.

*** This version of OC4J is J2EE 1.3 compliant. Deployment of JSP 1.2, Servlet 2.3, and EJB 2.0 applications are supported.

**** Only J2EE web services based on Java classes or EJBs are supported in iAS 9.0.2.x. (PL/SQL web services and JMS web services are not supported on 9.0.2.)

Installing the the DCM Servlet to Deploy to Oracle9iAS 9.0.2.x

For successful deployment of applications created in JDeveloper Version 9.0.3 to OracleiAS 9.0.2.x via the DCM servlet, you must complete these steps:

  1. Install the DCM Servlet, Oc4jDcmServlet.ear, to a running Oracle Enterprise Manager instance. This servlet is required to run in the same OC4J instance (same JVM) as the Enterprise Manager servlet. The DCM Servlet is located in:

     

    <jdev_install>/dcm/lib/Oc4jDcmServlet.ear

  2. Deploy the Oc4jDcmServlet.ear using the following two admin.jar commands. Enter the commands exactly as follows substituting ${ xxx} parameters with the actual values for your configuration. For example, substitute ${ORACLE_HOME} with the Oracle Home directory for your iAS configuration. All the other parameters must have the exact literal values shown (adjustments for the paths to Java and Oc4jDcmServlet.ear).

     

    1. Java -jar ${ORACLE_HOME}/j2ee/home/admin.jar ormi://${EM_OC4J_HOST}:${EM_OC4J_PORT} ${IAS_ADMIN_USER} ${IAS_ADMIN_PASS} -deploy -file Oc4jDcmServlet.ear -deploymentName Oc4jDcmServlet
    2. Example

      Java -jar ${ORACLE_HOME}/j2ee/home/admin.jar ormi://localhost:1811 ias_admin manager -deploy -file Oc4jDcmServlet.ear -deploymentName Oc4jDcmServlet

    3. Java -jar ${ORACLE_HOME}/j2ee/home/admin.jar ormi://${EM_OC4J_HOST}:${EM_OC4J_PORT} ${IAS_ADMIN_USER} ${IAS_ADMIN_PASS} -bindWebApp Oc4jDcmServlet oc4j-dcm-servlet emd-web-site /Oc4jDcmServletAPI
    4.  

      Example

      Java -jar ${ORACLE_HOME}/j2ee/home/admin.jar ormi://localhost:1811 ias_admin manager -bindWebApp Oc4jDcmServlet oc4j-dcm-servlet emd-web-site /Oc4jDcmServletAPI

      where the username and password for Enterprise Manager is ias_admin/manager.

Deployment Issues

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

You may get the following error when running a UIX web application deployed to a non-Oracle application server, or clicking the BC4J Admin link on a BC4J JSP application deployed to a non-Oracle application server:

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

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.

    Note: Be sure to use the parent directory, not the cabo directory itself.
  7. Repackage the webapp.war file.
  8. Repackage the bc4j.ear file.
  9. Redeploy the modified bc4j.ear file.

If you are running a full BC4J UIX application, make the changes inside JDeveloper:

  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.

    Note: Be sure to use the parent directory, not the cabo directory itself.
  5. Save the file and redeploy the application to WebLogic.

Deploying Web Applications to Apache Tomcat 4.1

If you are deploying to Apache Tomcat 4.1, you will have to copy the BC4J runtime libraries into tomcat_install/common/lib , not tomcat_install/lib . See the help topic "Deploying Web Applications to Apache Tomcat" for more information.

UIX JSP Tags not Detecting Shared Installables on Tomcat 4.04 and 4.1 (2525319)

When a UIX JSP page is run the uix jsp tags produce output with references to cabo images. When deployed to Tomcat 4.04 and 4.1, some images do not render correctly because of incorrect links on the generated html.

The solution is to configure Tomcat one additional step, enabling "crossContext" for that Context. For example, you can add the following line to server.xml:

   
        <Context path="/technology/uix" docBase="uix" debug="0" crossContext="true"/>

This will cause a webapp at "/uix" to be able to detect the "/cabo/" shared installables. You need one such line for every web app that will need access to the shared installables.

Problems in JSP Applications Deployed to Tomcat (2615358)

Due to a Tomcat bug, you may get the following error message when running a JSP application deployed to tomcat:

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:
    <init-param>
      <param-name>enablePooling</param-name>
      <param-value>true</param-value>
    </init-param>
    
  3. Change the value of <param-value> to false.

Deploying BC4J Projects to WebLogic 7

The online help contains information on deploying BC4J projects to WebLogic 6.x. For detailed instructions on deploying BC4J projects to WebLogic 7, see the How To documents on OTN ( /products/jdev/index.html).

UIX JSP - Missing blaf.xss in WebLogic (2597479)

If you are running an UIX JSP and you get an error similar to "Required XSS file c:\bea\user_projects\jdev\applications\DefaultWebApp\styles\blaf.xss" it may be due to a problem with virtual paths in WebLogic. To resolve this issue, you'll need to modify the uix2-install.zip that WebLogic is loading (the original location for this file is <jdev_home>/jdev/redist).

The uix2-install.zip file has a directory structure that includes the cabo directory in all paths. For example, tliner.gif is in cabo\images. The cabo directory needs to be removed so that WebLogic doesn't confuse it with the virtual directory cabo that exists after you have deployed your application to WebLogic.

Modify uix2-install.zip to remove cabo path:

  1. Uncompress the uix2-install.zip file into a temporary directory (for example, c:\temp\). If you are using the jar command, you can use the command jar -xf uix2-install.zip.
  2. Create a new zip file based on all the files in the cabo directory, but not including the cabo directory in the archive path. If you are using the jar command, cd into the cabo directory, then use the command jar cvf uix2-install.zip *
  3. Copy the new war file over the original uix2-install.zip file in your WebLogic server path.

Type Incompatibilities when Deploying to WebLogic

Some applications deployed to WebLogic may have type incompatibilities if you use the BEA supplied Oracle classes. To ensure that you don't have these problems, replace the supplied classes12.zip and classes12.jar file in your server's lib directory with classes12.jar in the <jdev_install>/jdbc/lib directory.

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

WebLogic6.1 fails to understand 'Windows-1252' encoding in the xml files. This is a bug in the xmlparser in WebLogic6.1. To deploy applications in JDeveloper to WebLogic6.1 change encoding to an IANA encoding that WebLogic6.1 recognizes. It is recommended to use UTF-8 encoding. Japanese users need to use Shift_JIS.

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

Now create a new project and your application.

Multiple Deployments of an EJB on WebLogic (2577330)

When deploying to WebLogic, if you use the same EJB in two or more different applications, the second deployment will likely lead to a JNDI name collision. Therefore, you must rename the JNDI name of the EJB for the second deployment as follows:

  1. Right-click weblogic-ejb-jar.xml, and select Set tings .
  2. Under Enterprise Java Beans, select the relevant ModuleBM bean. The EJB tab is displayed on the right.
  3. In the EJB tab, change the JNDI Name field so that it is different from any other JNDI Name in weblogic-ejb-jar.xml and any other EJBs that are already deployed to WebLogic.
  4. Deploy the application accessing the EJB to WebLogic. During deployment, the IDE automatically fills in the weblogic.xml with appropriate EJB references.

Deploying an EJB Throws CompilationException Error (2485297)

If you deploy an EJB and get a CompliationException error in the JDeveloper console, you may need to use a different compiler. Use this procedure to ensure that the ojc Java compiler is used instead of modern:

 

  1. Add a <library> element in <jdev_install>/j2ee/home/config/server.xml to point to where ojc.jar is located. Specifically, for the OC4J that ships with JDeveloper, add this element at the end of server.xml. It should be the last child element of application-server: If preferred, an absolute path is also supported. An example with absolute path and relative path follow:
                                       
    <library path="D:\jdev903\jdev\lib\ojc.jar"/>
                                    
                                       
    <library path="..\..\..\jdev\lib\ojc.jar"/>
                                    

    If ojc.jar is not physically located on the same machine as the OC4J installation, copy ojc.jar from the JDeveloper installation to the machine running OC4J and then update server.xml with an appropriate library element.

  2. Launch OC4J with a -Dbuild.compiler=ojc property. For example:
                                       
    java -Dbuild.compiler=ojc -jar oc4j.jar
                                    

Incorrect Copy or Missing Application Deployment Descriptor Files in the EAR File (2548426)

If you create a J2EE deployment profile without specifying default connection or target platform information in the Settings | Platform panel, JDeveloper will produce a vanilla J2EE EAR file that does not contain any platform-specific deployment descriptor files, such as orion-application.xml, even if such files are contained in the project.

If the EAR file is missing the needed platform-specific deployment descriptor files or contains an auto-generated file instead of the file from your project, then you need to specify either a default connection with the deployment profile or a default target platform (when not deploying to a connection) in the profile's Platform panel.

To select a default connection or target archive platform, use this procedure:

  1. Right-click the deployment profile (for example webapp1.deploy), and choose Settings from the context menu. The Deployment Profile Settings page appears.
  2. From the Platform panel, select a default connection from the Default Connection drop-down list box.
  3. Alternatively, you may instead select an archive target platform from the Archive Target Platform drop-down list box if you need to assemble archives without deploying them to a server.
  4. Click OK to save these selections.

If you select an Oracle server as the default connection or target platform, the orion-application.xml file for this deployment should now be correct.

How to Create VisiBroker Naming Mode Profile (2591970)

Visibroker naming mode is no longer created by default. You will need to do this manually by creating deployment profiles for Visibroker mode. This will create the VBBind and VBColocate mode profiles. Copy the bind mode profile and edit the copy it to make it a Naming mode profile.

OC4J Memory Requirements

By default, OC4J preloads a large number of classes to improve performance. Because of this, you may get a java.lang.OutOfMemoryError when you attempt to deploy to OC4J.

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 512MB 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

EJB Issues

Compound Primary Key (2512678)

OC4J does not support CMP entity beans with container managed relationships and compound primary keys.

Miscellaneous EJB Issues

  • Cannot create a 1:1 bi-directional CMR for entity beans when database tables are reverse engineered. (2447364)

JClient Issues

 

JTree Binding is not Editable (2061405)

When you create a Java Tree control you can define the property EDITABLE in the property inspector. If this property is set to TRUE and you edit a node on the tree, you will receive an exception. The binding for the tree control does not support this being editable.

Tree Editor Currently does not Support Recursive Rules (2577052)

The tree editor checking mechanism fails on valid recursive rules. This means that even if you created a valid recursive rule in the editor, the validation check will fail and it will not generate code for you.

The following describes how to create a recursive tree.

Create a default AppModule using Dept and Emp. Now create an Association EmpSelfAssoc using Emp.Mgr as a destination and Emp.Empno as a target. Then create a ViewLink EmpSelfAssoc using the Association mentioned above.

If you now look in the EmpView definition file you will see a named reference to this ViewLink (the ViewLinkAccessor).

You can now create 2 types of recursive trees.

With Dept as Root:

                                  // Create a JClient Tree model using the 'DeptView1' viewobject  // instance as the root of the tree.  jTree1.setModel(JUTreeBinding.createTreeNodeTypeBinding(panelBinding, jTree1,                   "DeptView1", null, "DeptView1Iter",                   // define 2 rules.                      new JUCtrlHierTypeBinding[] {                      // If the parent node is of type 'mypackage.DeptView' find                      // and use its 'EmpView' accessor.                         New JUTreeAccessorTypeBinding("NodeType1", "mypackage1.DeptView",                             "Dname", "EmpView", null, null, null),                                  // If the parent node is of type 'mypackage.EmpView' find                                 // and use its 'MgrEmpView' accessor.                                    New JUTreeAccessorTypeBinding("NodeType2", "mypackage1.EmpView",                                        "Ename", quot;MgrEmpView", null, null, null)                     }                                                 )  );
                            

Emp only with Emp as Root:

                                 // Create a JClient Treemodel using the 'EmpView1' viewobject  // instance as the root of the tree.  jTree1.setModel(JUTreeBinding.createTreeNodeTypeBinding(panelBinding, jTree1,                    "EmpView1", null, "EmpView1Iter",                     // define 1 rule                        new JUCtrlHierTypeBinding[] {                        // If the parent node is of type 'mypackage.EmpView' find and                        // use its 'MgrEmpView' accessor.                          New JUTreeAccessorTypeBinding("NodeType1", "mypackage1.EmpView",                              "Ename", "MgrEmpView", null, null, null)                        }                ) );
                            

Remembering the following rules:

  • BC4J defines definitions in packages. You will find the following type of definitions:
    • entities and associations (object mapping to tables and relationships)
    • viewobjects and viewlinks (object mapping to queries and their relationships)
    • appmodule (definition of how you will be using viewobjects and viewlinks)
  • The AppModule will define an application model. In this application model you define named usages/instances of viewobjects. When you create an AppModule all these viewobjects are instantiated on the middle tier and you can get to them by name.
  • The root of the tree maps to one of these instances. This is required to be able to populate the first level. The rest of the tree is populated by rules and the viewobject instances are created dynamically. That is why the root uses a name that matches a view object in the appmodule and every rule matches a view object definition in your package.

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

When attempting to run a JClient webstart application in Internet Explorer 5.5 using the local.jsp link generated by the JClient Web Start Wizard, Java Web Start does not get launched. Instead IE 5.5 will prompt you to open a file.

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.

JComboBox Bound to JClient LOV Breaks with Seteditable (FALSE) ( 2591283)

A ComboBox control with a JClient LOV binding will not display a default selection for the bound attributes. This can occur when you create the combobox and set the editable field to true, and then use the Code Editor to change the field back to false. The workaround to view the row selection is to expand (drop down) the combobox.

JClient Java Web Start Throws Security Exception in Local Mode (2566584)

When you create a JClient application and try to run in Local mode (the default deployment mode for running in JDeveloper) using Java Web Start, the Java security exception AccessControlException is thrown. Specifically, the AccessControl exception is thrown when an attempt is made to read the oracle.xdkjava.compatibility.version system property. Other deployment modes do not have this problem because in those cases the JAR files have to be signed anyway. The workaround depends on the version of Java Web Start you are using:

  • If you are using Java Web Start version 1.0.1 then you can specify the system property using property tags in the resources section of the JNLP file:

    <property name="oracle.xdkjava.compatibility.version" value="true" />

  • If you are using Java Web Start version 1.0.1_02 or later, you will have to sign the JAR files. Java Web Start 1.0.1_02, for an unsigned application, does not allow the system property be specified using property tags. (The only exception is, if the property name starts with javaws. or jnlp.)

    See http://www.oracle.com/technetwork/java/javase/javawebstart/index.html

Source Control Support Issues

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

If the Oracle9i SCM Repository Object Navigator is used to download or synchronize files to the file system, JDeveloper does not recognize the downloaded files as Oracle9i SCM files. This is because mapping information stored by the RON is not available to JDeveloper.

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

  • Use the Workarea Wizard in JDeveloper to create your workarea. The files in the workarea will be automatically downloaded to the workarea download folder.
    OR
  • Use the Folder Mappings tool in JDeveloper to specify a workarea download folder and map folders you want to download to the file system. You can use Folder Mappings to download files in a workarea created in the RON.

Oracle9i SCM: Oracle9i SCM Folders Cannot be Checked In Through JDeveloper (2108198)

It is not possible to check in Oracle9i SCM folders through JDeveloper. Merging may result in checked out folders being displayed in the merge results window, but they cannot be checked in. Also, you may discover checked out folders using the List Checkouts utility. To check folders in, you must use the Oracle9i SCM Repository Object Navigator.

Oracle9i SCM: Using JDeveloper and the Oracle9i SCM VHV

After performing source control operations using JDeveloper, such as merging or checking files in or out, the VHV should not be used to perform further operations on these files.

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

Oracle9i JDeveloper is certified to work with Oracle9i Software Configuration Manager which is part of Oracle9iDS Release 2 v9.0.2. Note that Oracle9i JDeveloper will not prevent you from connecting to Oracle Software Configuration Manager 6i Release 4.1.1 or above, but this is not a certified combination.

Modeling Issues: General

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

If model element, or diagram, files are stored in a source control system, it is recommended that any source control operations are performed on those files before they are loaded into memory. If a source control operation is performed on a model element or diagram file while it is currently held in memory, any changes to the copy of the file currently held in memory could be overwritten. To ensure that a model element or diagram file is not currently being held in memory, restart JDeveloper, then perform the source control operation before opening the model element or diagram.

Move Class Does Not Rename Constructors

If you rename a modeled class on a class diagram and do not have the source file for that class open, any constructors on that class are not renamed to match the name change of the class. The project will then not compile.

Note: this is only a problem if you have synchronization between the modeled element and the source code turned on (default). If you have turned synchronization off, then the project will compile, but the constructors in the source file are not renamed.

The workaround is to:

  • Open the .java source file for the modeled class you want to rename, then rename the modeled class.
  • OR

  • Rename the constructor in the Java file by hand once you have renamed the modeled class on the diagram.

Modeling Issues: Modeling Java Classes, BC4J or EJB Components

Class Diagram Marked as Modified on Opening if it Contains EJBs (2441294)

If a class diagram containing modeled Enterprise JavaBeans is opened, the diagram is automatically identified as modified even if no changes have been made to the diagram.

Modeling Issues: Modeling Activities for E-Business Integration

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

A bug in AQ propagation (2146152) means that remote propagations fail when using private database links to specify the destination. The E-Business Integration Generator presently generates and deploys remote propagations that use public database links in order to circumvent this problem.

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.

Exception Thrown When User Has Not Been Granted Rights to DBMS_AQADM (1974543)

The AQ deployer does not presently detect whether or not a database user has been granted execute rights to the DBMS_AQADM package. In the case that the database user does not have this right, each AQ deployment step will be reported with a separate failure message in the deployment log window.

Using HTTP Propagation on a 9.0.1 Database

If you use a 9.0.1 database and wish to use HTTP propagation, you must download and install an upgrade to the XML Developer's Kit for Java from OTN, version 9.0.2.0.0C. Instructions on how to install this upgrade into the database are provided in the download itself. The xsu12.jar file in the lib subdirectory of the download should also replace any existing version of xsu.jar in the classpath of the webserver that runs the AQ propagation servlet.

Web Services Issues

SOAP Web Service does not Start New Session (2218102)

When you have a SOAP web service created using JDeveloper that uses a scope of "session", it does not start a new session when accessed by a different client.

Using JMS Web Services with OC4J

OC4J/JMS is not supported in Oracle9iAS 9.0.3 or OC4J 9.0.3. OJMS is the JMS interface onto Oracle AQ in the database, and it is Oracle's J2EE 1.3 compliant JMS provider.

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 ()C4J) - Java Message Service (JMS) - Frequently Asked Questions" on the Oracle Technology Network, /tech/java/oc4j/htdocs/OC4J-JMS-FAQ.html.

Creating JMS Web Services that Use Both Send and Receive Operations

When you create a JMS web service that uses both a send and a receive operation you must explicitly specify different connection factories and destinations for the send operation and the reply-to operation, unless you are certain that the web service client wants to send to and receive from the same destination.

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.

Cannot Create PL/SQL Web Service for Oracle9i Personal Edition (2591731)

It is not possible to use Oracle9i Personal Edition database as the source of PL/SQL packages to publish as web services, because SQLJ does not correctly recognize Personal Edition databases, and hence does not work as required by the PL/SQL Web Service generator.

If you attempt to publish a PL/SQL package from a Personal Edition database, generation will fail with an exception message. However you can continue your other work in JDeveloper.

Deleting Web Services (2592996)

When the active project in the Navigator is displayed in categories view (select the project, and choose Project | Show Categories) and the Show All Files has been selected for the source files (select Source for the project, then choose Projects | Show All Files) then web service nodes will erroneously show up in this category.

This is only a problem if you delete a web service by right-clicking it in Source and selecting Delete Web Service, as it causes JDeveloper to hang. To delete the web service, switch the project out of category view (using Project | Show Categories), delete the web service, and then switch back to category view.

Java Classes Compiled with JDK 1.4 Cannot be Deployed as Web Services (2385468)

Java Classes compiled using the JDK 1.4 compiler will cause an exception while generating server-side web service artifacts. The workaround is to ensure that all web service classes are compiled using a pre-1.4 JDK.

Running the PL/SQL Web Service Generator with JDK 1.4

To work properly under JDK 1.4, the PL/SQL web service generator needs to be run with Oracle's JDK 1.4-specific JDBC drivers. These can be downloaded from , and should be unzipped into the < jdev_install> /jdbc/lib directory.

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

with

AddJavaLibFile ../../jdbc/lib/ojdbc14.jar

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

Deployment Target Type Changed on Canceled Operation (2174089)

If you change the default deployment target type in the Web Services Wizard, and then click Cancel, the change to the default deployment target is saved anyway. To remedy this problem, invoke the wizard again, restore the name of the default deployment target then click Cancel again.

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

If you receive a runtime error when calling a web service from a generated stub, and the returned value is an unrecognized XML type, you should use a command similar to the following to deserialize the XML type into a string.

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)

Modeled web services on class diagrams cannot be based on PL/SQL or JMS web services.

Cannot Rename a Web Service PL/SQL Wrapper Class Using Refactor (2433468)

Do not rename a PL/SQL wrapper class for a PL/SQL web service using Refactor, because it will not update the PL/SQL web service or the deployment descriptor and you should rename these manually. Refactor does, however, work for Java web services.

Renaming Methods with Primitive Signatures Using the Web Service Modeler Will Result in Method Duplication (2510663)

If you have a method on a modeled web service whose signature consists of primitive types, renaming the method will cause a new method to be created, but the old method will not be unpublished. This results in an additional method being published, which must be unpublished manually.

Creating a Stub with to a .NET Web Service with Many Methods (2776932)

When you create a stub to a .NET web service with many methods you may find that JDeveloper hangs. The workaround is to download the WSDL and generate the stub locally.

Cannot Create WSDL Documents (2793633)

You cannot create a WSDL document using the New WSDL Document dialog from the New Gallery.

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 Oracle9i JDeveloper, you must first install the WebDAV extension from the Extension Exchange on OTN. For more information, refer to Installing Oracle9i JDeveloper Version 9.0.3.

UNIX-Specific Issues

Right Clicking on an Item within the System Navigator Results in an Error Icon on HPUX (2602269)

The error icon (a page with a circle with a slash in it) is misleading. Perform a left click to get rid of the error icon and to invoke the context menu for that item.

Embedded OC4J will not Terminate Via Run->Terminate on Redhat 2.1/AS (2606290)

This is caused by SUN JDK bug #4344135/4755503 within the HotSpot JVM of SUN JDK 1.3.1.02 for Linux that is fixed in SUN JDK 1.4 for Linux. A workaround has been implemented for all other supported Linux distributions and versions. For Redhat 2.1/AS, JDeveloper has to be exited for the embedded OC4J process to terminate. Another option is to use the Classic JVM. This preference setting can be done by doing a Project | Project Settings..., choosing Runner, and then changing Virtual Machine: to Classic.

Netscape Communicator Prior to Version 6.X does not Support Editing of Textarea Elements

On the Solaris platform, Netscape Communicator prior to version 6.x does not support editing of textarea elements that are modifiable (not read-only). If you use an earlier version of the Netscape browser for Solaris and generate JSP pages using the BC4J JSP wizards the textarea elements with Integer attribute values will not be editable. The workaround is to upgrade your Netscape Communicator to 6.0 or later.

Warning Message When Running JDK 1.4

When running JDeveloper on Solaris using JDK 1.4, you may receive a message stating that the directory ~/.java/.userPrefs is being created. The directory is automatically generated by Java, and you can ignore this message.

Issues with the Hotspot JVM in SUN JDK 1.3.1.02 for Linux (2458363)

There are issues within the Hotspot JVM in SUN JDK 1.3.1.02 for Linux that show up during debugging of java processes started within JDeveloper. Debugging session can error out with messages like the following:

#HotSpot Virtual Machine Error, Internal Error
        #Please report this error at
        #http://bugreport.sun.com/bugreport/index.jsp
        #  
        #Error happened during: mark sweep
        #
        #Error ID: 4652414D450E43505002F0
        #
        #Problematic Thread: prio=1 tid=0x808b0b8nid=0x20df runnable

        #
        Debugger disconnected from local process.
        Process exited with exit code 0.

When these types of issues are encountered, Oracle recommends using the Classic JVM. This preference setting can be done by doing a Project | Project Settings..., choosing Runner, and then changing 'Virtual Machine' to 'Classic'.

Some Accelerator and Modifier Keys May Not Work on Non-Windows Operating Systems

Since differing desktops will reserve keys for it's own functionality, conflicting JDeveloper accelerator and modifier keys will need to be re-mapped, accordingly. This can be done within the Preferences page for Accelerators by doing a Tools | Preferences... and selecting Accelerators.

Debugging (Especially Important on Non-Windows Platforms)

In order to use the debugger, you must use a Java 2 SDK (often called a JDK). You should not try to debug using a Java 2 Runtime Environment (often called a JRE). The Java 2 Runtime Environment does not include the files necessary for debugging with the HotSpot or Classic virtual machines. If you try to use a Java 2 Runtime Environment, you may see the following error message displayed in the log window when you try to start the debugger:

Debugger attempting to connect to local process......
Error occurred during initialization of VM
Could not find -Xrun library: libjdwp.so
......
Debugger unable to connect to local process.

File | Print on Any Editor Results in a Small, Non-resizeable Print Dialog on Some Linux Desktops (2524819)

Doing a File | Print on any editor within JDeveloper when running on a KDE2 desktop results in a print dialog that is small and non-resizeable, resulting in the loss of printing functionality. This is caused by SUN JDK bug 4342102/4756345 within SUN JDK 1.3.1.02 for Linux that is projected to be fixed in SUN JDK 1.4 for Linux. As a workaround, use the GNOME desktop.

Windows-Specific Issues

Using interMedia with a JSP Application on Windows XP

If you have a JSP application that uses interMedia, in an Explorer browser on an XP operating system, there may be some problems with certain types; it has been found that MP3 files sometimes have problems running on some players. There may be other files that will also not run.

To work around the problem, first make sure you have the latest updates for Explorer/XP. Also make sure you have the latest updates for your player. Try other players (with updates) as well. If this fails, try another browser such as Netscape, which has played back MP3 files successfully in testing.

Long Startup Time on Windows (2435555)

If JDeveloper takes a long time to start up on Windows, it may be due to real time scanning of .zip files by an antivirus program. The default settings of the following virus checkers are known to cause large performance problems when starting up JDeveloper:

  • Trent PC-Cillan 2000 or 2002
  •  
  • Symantec Norton Antivirus
  •  
  • Computer Associates eTrust

To improve the startup time of JDeveloper, you should configure your virus checker's real time protection so that it does not scan inside Zip files.

Miscellaneous Issues

Using the OCI Driver with JDeveloper

In order to create connections to an Oracle database using the OCI driver, the OCI client version and the JDBC driver version must match. If the versions are not the same, testing or opening the connection will fail. Depending on the version of the OCI client, one of the following errors may be reported:

  • Character Set Not Supported !!: DBConversion
  • oracle.jdbc.oci8.OCIEnv.envCharSetId
  • java.lang.NoSuchFieldError: oracle.jdbc.oci8.OCIEnv.envCharSetId

In either case, you must either install the OCI client version that matches the JDBC drivers included with JDeveloper, or replace the JDBC drivers (located in $JDEV_HOME\jdbc\lib) with the drivers in $ORACLE_HOME\jdbc\driver.

Using CodeCoach on a Project Using J2SE 1.4.1 (2614183)

When using CodeCoach on a project using J2SE 1.4.1 it may fail to produce results. The workaround is to go to the project's properties, select the CodeCoach panel and deselect the advice for Hashtable, StringBuffer and Vector objects.

Remote UI Debugging

When you debug an application remotely, the classpath must include one of these in addition to ...\jdev-rt.jar.

  • %CLASSPATH%
  • .
  • The path to the application.

One of these is required because the -cp is overwritten.

For example, find this section in the directory containing the class to be run:

java -ojvm -XXdebug -cp ...\jdev\lib\jdev-rt.jaroracle.jdevimpl.runner.uidebug.debuggee.Debuggee <MainClass>

Replace it with this:

Java -ojvm -XXdebug -cp .;...\jdev\lib\jdev-rt.jaroracle.jdevimpl.runner.uidebug.debuggee.Debuggee <MainClass>

Previewing uiXML for Business Components Pages

Before previewing uiXML for Business Components pages, make sure to compile your Business Components project and to compile the Client Data Model (.cpx) file in the client project. Compiling these files will ensure that the Business Components are accessible and that the .cpx file is present in your project's output path.

UIX Runtime Only Supports Latin-1 URL Parameter Names (2610038, 2409499)

The UIX BasePageEncoder automatically decodes URL parameter values but currently does not decode URL parameter names. In event handlers, this can cause the parameter values not to be found when accessed by the decoded parameter name, since they were stored in the parameter map using the encoded parameter name. This limitation will be removed in future UIX Runtime versions. You can workaround this problem by taking care to use Latin-1 parameter names.

The uiXML for Business Components wizards generated code uses the View attribute names as URL parameter names. If your View attribute names contain characters outside of the Latin 1 (ISO-8859-1) character set, you will have to explicitly add Latin 1 parameter names to the form controls for updating and creating rows. For example, in the pageLayout:

   
        <bc4j:messageTextInput attrName="nonLatin1ParameterName" parameterName="latin1Name" />

And in the event handler:

   
        <bc4j:setAttribute attrName="nonLatin1ParameterName" parameterName="latin1Name" />

Cannot Compile Included JSPS: Variable not Found in Class Error (2370587)

This error occurs when you try to compile a JSP in JDeveloper which is supposed to be included in other pages and is not intended to be compiled standalone, as JDeveloper attempts to compile all JSPs on their own.

JDK 1.4 and the Assert Keyword (2394626,2394613)

The parser and the code editor do not know about the 'assert' keyword yet. The workaround to enable JDK 1.4 assert keyword support
in the code editor is to uncomment the following line in the $(JDEV_INSTALL_DIR)\jdev\bin\jdev.conf file, and restart JDeveloper:

    
                               AddVMOption -DEDITOR_ENABLE_ASSERT=true
                            

Scan Source Paths to Determine Project Contents

It is now possible to exclude files from dynamic projects by modifying the value of the Ide.ProjectExcludeFilters property in JDEV_USER_DIR/system###/ide.properties. There are extensive comments in ide.properties on how to use this new property.

Extension In JDEV/LIB/EXT Shown As Loaded When Superseded In User/Lib/Ext (2506275)

If the same extension is located in both the <jdev_install>/jdev/lib/ext and <user_home>/lib/ext folders, the extension in latter location has precedence over the one in the former location, and the Extension Manger preference panel will list the extension located in <jdev_install>/jdev/lib/ext as loaded even when this is not the case.

Unable to Update interMedia Attributes in Wizard Generated uiXML BC4J Applications (2427189, 2420519)

When you use JDeveloper "uiXML for Business Components" wizard to generate uiXML applications, if there are interMedia attributes in the VO, you have to modify the generated uiXML applications to make it work:

  1. Update web.xml to specify OrdFileUploadManager as the FileUploadManager. For example:
    <servlet>
        <servlet-name>uix</servlet-name>
        <servlet-class>oracle.cabo.servlet.BajaServlet</servlet-class> 
        ... 
        <init-param>
           <param-name>oracle.cabo.servlet.io.FileUploadManager</param-name>
    
           <param-value>oracle.cabo.data.jbo.servlet.io.OrdFileUploadManager</param-value>
        </init-param>
    </servlet> 
     
    
  2. Update "xxxx_Create.uix" and "xxxx_Update.uix" files to add (usesUpload="true") attribute to the <form> element. For example:
            <form name="createForm" usesUpload="true">
    

Error when Dropping a Struts Tag to Non-Struts Project (2360274)

In a non-struts project, you can drop a Struts tag (like Struts templates-insert tag) to a JSP file and compile the file successfully. However, you will get an error in the runtime JSP page:

   java.lang.NoClassDefFoundError: org.apache.struts.taglib.html.

This is because the Struts tags are all located inside of struts.jar, but the supporting classes for runtime are located in the struts/lib directory which is not copied over because of the size. To insure that your Struts application does work, add the Struts Runtime library to your current Struts project. This will insure your classpath is correct.

Editor Windows System Menu Doesn't Appear (2387616)

Under the Metal Look and Feel, the System menu of the editors (which displays Minimize, Maximize, and Close) is not available; this impacts keyboard accessibility.

JAWS Reads out Incorrect Value for Name Field in Entity Facade Wizard (2565769)

Users of JAWS software may encounter this bug when creating a new EJB Entity Facade. On Step 1 of the Entity Facade wizard, when the user tabs to the Name field, JAWS reads the contents of the Project field. The workaround is to tab through the controls once. When the Name field is selected the second time, JAWS correctly reads the value of the Name field.

 

 

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 and Corporate Info

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