Release Notes
Release 2 (9.0.2)
April 2002
Part No. A96508-01
bc4j.ear
Filejdevhome
After Migration from BetaOracle9i 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 Addin API 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 is an object-relational mapping tool that implements Sun's J2EE design patterns, allowing developers to quickly build sophisticated J2EE applications.
For more information about this release, please visit the JDeveloper page on the Oracle Technology Network at http://otn.oracle.com/products/jdev. You will also find there the Oracle9i JDeveloper Release Notes Addendum which contains additional information not available at the time of this document's publication.
As any seasoned J2EE developer will tell you, there is a major difference in effort between creating a J2EE-compliant application, and delivering one that is modular, performant, and scalable. The new Simplifying J2EE and EJB Development with BC4J whitepaper available on OTN explains how Oracle's J2EE-compliant Business Components for Java (BC4J) framework considerably simplifies delivering solutions that exploit the full set of J2EE technologies by providing an off-the-shelf implementation of the numerous additional J2EE Design Patterns you would normally have to code by hand to achieve this goal.
DAC design time is not present in Oracle9i JDeveloper. For more information, please review the Java Client Statement of Direction.
If you are directly migrating a DAC project from JDeveloper 3.2.x to Oracle9i JDeveloper (not converting it to JClient), you must add one of the following libraries to the project's classpath:
Warning: If you open a JDeveloper 3.2.x BC4J JSP from Oracle 9i JDeveloper
without copying the project to a new location, Oracle9i JDeveloper will
convert that project to an Oracle9i JDeveloper (J2EE) compliant project.
In addition, other BC4J JSP projects which use the same \webapp
directory under
a common HTML root will be disabled.
To avoid this result, create a copy of your 3.2.x BC4J JSP projects and common HTML root, and migrate the copy rather than the original.
If you convert a project to the Oracle9i JDeveloper format within the JDeveloper 3.2.x install and you want to continue to work with BC4J JSP projects in JDeveloper 3.2.x, follow these steps:
\WEB-INF
directory created under the 3.2.x HTML root directory (by
default under <jdeveloper32x_root>\myhtml
). \webapp_old
directory to \webapp
under
the 3.2.x HTML root directory (by default under <jdeveloper32x_root>\myhtml
).
Due to a bug in JDeveloper 3.2.3, you were allowed to create view objects based on entity objects that did not include all of those entity objects' primary keys. This prevented the entity cache from being populated properly and could lead to unpredictable behavior.
Oracle9i JDeveloper uses stricter error-checking. If you migrate a view object that does not contain all of the necessary primary keys from JDeveloper 3.2.3, you may get one of the following errors at runtime:
ORA-01007: Variable not in select list
oracle.jbo.PersistenceException: JBO-26028: View object <ViewObjectName> does not include a primary key attribute <AttributeName> of entity base <EntityObjectName>
If you open the view object in the View Object Editor, you will get the following error:
The attributes that represent the primary key of <EntityObjectName> are missing from your query
The editor will still be open, and you can fix this problem by adding the primary keys from each underlying entity object to the view object. You will not be able to save any other changes to the view object until you correct the problem.
bc4j.ear
FileWhen you migrate a web application from JDeveloper 3.2.3, Oracle9i JDeveloper adds a bc4j.ear file to the project. This file is needed by BC4J web applications, but other applications do not require it. For those applications, you can ignore this file or remove it from the IDE.
In the Beta release, the JClient Runtime library was incorrectly included in
<jdev_home>/jdev/system/libraries.xml
. If you are
migrating a JClient Project from the Beta release, you must remove the entry;
otherwise JDeveloper will attempt to continue to use the old libraries.
<jdev_home>/jdev/system/libraries.xml
in
a text editor.jdevhome
After Migration from BetaAfter you migrate a project from the Oracle9i JDeveloper Beta release,
when you first open JDeveloper, you may get a message saying that jdevhome
doesn't exist and asking if you want to create a new jdevhome
.
Answer "Yes" to this question. JDeveloper will not delete or change
any of your project files.
If you migrate a project containing JSPs from an earlier release of Oracle9i JDeveloper, you may find that subsequent changes to your JSPs are not visible when you run your project. To solve this problem, you must delete the output directory for your project and rebuild the project:
By default, BC4J deployment uses the core data source location to acquire the internal connection that is required by the BC4J passivation framework. This data source is implemented as a non-pooled datasource. As a result, use of this location may result in excessive JDBC connect times over the lifetime of a "stateful" session.
To workaround this issue, the application developer may configure their application to use the BC4J connection pool instead of the core data source location to acquire JDBC connections. In order to use the BC4J connection pool for internal connections please execute the following steps after a deployment profile has been created for the application module:
jdbc:oracle:thin:<username>/<password>@<host>:<port>:<sid>
If you attempt to deploy an EJB of the same name to the configured WebLogic application server from JDeveloper, the following message is displayed:
Application <name_of_EJB> already exists. To redeploy,
use update, not deploy.
As a workaround, you must first delete the EJB using the WebLogic Server Console before redeploying the EJB deployment profile from JDeveloper.
Any additional EJBs added to a project containing an existing weblogic-ejb-jar.xml
deployment descriptor configuration may not be reflected. Be sure to create
all EJBs in a project before you add the weblogic-ejb-jar.xml deployment descriptor
to the project.
Running the BC4J Tester against a BC4J application deployed as a remotable EJB session bean in the embedded OC4J server fails. As a workaround, you need to manually create a configuration for the embedded OC4J server and run that. To do this, select and right-click the EJB Module node and choose the Run option to run the EJB in embedded OC4J Server and to generate a default configuration which can be used by the BC4J tester to run against the EJB session bean.
If you encounter an exception when running BC4J exported methods in VisiBroker bind mode, complete the following tasks before attempting to run the application again:
The BC4J client projects are configured with a library definition that points to the JAR file created by the BC4J middle-tier deployment profile. However, if the target location of the deployment profile is changed, this causes the client project to become disconnected from the middle-tier classes.
In Oracle9i JDeveloper Release Candidate 1, any settings added manually to the orion-application.xml in the embedded OC4J server including adding <jazn> or <jazn-web-app> elements are lost. Configuration settings made using the any of the deployment descriptor editors in JDeveloper are preserved.
In Oracle9i JDeveloper Release Candidate 2, there is a workaround available which lets you manually edit XML files directly and preserve your settings. For example, you can specify a JAZN user manager to use with the embedded OC4J server on a "per-workspace" basis.
For example, if you have a workspace named Workspace1.jws and run any project in Workspace1 using the embedded OC4J server, a file named Workspace1-oc4j-app.xml (this name is not currently configurable) is automatically created in the same directory as Workspace1.jws.
The contents of Workspace1-oc4j-app.xml and orion-application.xml are similar and represent Workspace1 as a J2EE application.
In Workspace1-oc4j-app.xml, you can add <user-manager> elements or <jazn> and <jazn-web-app> elements to specify how OC4J should handle login authentication.
Note that JDeveloper does not create Workspace1-oc4j-app.xml until you perform these steps:
Class and activity model elements and diagrams created in the beta release of Oracle9i JDeveloper are not supported in the production release of Oracle9i JDeveloper. This is because the element file format has been optimized between the two releases. If you open a project containing model elements or diagrams created using the beta release of JDeveloper, empty package nodes will be displayed in the Navigator pane for the project. These nodes can be safely removed using File | Erase from Disk.
Model elements and diagrams created using the Oracle9i JDeveloper Release Candidate are fully compatible with the production release.
If you want to add a directory to the model path for a project on the Project Settings dialog, ensure that directories entered represent the root location for a model, rather than the location of a specific package within that model. If the root location of the model elements is not specified in the model path, this may have an unpredictable effect on your project, including the inability to create new model elements.
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.
You can only import XMI files created using the Rational Rose (Unisys) XMI Addin version 1.3.2 or 1.3.3.
To modify the Model Path for a project in JDeveloper, first close all currently open diagrams and restart JDeveloper. Choose Tools | Preferences and edit the Model Path for the project. If the model path is modified without taking these precautions you may experience unpredictable results.
If you have generated Java source from a modeled element in the Class Modeler, then rename, move or delete the generated Java source file, the Class Modeler will regenerate a skeleton Java class from the modeled element when you next modify that model element's definition, however, under certain conditions this may not happen. Before renaming or moving a generated Java source file it is advised that you first back up your source files.
If an attribute is created on a modeled modeled domain, and the Oracle Object Type of the attribute is not set, it defaults to CHAR. As this is not a valid Oracle Object Type the generated domain will not be able to generate a database object for the domain. To remedy this situation, open the Domain properties dialog from the class diagram, specify a valid Oracle Object Name in the 'Selected Type' field and regenerate the domain.
If you reverse-engineer a large number of Java classes to a UML class model, the process could take several minutes, during which time no progress dialog is displayed.
When you enter Instance Selector Code to determine which instances should receive a message, please ensure that the Java code is syntactically correct. An end point will be declared as not defined in the E-Business Integration Wizard if its Instance Selector Code contains invalid Java code.
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.
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.
When a project created with the Oracle9i JDeveloper Beta is opened, and that project contains definitions produced by the E-Business Integration Generator, the following message will be reported and the generated definitions will not be available.
*** Unable to find class oracle.bm.eaigen.ide.EAIArtifactContainer.
*** This object will be loaded as null.
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.
In some cases, such as if one branch of a two-way decision point lies outside a swimlane, the E-Business Integration Wizard will still require that you specify a guard condition on the first transition of the other branch, before it will allow generation to proceed. Supply a guard condition for this transition in the normal way. During generation, the guard condition will not be used and an integration without decision-making, as indicated on the overview page of the wizard, will be generated.
If you enter a Depth Count of more than 9 digits in the Message Adapter properties
of the Swimlane dialog, the value is discarded as it is too large to be stored
in the field. There is no warning that there is a problem with this property,
or that the data has been discarded.
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.
The error message Unable to determine filesystem file
may appear
when ending a private branch through Oracle9i SCM source control. This
only occurs if you have more than one instance of JDeveloper running at the
same time on the same machine. To avoid this problem, close all instances of
JDeveloper but one, and attempt the operation again.
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.
While merging file on an Oracle9i SCM repository, an alert with the title "Objects Temporarily Added to the Workarea" might be displayed. This alert can become hidden behind other windows in JDeveloper when an editor or navigator window is clicked on. To return this alert to the front of other windows, press Alt+Tab (under Windows), or switch tasks (under other operating systems).
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.
If you want to merge specific file types using the Oracle9i SCM merge tools, each of those file types must be registered with the Oracle9i SCM repository file registry as a 'Text File' by your Oracle9i SCM repository administrator. If these files are not registered as text files when they are merged, a binary merge will be performed which copies the checked in version over the checked out version.
Examples of files that could be registered as text files include:
The source control SCM API Javadoc is in a different directory from that specified
in the online documentation. It is located in %JDEV_HOME%\jdev\doc\ohj
rather than %JDEV_HOME%\jdev\doc
.
Oracle9i JDeveloper will work with Oracle Repository 6i Release 4.1.1 or above, even though this release of Oracle Repository 6i is not publicly supported.
By default, CVS is not configured to handle binary files, and will be unable to merge them correctly. To specify the file types which should be recognized as binary, or non-mergeable, configure the administrative 'wrappers' file in the CVS repository. For example, in the .cvswrappers file, you could create entries like the following:
*.exe -k 'b'
(treat executable files as binary)
*.xml -m 'COPY'
(do not attempt to merge XML files)
If you update a JDeveloper project file (.jpr) that has been checked in to a CVS repository, you will be asked whether you want to replace the local version with the currently checked-in version. If you do not do this, the project files will be merged, but any merge conflicts must be resolved before the project can be read by JDeveloper.
JDeveloper's CVS support may cause the network service daemon (inetd) on some UNIX systems to block access to the pserver port, port 2401 when using projects with a large number of files under CVS control. JDeveloper (and any other CVS client) will be unable to establish remote connections to the server for a period of several minutes after this happens. If this occurs, the system log (usually located in /var/log/messages) on the UNIX server will contain error messages similar to the following:
hostname inetd[123]: cvs/tcp server failing (looping), service terminated
It is possible to remedy this situation by increasing the number of allowed
connections on port 2401 in a one minute period. You need to edit inetd.conf
on the UNIX server. This file contains a line, usually starting with "cvs",
which controls the CVS pserver daemon that was set up when CVS was installed
on the server. This file needs to be modified so that the nowait
part of this line indicates the number of allowed connections in a one minute
period, for example:
cvs stream tcp nowait.400 cvs /usr/bin/cvs ...
Where nowait.400
indicates that 400 connections are permitted
in a 60 second period, which should be adequate for large projects.
JDeveloper does not provide a direct way of using SSH (secure shell) as an access method for the CVS repository. It is however possible to configure SSH so that it can be used for remote shell access.
ssh-keygen
~/.ssh/identity.pub
public key file with ~/.ssh/authorized_keys
on the machine with the CVS repository.Users should ensure that they are explicitly authorized, and that the environment is correctly configured, prior to running JDeveloper and attempting to use CVS with SSH. These steps should be followed to ensure this is done correctly.
ssh-agent {shell}
at the UNIX command line, then press
Enter.ssh-add
at the UNIX command line, then press Enter.Due to an existing CVs client issue, if you are using a timezone other than Universal Time (UT) or Greenwich Mean Time (GMT) on your client machine the overlay icons displayed for CVs files in JDeveloper may not reflect the true status of the underlying files. To find out the status of a CVs file in JDeveloper, right-click the file in Navigator pane and choose Source Control | View Status.
If you attempt to logon to CVs through JDeveloper using a CVSNT 1.11.1.3 client the connection will not authenticate correctly, causing all subsequent CVs operations to fail. To remedy this, login to CVs at a command prompt, JDeveloper will then pick up this connection and CVs operations will succeed.
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.
Important: Before using WebDAV Connections in Oracle9i JDeveloper, you must first install the WebDAV addin from the Addin Exchange on OTN. For more information, refer to the Installing Oracle9i JDeveloper guide or the Oracle9i Developer Suite Installation guide.
http://<hostname>:7777<port>/<Folder_Name>/
JDeveloper's Web Services functionality generates a number of XML files. One of the options on the context menu for an XML file is Check XML Syntax. When this is run for any of JDeveloper's generated XML files, errors are reported but these can be safely ignored. The XML generated by JDeveloper is both well-formed and valid.
A WSDL file can be created from a class which contains two overloaded method signatures which map to the same signature when expressed in the XML schema type system. For example:
public class Class1 { public Integer echoInteger(Integer i) { return i; } public int echoInteger(int i) { return i; } }
When this class is run through the Web Service Publishing Wizard, a WSDL file is created which describes both method signatures identically. Using this WSDL file to generate a stub would result in the generation of two identical methods, and hence compilation errors.
This problem is a restriction of the Java<->WSDL datatype binding.
In certain circumstances, the domain of the hostname in the Web Service Endpoint
may not be correctly resolved. In this case you should manually edit the endpoint
in the generated WSDL to correctly describe the location
of the Web service.
In a project that has SOAP Web services defined, the Web Services Stub/Skeleton Wizard will display two entries for each WSDL document in the project. You can select either entry.
When creating a J2EE Web service using JDeveloper's Web Service Publishing Wizard, a Web service interface will always be generated.
To stop an external instance of OC4J, the command is
//<hostname> admin <admin_password> -shutdown
where <admin_password> is the password you entered when you installed OC4J.
If you have a class containing a single method which is published, then remove this method from the class after it has been compiled you will need to add another method to the class and manually publish it before the class can be used by a web service. To manually publish a method, add the following Javadoc tag immediately above the method signature in the java class and recompile it.
/** * @webmethod */
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.
BC4J Java-client's, JClient and Business Components Tester do not support editing of Oracle Object-type attributes. These clients can display the Object Type attribute values but on edit, may throw an exception if there's no constructor on the corresponding domain that accepts a String value. In future releases, these clients will provide a generic control/panel to allow more structured display and edit of Oracle Object types.
When creating a JClient and selecting to generate a login dialog, the following
error will appear when the package is automatically compiled.
Error (388,110); class JCLoginDialog not found in class....
The workaround is to compile again.
If controls (such as JList or JCombobox) in a JClient application do not display
data, even though their ViewObjects have been executed (as can be verified by
running with the -Djbo.debugoutput=console
diagnostics flag turned
on), then execute the ViewObject queries after creating all UI components.
For example, by default in generated JClient applications, a
FrameLayoutPanel is created and the main application frame creates an instance
of this Panel via a constructor that takes a JUApplication as an argument. This
implicitly performs a ViewObject execution (if not already executed). Instead
use another constructor that forces the LayoutPanel to NOT execute the
ViewObjects behind it, and then in the Frame's constructor execute the query(s)
behind the Frame by
calling layoutPanel.getPanelBinding().execute()
For example, for a JClient Frame named
FramePeople
add the following line to the top of the
jbInit()
method:
/**
*
* the JbInit method
*/
public void jbInit() throws Exception
{
// frame layout
// WORKAROUND: Pass in false so that LYPanel does not implicitly execute the VO.
// layoutPanel = new LYPanelPeople(app);
layoutPanel = new LYPanelPeople(app, false); // WORKAROUND !!
:
and the following line to the constructor that takes a
JUApplication
argument:
/**
*
* Constructor that takes the application object
*/
public FramePeople(JUApplication appIn)
{
app = appIn;
try
{
jbInit();
layoutPanel.getPanelBinding().addNavigationBar(this);
iter = statusBar.getModel().getNavigatableRowIterator();
// WORKAROUND: Execute the VO's now so that Lists get populated too!
layoutPanel.getPanelBinding().execute(); // WORKAROUND !!
}
catch(Exception ex)
:
A java.lang.NullPointerException
occurs when you try to connect
a JClient application to a BC4J project deployed as a CORBA Object on VisiBroker
Using the Naming Service Mode only. You can use either of the other two available
ORD connection type modes, Binding and Collated, as alternatives.
When you use a Tree control in a JClient project, the Node model editor lets you choose icons to display for each node in a branch and the open and close icon for each branch. In order to add the icons to the Node model editor, you must add initialized images to your variable declarations. For example:
ImageIcon deptImage = new ImageIcon(); ImageIcon deptOpenImage = new ImageIcon(); ImageIcon deptClosedImage = new ImageIcon(); ImageIcon empImage = new ImageIcon(); ImageIcon empOpenImage = new ImageIcon(); ImageIcon empClosedImage = new ImageIcon();
The images must be initialized, if you have uninitialized images, edit the parameter list and then open the Node model editor, you will loose your edits. When an image is uninitialized, Swing runtime will throw a NullPointerException when attempting to draw the node to display a node that should display the null image.
If you run a JClient application against a deployed OC4J middle tier, you will receive errors when using InterMedia types. This is a known issue. There workaround is to do the following:
Create a new user library that includes bc4j/lib/bc4jmt.jar
and add it to
your project settings.
Note: This workaround makes for a large client, when this issue is resolved you should remove this library from your project.
When you want to run your JClient application using Java Web Start within JDeveloper, use the default local deployment runtime configuration. The local deployment runtime configuration eliminates potential security conflicts that can occur in the remote deployment runtime configuration. Later, when you want to deploy the Business Components to a remote OC4J or VisiBroker web server, granting security permissions in the JNLP file and signing your JAR files may be necessary. Instructions to sign JAR files is available among the JDeveloper Samples on the Oracle Technology Network (OTN): http://otn.oracle.com/sample_code/products/jdev/content.html.
The oc4jclient.jar does not contain precisely the right classes for minimal thin client deployment. When used by JClient applications to access the deployed EJB Business Components, you must add the oc4j.jar to your JClient project directly. In JDeveloper, select the JClient project in the Navigator, right-click, and choose Project Settings. In the Project Settings dialog, choose Libraries in the Configurations Tree to view the list of available libraries. Highlight Oracle9iAS from the Available Libraries list and click the Move shuttle button. The Oracle9iAS library which contains the oc4j.jar file should appear at the bottom of the Selected Libraries list. Close the dialog and recompile the JClient project. Deploy your JClient application and Business Components as you normally would.
In order to debug a JSP, ensure that your project makes the project before running. This option is selected by default; however, to check this, go to Project Settings and navigate to the Runner and Options node in the navigation tree on the left. Ensure that first selection on the Options panel, "Make Project Before Running," is checked.
When debugging a remote JSP, the documentation describes modifying the init params for the OJSP engine incorrectly.
The documentation describes initializing the value for the jspcompiler parameter as follows:
<init-param> <param-name>jspcompiler</param-name> <param-value>oracle.jdevimpl.jsp.JspOjcCompiler</param-value> </init-param>
However, the correct init parameter and value should be:
<init-param> <param-name>javaccmd</param-name> <param-value><jdeveloper_root>\jdev\bin\ojc.exe</param-value> </init-param>
where <jdeveloper_root> is the root directory in which Oracle9i
JDeveloper is installed.
Debugging of Java Stored Procedures is not supported in this release. A future release will provide this functionality.
The icon referenced by a BeanInfo is not being used on the component palette by default. The user has to manually specify the icon to use in the component palette. In addition, the icon must not reside within an archive file.
JDeveloper is a lightweight (JFC) application. As such, using heavyweight (AWT) controls directly in the UI Editor will not work as expected. Heavyweight components always obscure lightweight components, including the lightweight JDeveloper environment (i.e. CodeEditor windows, UML Editor windows, etc.). The UI Editor includes a proxy mechanism for registering lightweight proxies to represent heavyweight controls for instantiation in the UI Editor. JDeveloper includes lightweight proxies for all the standard AWT controls. However, users creating their own heavyweight beans will find that those beans will always appear on top of the stack of editor windows unless they also register a proxy for their bean class. A workaround is to simply close the UI Editor while it is not being used.
Copy/Paste of AWT controls in the UIEditor does not work in this release.
The JDeveloper UIEditor is incapable of displaying a class which descends from
java.awt.Window
, including subclasses of java.awt.Frame
and javax.swing.JFrame
, and must instead make use of a registered
lightweight proxy. As with all AWT controls, lightweight proxy implementations
for Frame and JFrame (both of which descend from java.awt.Window
)
have been provided such that the user may transparently create their own form
(say MyBaseFrame) extending either of these two popular classes. In this scenario,
the user will be able to edit their class (MyBaseFrame) because of the proxy
which has been registered for the superclass (Frame or JFrame). However, if
an user wishes to further extend a class which in turn already required a proxy
for its superclass (i.e. attempting to extend the user created MyBaseFrame above
as in: MySubFrame extends MyBaseFrame), the user will first have to register
a proxy implementation for that superclass (e.g. in the example above, a proxy
implementation would be required for MyBaseFrame in order to manipulate MySubFrame
in the UIEditor). When writing their own proxy, users are encouraged to subclass
the JDeveloper provided proxies found in the package oracle.jdevimpl.uieditor.proxy
.
On some Linux systems (including SuSE 7.2 with Gnome running Sawfish), pressing the Ctrl key and clicking in JDeveloper will move the application window instead of recognizing it as a modifier to the current operation. This is because the window manager uses that key as a shortcut for moving windows, and does not pass it to JDeveloper.
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.
On Linux, the NumLock key serves as a lock for the Meta key. Linux users must therefore ensure the NumLock key is off or the key mappings will not work as expected.
When starting the OC4J server in non-embedded mode on HP-UX, the-XdoCloseWithReadPending
option to java is required.
Example: java -XdoCloseWithReadPending -jar oc4j.jar
If you create Oracle XSQL Pages that make use of the BC4J action handlers oracle.jbo.xsql.ViewObject
and/or oracle.jbo.xsql.UpdateViewObject
you may receive a
NoClassDefFoundException error at runtime while executing these XSQL pages.
This occurs because the BC4J XSQL action handlers extend from the XSQL action
handler base classes that live in the oraclexsql.jar
archive.
Due to Oracle9iAS OC4J classloading issues, since BC4J is loaded as a
global library, anything that it extends from must also be installed as a global
library.
To resolve the issue, just edit the ORACLE_HOME /j2ee/home/config/application.xml
file.
Find the line that reads:
<library path="../../../BC4J/lib/bc4jmt.jar" />
and add the following line to the file just after this:
<library path="../../../lib/oraclexsql.jar" />
Then restart the Oracle9iAS server and the XSQL Pages with BC4J XSQL action handlers will work now.
The format of the manifest file for JDeveloper Addins has changed between Release
Candidate 1 and this release. Addins delivered as JAR files will need to update
their manifest files to the format described in the JD9i/lib/ext/README.TXT
file in order to be recognized and loaded by the this version of JDeveloper.
The API help topics "Using Your Own Source Control System", "Writing
a Source Control Addin for JDeveloper" and "More on Source Control
Addin Utilities" all refer to the jdev-scm-doc.zip
file. The
actual path for the zip file is jdev/doc/ohj/jdev-scm-doc.zip
.
When using Oracle9iLite as a datasource for a Business Components for Java project, note the following:
When using SQL*Server as a datasource for a Business Components for Java project, note the following:
'start /min jdev'
you may encounter IDE focus issues.
In Oracle 9i JDeveloper 9.0.2, there is a problem compiling projects which contain both Servlet 2.3 features, filters/listeners, and JSP pages with custom taglib directives. Users may get a compile error such as:
Error(1): oracle.xml.parser.v2.XMLParseException: Invalid element 'filter'in content of 'web-app'.
This is caused when the JSP compiler inadvertently attempts to validate a Servlet
2.3 compliant web.xml
with a Servlet 2.2 dtd. This only occurs
when compiling projects which contain both Servlet 2.3 features and JSPs with
custom taglibs. Projects with just Servlet 2.3 code or Servlet 2.3 code and
JSPs without custom taglibs still compile correctly.
The workaround for this is to set a VMOption in the <JDEV_HOME>jdev/bin/jdev.conf
file. By default the option -Djdev.jsp.compiler.validate
is set to true. To
set it to false, the user just has to uncomment the line:
#AddVMOption -Djdev.jsp.compiler.validate=falsein the
jdev.conf
configuration file.
Setting this option to false will disable the compile-time validation of the
web.xml
. Use this option only when compiling projects with Servlet 2.3 code
and JSP containing custom taglibs.
JDeveloper determines the IANA equivalent encoding name based on the mapping
table in the encodings.xml
file, which is located in the jdev\bin
directory.
However, there is no IANA equivalent for some Java encodings such as MS950.
If you need to map MS950 to Big5 edit the encodings.xml
file as follows:
<jdk2iana jdk="MS950" iana="Big5">
ORACLE_HOME\bin
folder to the PATH environment variable. Doing so ensures that JDeveloper
incorporates the native portions. You may also need to modify the ORACLE_HOME\jdev\bin\jdev.conf
file to point to the specific classes12.jar
file that comes with
your database. Note that classes12.jar
and classes12.zip
indicate the same file.
Below is the workaround:
In ide.properties
, typically in $(JDEV_INSTALL)\jdev\system\ide.properties
,
edit the following properties to set the caret color:
ceditor.CaretColorR=0 ceditor.CaretColorG=0 ceditor.CaretColorB=0
The valid range for each component color is 0 to 255.
Code Generation for Nested Tables whose elements are of another object type is broken when all the codegen is done using the package wizard. A known workaround is to first create a domain for the nested object type using the Domain Wizard and then use the Package Wizard or Entity Wizard to generate code for an Entity Object that maps to a table that contains nested object types.
After using the UIX XML wizard to generate the master/detail UIX page for the View Link, on Netscape 4.x only the first/prev/next/last button bar displays. The description of the current row in the master view also does not render on Netscape. The page displays correctly in Internet Explorer, however.
The following UIX (with data scopes and <contents> elements removed) is generated by the wizard. It details a workaround for the problem.
<tableLayout> <inlineMessage/> <inlineMessage/> <table/> </tableLayout> Only <rowLayout> and <inlineMessage> elements may be added directly to a <tableLayout>. To display this correctly in Netscape, move the <table> element out of the <tableLayout> as shown: <tableLayout> <inlineMessage/> <inlineMessage/> </tableLayout> <table/>
In this release, it is not possible to properly compile or preview UIX pages that reference custom UIExtensions.
When files are written, some of the Wizards in JDeveloper respect Java's default file encoding which is determined by a combination of the operating system and the locale. However, sometimes the "encoding tag" is based on the setting in JDeveloper's Project | Project Settings - Compiler - Character Encoding field.
For generated applications to work properly in the JDeveloper IDE or any other deployment environment, the encoding tag must match the actual Java file encoding.
When you create or save files in JDeveloper, be sure that this initial Java value is preserved.
Searching for invalid text in the UIX BC4J pages can cause exception:
JAVA.LANG.ARRAYINDEXOUTOFBOUNDS
The Business Components Browser (a.k.a. Tester) cannot be used to test application modules that are based on CMT Beans. The configuration will not be created, and if you try a manual configuration, you will receive a null pointer exception.
When you view the Javadoc for BC4J domains from the Help navigator you only see one of the three files associated with domains. However, the Javadoc for BC4J domains is located in three files:
To view the Javadoc for bc4jdomorcldoc.zip or bc4jdomgnrcdoc.zip (or any specific class), right-click its name in the source code.
In the Business Components Basic Tutorial, in the final section on testing the middle tier, it says "In the following steps you will add business logic that creates default values whenever you create a new order." However, there are no further steps in this tutorial. The next tutorial, Business Components Tutorial: Validation, will cover adding default values and other types of business logic. This tutorial is not in the 9.0.2 release, but will be available on OTN shortly.
In a multiuser environment, users do not have write permission on the directory containing the BC4J sample applications. To run these samples you must copy them to your local work area.
To make a local copy of the samples on a Unix system:
$HOME/jdevhome/mywork
, if it doesn't already
exist.<jdev_install>/BC4J/samples
,
and its contents, into $HOME/jdevhome/jdev/mywork
. To make a local copy of the samples on a Windows system using Citrix:
<JDEV_USER_DIR>\jdevhome\mywork
,
if it doesn't already exist. You can find the value of <JDEV_USER_DIR>
in the file <jdeveloper_home>\jdev\jdev.conf
.<jdev_install>\BC4J\samples
,
and its contents, into <JDEV_USER_DIR>\jdevhome\mywork
.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.
The XML Auto Indent feature is not available in this release. It is planned for a future release.
When refactoring using Tools | Refactor, or when you edit the name or namespace of synchronized Class Diagram elements, the refactor utility is invoked which updates the object being renamed or moved, and also updates code in other files that uses it. Because there can be a large amount of changes, and because Refactor is not undoable, it is recommended that you make a backup of your source files before using Refactor.
When refactoring using Tools | Refactor, or when you edit the name or
namespace of synchronized Class Diagram elements, you should ensure that the
"Save Before Compile" preference is turned on. You can turn on the
preference on by going to Tools | Preferences and clicking on the Environment
category. If this preference is turned off the compilation phase of the refactoring
may fail to compile the latest versions of updated source files.
When files are saved after a refactoring operation has been performed you may receive a message similar to the following:
Unable to save files
\avaD:\9ijdev\jdev\tutorials\workspaces\tutorials\bc\src\onlineorders\JavaClass1.java
This message states that a file could not be saved using an invalid pathname. This corrupted pathname/filename does not represent a real file that needs to be saved. To fix this problem, quit JDeveloper and deselect the checkbox for the corrupted pathname/filename when prompted to save unsaved changes. When JDeveloper is restarted the problem will have been fixed.
In order to use Chart DataWeb bean in your BC4J JSP Web application, the Perspective
for Java jar file LW_PfjBean.jar
has to be found in the server
classpath. To include this jar file in the OC4J server classpath, modify your
{ORACLE_HOME}\j2ee\home\config\application.xml
file as shown below.
<library path="../../../jlib/LW_PfjBean.jar" />
This line may be added as the last line in the list of libraries as shown here.
<Library path="../../home/lib" />
<library path="../../../BC4J/lib" />
....
....
<library path="../../../jlib/jregexp.jar" />
<library path="../../../jlib/LW_PfjBean.jar" />
The scriptlet for the chart datawebbean in JDev 3.2 uses a common jsp file
called chart_common.jsp. The scriptlet has the following statement to refer
to this common file:
chart.setCommonScriptName("/webapp/jsp/chart_common.jsp");
In Oracle9i JDeveloper the following changes are required:
jsp\chart_common.jsp
from the bc4j\redist\webapp.war
to your project's public html
directory.Then add chart_common.jsp
to your project. c.setCommonScriptName("chart_common.jsp")
;After completing the above two steps your jsp page should look like:
<jbo:ApplicationModule id="am" configname="mypackage1.Mypackage1Module.Mypackage1ModuleLocal" releasemode="Stateful" /> <jbo:DataSource id="z" appid="am" viewobject="EmpView"/>
<jbo:DataWebBean id="c" datasource="z" wbclass="oracle.jbo.html.databeans.ChartRenderer"/> <% //c.setCommonScriptName("/webapp/jsp/chart_common.jsp"); c.setCommonScriptName("chart_common.jsp"); c.getChart().setGraphType(c.PIE); //.... c.setSeriesLabelColumnName("Ename");
c.setDisplayAttributes("Empno,Mgr,Sal,Comm,Deptno");
//.... c.getChart().setPieFeelerTextDisplay(0); c.getChart().setPieTilt(10); c.getChart().setPieRotate(0); c.getChart().setLegendDisplay(true); c.getChart().setLegendMarkerPosition(0); //.... c.getChart().setTitleString("Title");
c.getChart().setSubtitleString("Subtitle");
c.getChart().setFootnoteString("Footnote");
c.setImageWidth(400); c.setImageHeight(400); //.... c.render();
%> @ <jbo:ReleasePageResources /
The accelerator keys for "block-indent" and "block-unindent" have changed in the production release of Oracle9i JDeveloper. (This is a change from JDeveloper 3.2 and the beta and release candidate versions of Oracle9i JDeveloper.)
They have changed from:
[Ctrl]-[Shift]-I (block-indent) [Ctrl]-[Shift]-U (block-unindent)
to the more standard bindings of:
[Tab] (block-indent) [Shift]-[Tab] (block-unindent)
The ide.properties
file can be modified before you start JDeveloper
in order to change the font display size. The Ide.FontSize
property,
which is set in this file, modifies the default point size for fonts used by
the IDE. The font size can be specified on a per look-and-feel and per language
basis. The procedure is documented in the comments at the beginning of the ide.properties
file, which is found in the <JDeveloperInstall>\jdev\system
directory.
Changing the font size by modifying ide.properties
file affects
all JDeveloper UI except the main window title bar. This font size can be adjusted
by using the Windows Display Properties dialog to change the title bar system
font.
To fix this problem you need to stop Exceed, then open the Exceed icon group, and select Xconfig. When the Xconfig dialog appears, double-click Font, then click Font Database. There is a checkbox at the bottom of the dialog titled Automatic Font Substitution that is selected by default. De-select it. When you restart Exceed, all fonts display correctly.
Occasionally a dialog called from the context menu of a node on the Navigator will behave incorrectly, for example it will not open, or it will display with the fields empty even though they should have some content. If this happens, you will find that even though the node is highlighted, the title bar containing System - Navigator has not changed color. This is because the focus has not returned correctly to the Navigator from a previous dialog. You can return the focus to the Navigator by closing it using the close button in the title bar, and then reopening it by choosing View | System Navigator.
When a JSP application is running against an application module deployed in remote mode, such as an EJB in OC4J, the updated/inserted image does not display on the JSP page until the user commits the change.
The find dialog is supported in the JSP and HTML viewers and Help. The user can activate the dialog to search for textual patterns by pressing Control-F.
ALTER USER hr IDENTIFIED BY my_secret_password_for_hr ACCOUNT unlock;
The same steps may be needed for the oe, pm, and sh schemas.
Although documentation refers to XML samples included with the product, they
are not included with this release. Instead, you will find the samples on OTN.
In the tutorial "Creating JavaServer Pages with Data Tags," under the topic, "Creating a Form for Editing Orders", if you optionally click the Update button as described after step 9, you should close the browser before running the Orders.jsp as described in step 10.
Due to a bug in the Sun JDK 1.3.1 (bug 4392195), using hosted help can cause JDeveloper to stop responding if the connection to the host is closed before all the data is sent. If you experience this on your network, you should install the local documentation, available on OTN.
Oracle Corporation |
Worldwide Inquiries: |