Developer Tools
JDeveloper
last updated: October 21, 2011
This document lists known issues for this release. As new issues arise, they will be added to this document. We welcome and encourage your feedback. Your input helps us make the product better. Please use the JDeveloper community discussion forum on OTN for questions and answers, as well as to let us know what you think!
Prior to installing, you must first download Oracle JDeveloper 11g and Oracle Application Development Framework 11g (11.1.1.5.1) and Oracle Fusion Applications Companion 11g (11.1.1.5.1) using the following links and unzip the files in a folder/directory. Then the correct install guide will be available on your system as part of the download.
#V27942-01 Oracle JDeveloper 11g and Oracle Application Development Framework 11g (11.1.1.5.1)
#V27943-01 Oracle Fusion Applications Companion 11g (11.1.1.5.1)
Please refer to the install guide that was part of the download for details on system requirements and specific installation instructions for various platforms.
Some additional steps are required to install JDeveloper on Mac OS beyond what is documented in the installation guide. Please refer to the installation guide (http://download.oracle.com/docs/cd/E17904_01/install.1111/e13666/toc.htm) for additional details on installing JDeveloper for Mac OS X.
1. Make Java 6 the default VM.
2. Create a symbolic link for classes.jar
An additional step is required to successfully run applications on Mac systems that have Java for Mac OS X 10.5 Update 4 installed (8681385):
In order to setup Oracle Fusion Apps Development Environment using the unzipped files that were downloaded earlier, please refer to the documentation here.
When starting JDeveloper for the first time after installation, and get this error message: java.lang.IllegalStateException
The XSLT file design time features like running and debugging do not work.
Exception firing mainWindowOpened to oracle.jdevimpl.runner.xslt.XSLTRunnerAddin@46b9979b
java.lang.IllegalStateException: getInstance was called while _instance was null
Workaround is to restart JDeveloper.
Sometimes JDeveloper locks up while debugging an XSLT.
"AWT-EventQueue-1" prio=6 waiting
java.lang.Object.wait(Native Method)
java.lang.Object.wait(Object.java:485)
com.sun.tools.jdi.TargetVM.waitForReply(TargetVM.java:281)
com.sun.tools.jdi.VirtualMachineImpl.waitForTargetReply(VirtualMachineImpl.java:1015)
com.sun.tools.jdi.PacketStream.waitForReply(PacketStream.java:51)
com.sun.tools.jdi.JDWP$StackFrame$GetValues.waitForReply(JDWP.java:6967)
com.sun.tools.jdi.StackFrameImpl.getValues(StackFrameImpl.java:218)
com.sun.tools.jdi.StackFrameImpl.getValue(StackFrameImpl.java:185)
oracle.jdevimpl.debugger.jdi.DebugJDIVariableInfo.getLocalVariableValue(DebugJDIVariableInfo.java:137)
oracle.jdevimpl.debugger.jdi.DebugJDIVariableInfo.getDataInfo(DebugJDIVariableInfo.java:223)
oracle.jdevimpl.runner.debug.DataItem.setInfo(DataItem.java:179)
oracle.jdevimpl.runner.debug.DataItem.
oracle.jdevimpl.runner.debug.DataItem.
oracle.jdevimpl.runner.debug.LocalsController.addDataItems(LocalsController.java:504)
Workaround is to restart JDeveloper and remove the break point at which the deadlock happened.
The recommended way of connecting to Oracle Database is using the thin driver, however you can connect using
OCI8 by following these steps:
When you migrate an application that contains offline database objects from JDeveloper 10.1.3 you will see
one or more warnings in the messages log:
oracle.jdevimpl.offlinedb.browser.DBObjectFileWrapper getProvider
WARNING: Offline Database file does not exist for file filename [offlineObjectType]
These appear because of the different way that offline databases are handled in this version, and can be safely ignored.
JDeveloper does not look at the value of CLASSPATH or JAVA_HOME to determine its classpath or jdk; it stores this information in proprietory locations. The WebLogic domain installation scripts, however, extend the supplied value of the CLASSPATH and JAVAHOME variables, and WebLogic domain creation will fail if JAVAHOME contains ')' or CLASSPATH contains a space. The former happens when, for example, the 32bit JDK is installed in its default path, for example: C:\Program Files (x86)\Java\jdk1.6.0_18. The latter if an application such as Apple QuickTime adds itself to the to the CLASSPATH environment variable, for example:
CLASSPATH=.;C:\Program Files (x86)\QuickTime\QTSystem\QTJava.zip
In either of these cases, creation of the Integrated WebLogic Server domain fails with a message similar to:
[waiting for the server to complete its initialization...]
\Java\jre6\lib\ext\QTJava.zip was unexpected at this time.
Process exited.
The workaround is to install the JDK in a path withpout ')', and remove the Apple QuickTime entry from the classpath,
and restart JDeveloper.
When upgrading a JAX-RPC Web service developed using JDeveloper from Oracle Containers for J2EE (OC4J) to Oracle WebLogic Server 10.3.x, the following warning may be displayed. This warning is displayed when the OC4J Web service contains whitespace or carriage return characters within the code. This warning can be ignored.
WARNING: A Text node was set to a value that is all whitespace. The DOM will be out of sync with the Text Buffer. The Text Node on reparse will also be removed from the DOM.
Unless they are operating on the same schema avoid creating multiple top-down web services in the same project as each successive top-down service may overwrite the ObjectFactory class created by the previous one if generated into the same package.
When calling conversational web services from HTTP Analyzer, the request message headers for the 'continue' methods need to be manually updated with the conversation id that is specific to that particular conversation. This value is available from the response SOAP message of the method that starts the conversation.
From the response message of the conversation start method, copy the xml tags similar to the one below:
<conv:ContinueHeader xmlns:conv="http://www.openuri.org/2002/04/soap/conversation/">
<conv:conversationID>uuid:701f9f3d434bfc98:-3f39a0ef:11c4b649fd4:-7fff</conv:conversationID>
</conv:ContinueHeader>
From the HTTP Content tab in HTTP Analyzer, insert the above tags within the header element of the SOAP request message, as below:
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
<env:Header>
<!- other header elements-->
<conv:ContinueHeader xmlns:conv="http://www.openuri.org/2002/04/soap/conversation/">
<conv:conversationID>uuid:701f9f3d434bfc98:-3f39a0ef:11c4b649fd4:-7fff</conv:conversationID>
</conv:ContinueHeader>
</env:Header>
<env:Body>
<!- message data details ->
</env:Body>
</env:Envelope>
Because of the OC4J proprietary nature of some of the properties set on web services that were created with previous JDeveloper releases (which supported OC4J), it is likely that there will be problems when attempting to deploy and run such services on WLS (including the integrated WLS that is bound with JDeveloper). Known problems include JAX_RPC services that have annotations, stateful services, DIME encoding, OWSM Policy (both 10.1.3 and 11 styles including WS-Security and WS-Reliability).
When using JAX-RPC web services deployed to weblogic using the generators in JDeveloper you may have
trouble with method signatures that contain "bare" array types.
For example:
public class Hello
{
public String[] list();
public String[] echo(String[] value);
public void process(int[] values);
}
These will either not deploy or when deployed will not work properly with errors complaining about mapping issues. There are a few workarounds for this problem:
It is not possible to successfully invoke a JAX-RPC style conversational (stateful) web service deployed in weblogic server from a JAX-WS style proxy client. The design time JAX-WS proxy creation does not currently warn the user if the supplied WSDL document contains conversational behavior advertisement. Even though the tool leads to a successful generation of JAX-WS client artifacts, invoking the service from this client results in a SOAPFaultException. Only the conversation 'start' methods will get executed successfully. Invoking any other conversational methods after a conversation 'start' method will result in error.
The workaround is to use a JAX-RPC style proxy client to call a stateful service deployed in the weblogic server.
The BPEL server included in 10.1.3 SOA only knows how to use the '2003 draft version of the WS-Addressing specification. The JAX-WS async client will be default generate a client that by modifying the WS_ADDR_VER constants to support either the final '2005 or the member submission '2004 version of the specification. To support the '2003 version the user will need to make some minor modification to the code in order to invoke the process properly.
In the callback handler you need fix the code that requests the relatesToHeader as shown here:
// HeaderList ...
//Header relatesToheader = headerList.get(WS_ADDR_VER.relatesToTag, true);
//String relatesToMessageId = ralatesToheader.getStringContent();
String relatesToMessageId = RelatesTo.getValue();
This uses the header which get automatically bound to a method parameter. Now the BPEL service explicitly defines both the ReplyTo and MessageID headers in the WSDL so the default proxy generator will map these to method parameters. Assuming that you accept this default you need to pass both the replyTo address and the message ID in as parameters to the method rather than as header as you will see in the generated code. The only exception for this is the WS-Addressing action header which if it is required should be set using the '2003 namespace. Here is an example that invokes a loan process that has the required edits.
americanLoan = new AmericanLoan();
LoanService loanService = americanLoan.getLoanServicePort();
// prepare Message Id
AttributedURI messageId = new AttributedURI();
messageId.setValue( "uuid:" + UUID.randomUUID() );
// prepare ReplyTo
AttributedURI address = new AttributedURI();
address.setValue("http://x.x.x.x:7101/Application23-Project1-context-root/LoanServiceCallbackPort");
EndpointReferenceType replyTo = new EndpointReferenceType();
replyTo.setAddress( address );
// prepare action header
WSBindingProvider wsbp = (WSBindingProvider)loanService;
wsbp.setOutboundHeaders(
new StringHeader(
new QName( "http://schemas.xmlsoap.org/ws/2003/03/addressing", "Action" ),
"http://services.otn.com/LoanService/initiateRequest" ));
// Prepare payload
LoanApplicationType payload = ...
// Invoke service with replyTo and messageID parameter
loanService.initiate(lt, replyTo, messageId);
When editing a spring bean definition you might experience hangs as the code incorrectly tries to download files from the internet. (In particular datatype.dtd) You need an active network connection to make use of the Spring tools.
Team Productivity Center installer does not retrieve the compatible version of connectors hosted on Oracle
Technology Network.
Workaround:
Open tpcinstaller.jar with winzip or 7-zip
Expand folder META-INF and locate file installer.xml
Edit this file by changing this line
<entry key="VersionPrefix">11.1.1.4.37</entry>
to
<entry key="VersionPrefix">11.1.1.5.37</entry>
Save the installer.xml file and the tpcinstaller.jar file
Team Productivity Center server cannot be started if it is installed using Tomcat.
Workaround:
Make sure you have applied the above mentioned wrkaround
Make sure you have installed JDeveloper Studio version
Run the installer against your Tomcat server
After installation completes, start the Tomcat server and then stop it
Go to your newly installed JDeveloper folder and locate folder "modules". For example, C:\JDeveloper11.1.1.5\modules
Copy the file named "org.eclipse.persistence_1.1.0.0_2-1.jar"
Go to your Tomcat server webapps directory and identify the lib folder used by otpc. For example, C:\Program Files\apache-tomcat-7.0.12\webapps\otpc\WEB-INF\lib
Paste the file "org.eclipse.persistence_1.1.0.0_2-1.jar"
Restart Tomcat
Excel validation does not get applied to the placeholder row in an ADF Table component that contains data.
Given an ADFdi Table component with Excel "Data Validation" rules applied to one or more columns:
if the user downloads data and then inserts new rows just under the header row, the new rows do not have
the Excel Data Validation. Additionally, if the workbook developer performs the same set of steps in test mode
and then returns to the designer, the data validation rules are lost altogether.
Workaround is to not insert rows just under the column headers. Instead, insert new rows anywhere in the
middle or at the end of the table.
At this point, an unexpected exception occurs.
Workaround is to resolve the situation, dismiss the error dialog and remove the filter from the table.
Then click the Stop button again to return to design-time mode.
Microsoft Excel does not invoke the "before right click" event when a user invokes a context menu from a keyboard. Users should use either the keyboard or the mouse's right-click button to invoke a cell's context menu. Do not use
both in the same user session. This behavior occurs at design time and runtime in integrated Excel workbooks.
Oracle ADF Desktop Integration does not support the conditional formatting features provided in Excel by clicking Home > Conditional Formatting.
Workaround is to use Excel named styles in combination with ADFdi expressions in the component's style properties.
Users may encounter unexpected reports of errors under certain circumstances during the Upload operation for an ADF Table component. The Upload operation processes rows in batches. After posting changes from a batch, ADFdi executes the action specified by the CommitBatchActionID. Errors that occur during the commit action may continue to be reported on subsequent batch commit actions, even though those batches of records do not contain the error. (bug 8262587)
Cause: any pending model changes that exist when the CommitBatchActionID gets called are not automatically reverted when commit fails.
Workaround is to create a custom action for the CommitBatchActionID that first attempts to commit the pending model changes. However, if an exception occurs during commit, the custom method should first rollback the pending model changes, so that any subsequent batch commit attempts can succeed. Note: it is important that the commit exception gets re-thrown after rollback so that the commit error(s) will get reported as expected on the client.
ADFdi does not support variables in the page definition declared with the syntax of variableUsage.
If the developer creates variableUsage in the ADFdi-related page definition, it will produce NullPointerExceptions
in the server at runtime.
Workaround is to instead create variables using the <variable> element in the page definition.
The property inspector and expression builder features in the ADFdi Designer are driven off of the saved component metadata. As a result, there are some known issues when dealing with new objects or values. In each case, the workaround is to save the object and then re-open.
Sample issues:
At design-time, some property inspectors provide access to "collection editors" (bug 8254551)
For example, the Workbook properties include "Branding Items". The items can be edited in a pop-up
collection editor. When making changes to existing items via this collection editor and then pressing the
Cancel button, the changes to the collection are not canceled as expected.
Workaround is to cancel the parent property editor to cancel the undesirable changes from the collection editor.
ADFDI-00134: An attempt to connect to the web application has failed.
Solution: Navigate to a web page from the same application using Internet Explorer. This action will install
the certificate locally. Subsequent attempts to use the integrated workbook will succeed.
The following known issues may be encountered when working with the ADF Read-only Table Component.
To avoid these issues, consider using the ADF Table component in a read-only configuration.
Summary: if the workbook developer switches the View mode of Excel to "Page Layout", ADF Button components may be rendered in an unexpected position (bug 7482216).
Workaround: Switch Excel back to Normal View mode. Then, Run and Stop the workbook so that the
buttons will redraw correctly.
Consider the following sequence of events (bug 10623397):
Result: Any date-time values from modified rows will be considered to have changed by the difference in the time zones.
Analysis: Date-time values in Excel do not have any notion of time zone. ADFdi always uses the local computer's time
zone to adjust date-time values before communicating with the server.
Workaround is to complete the upload of any pending changes before altering the local computer's time zone settings.
After altering the local computer's time zone settings, be sure to re-download worksheet data before making any modifications.
See browser specific bugs listed in the Supported Platforms section
(http://adfui.us.oracle.com/releases/adf.faces/11.1.1.5.0/release.html#SupportedPlatforms)
When skinning icons and images, a '/' at the beginning of the url means context-relative, and a '//' means server-relative. http://myfaces.apache.org/trinidad/devguide/skinning.html#urls However, for the calendar toolbar icons (e.g., af|calendar::toolbar-day-icon), a '/' does not work, and a '//' means context-relative. For richTextEditor and panelCollection's toolbar icons (e.g., af|richTextEditor::bold-icon, af|panelCollection::freeze-icon), both '/' and '//' mean context-relative. T
Date and number formatting (convertDateTime, inputDate, etc.) do not work with the 17 new locales added in JDK1.6. Locales supported in JDK 1.5 do not have this issue.
The profiler file logger can be used only in a non-portal environment on FF and IE browsers with at least 1.5._06 JRE on the client box and privilege to write to the user home directory. The resulting file format is subject to change without any notice and not intended to be used with any xml parser tool. In order to use the feature, the user has to accept the certificate.
This error happens due to bug http://bugs.sun.com/view_bug.do?bug_id=6875866 (HotSpot compiler bug in String.indexOf()
using SSE4.2 instruction-set on new Intel chips).
Workaround: Add this line to the JVM options: -XX:-UseSSE42Intrinsics then remove the cached CSS file, e.g., $APP_TMP_FOLDER/public/adf/styles/cache/blafplus-desktop-ezog8j-en-ltr-gecko -1.9.1.8-cmp.css.
restart WLS, clear your browser cache and everything should be working. Please note that the bug should be fixed with
jdk6.18b02 but we see it on 6.18b07
Application developers must be cautious when assigning access keys to menus. Hot keys may be intercepted by various browsers or even the operating system. One such hotkey, ALT-D, will send focus to the address bar in both IE and FireFox 2. For this hotkey, we have removed the references in our demos. But many more hotkeys may be restricted so it is a good idea to try them out on all of your supported browsers.
ADF Faces components expect applications to use primary keys on the model which are pre-populated for new records and do not change with any record updates. If an application cannot pre-populate primary keys in the data objects for any reasons and the data objects are bound to tables, trees or treeTables, it needs to have the following configuration to workaround potential failures due to primary key value changes:
Here is an example:
<af:table value="#{bindings.EmpView1.collectionModel}" var="row"
... partialTriggers="it1">
<af:column sortProperty="Empno" sortable="true"
headerText="#{bindings.EmpView1.hints.Empno.label}"
id="c1">
<af:inputText value="#{row.bindings.Empno.inputValue}"
... autoSubmit="true" id="it1">
<f:validator binding="#{row.bindings.Empno.validator}"/>
<af:convertNumber groupingUsed="false"
pattern="#{bindings.EmpView1.hints.Empno.format}"/>
</af:inputText>
</af:column>
...
<af:column sortProperty="Deptno" sortable="true"
headerText="#{bindings.EmpView1.hints.Deptno.label}"
id="c8">
<af:selectOneChoice value="#{row.bindings.Deptno.inputValue}"
label="#{row.bindings.Deptno.label}"
shortDesc="#{bindings.EmpView1.hints.Deptno.tooltip}"
id="soc1">
<f:selectItems value="#{row.bindings.Deptno.items}" id="si1"/>
</af:selectOneChoice>
</af:column>
</af:table>
The Application View Cache won't work for any page where the rendering of the component tree causes the structure of the component tree to change temporarily. Since this is often the case and the application developer has no way of telling when this will occur, USE_APPLICATION_VIEW_CACHE should never be used. It also only helps initial render performance and does not help the session size.
New Window Detection logic only works in Rich Client applications, but not in Trinidad applications For Trinidad applications, the following parameter should be added in web.xml to disable New Window Detection logic.
<context-param>
<param-name>oracle.adf.view.rich.newWindowDetect.OPTIONS</param-name>
<param-value>off</param-value>
</context-param>
The table component has some known issues in emailable page mode.
ADF Faces components do not support persisting customization changes if the component is contained inside of (anywhere in the subtree of) af:forEach or af:iterator. However, if the repeating component and the repeated component are located across document, for example, in different jsff or jspx files, then we can't detect this case and will allow the customization persistence.
Because of a limitation in the IE userData persistence behavior, the userActivity data for previous requests may be partially or sometimes completely unavailable when accessed from pages with a different URL than when it was originally saved.
In af:table, when you have a detail stamp and you keep the detail stamp expanded, then table column reordering
won't work. Workaround: collapse the detail stamp first and then do the column reordering.
ADF Faces users can typically produce accessible table content by specifying column headers for every column in their AF:table. However, in certain complex cases, such as when the AF:table contains total or subtotal rows, the cell containing the labels for these rows may be inappropriately associated with the containing column's column header. For example, assuming a column contains employee names and has the header text "Employee Name", a cell containing the text "Total" will be inappropriately identified to screen reader users as being an "Employee Name". In order to avoid confusion, such cells should not be associated with any column header. ADF Faces does not provide any mechanism for suppressing column headers for such cells.
When interacting with an AF:table, AF:tree, or AF:treeTable, using the up/down arrow keys to change the selection can result in a round trip to the server. ADF Faces already optimizes to reduce the number of round-trips by only sending a single request at a time, and also by dropping requests for intermediate selection states that occur while a request is outstanding. However, in some cases keyboard users may find the current behavior inefficient, since a request is sent to the server as soon as the request queue frees up. Ideally, no request would be sent until after the user has reached the item that they intend to select - ie. until after the user has paused keyboard activity for some short period of time.
Currently read-only input components, such as AF:inputText, are rendered by ADF Faces as plain text. As such, there is a loss of information that may be meaningful to screen reader users - ie. screen reader users have no way to determine that the text in question corresponds to a input control. In addition, since plain text content is not included in the tab navigation order, screen reader users may fail to recognize that this read-only content is present on the page.
When there are multiple components share the same iterator binding in one page, the application needs to use partialTriggers to sync up UI states.
One example is a form and a table based on the same iterator binding, the table's partialTriggers needs to point to the form's navigation buttons,
for table selection to sync with form.
Due to WAS's specific implementation of HttpServletResponse class, server side redirect for UTF-8 encoded URL with MBCS characters does not work correctly. Because of this, when you access a page with multibyte character set name, you may get Http Error 404, or "Failed to find resource" error.
In some scenarios a session id may be inserted into URLs for ADF Faces resources such as JavaScript libraries, style sheets and images. This can happen when cookies are disabled in the user's browser or the first time that a user visits an ADF Faces application, at which point the application server does not yet know whether cookies are enabled. While this does not impact functionality, it can result in a small performance hit, since the presence of the session id prevents previously cached copies of resources from being used. In cases where the application requires the use of cookies, it is possible to avoid session id URL rewriting by configuring the application server to always use cookies for session id management. For example, Oracle WebLogic Server allows session id url rewriting to be controlled by the <url-rewriting-enabled> element in the weblogic.xml file.
With ADF Faces now requiring JSF 1.2, it is recommended to migrate your project and its containing files to JSF 1.2 when prompted in JDeveloper. If you choose not to migrate, ADF Faces DT will still provide support for the following changes:
Note that choosing to migrate when prompted will automatically take care of this for you.
If a JboException is used to throw an exception which is localized, ADF does not search in the correct resource
file for the property.
Workaround: Adapt the code in the Class PropertyListResourceBundle as shown, where you test if the value
returned by getLocale() is null, and call ResourceBundle.getBundle(getBundleName()) when this is the case.
...
protected Object[][] getContents() {
Locale locale = getLocale();
if (localeContents.containsKey(locale)) {
return (Object[][]) localeContents.get(locale);
}
ResourceBundle rb = null;
if (locale == null)
rb = ResourceBundle.getBundle(getBundleName());
else
rb = ResourceBundle.getBundle(getBundleName(), locale);
...
In Japanese locale, AppModule right click menu items 'Configurations...' and 'Go to Domain Class' don't work.
As a workaround for 'Configurations...' menu item, double click AppModule and select Configurations tab in AppModule Overview editor. A simple workaround for "Go to Domain Class" menu item: Expand the Domain
node to show the java class, then double click to open the java class directly.
When opening the visual editor you may not be able to see all the toolbar functions available and there is no visual indication
[... or =>] that more toolbar functions are available. You can, however, expand the window wider to see them all.
When viewing a page preview from the visual editor using the default browser users should:
This option will now be keyboard accessible.
When working in a facelet and attempting to drop a JSF html message component onto the page, a dialog appears to allow the user
to specify the ID to which to attach the message. The workaround is to use the Property Inspector to change the 'for' property of h:message.
Oracle Corporation | Worldwide Inquiries: | Copyright 1997,2009, 2010, 2011 Oracle and/or its affiliates. |