This document lists known issues for this release. As new issues arise, they
will be added to this document.
General Issues
Migration
Migration to JDeveloper 11g is supported from JDeveloper 10.1.3.4 only. If
you are using an earlier version of JDeveloper, Oracle recommends migrating
to 10.1.3.4 before migrating to 11g (11.1.1.0.0).
For more information about migrating project content to 11g, please refer to
the SRDemo
Migration Guide on OTN.
Deployment
ADF 11g applications require a Java EE 5 container. To date, only Oracle WebLogic
Server 10g (10.3) is certified, and we plan to support JBoss and Tomcat as well.
Note, OC4J 10.1.3 and/or OAS 10.1.3 is not fully Java EE 5 compliant, and ADF
11g applications will not work in that environment.
Integrated WLS
JDeveloper 11g now includes support for Oracle WebLogic Server as the integrated
server, used when running and debugging web applications from within the JDeveloper
design time. In this release, only Oracle WebLogic Server 10g (10.3) can be
used for this purpose, and you must use the domain created during installation
of JDeveloper (DefaultDomain).
Feedback
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!
Installation Issues
Please read the installation
guide for details on system requirements and specific installation instructions
for various platforms.
Native installers for Windows and Linux
The installation
guide describes how to use the generic installer to install JDeveloper on
any supported platform. In addition, there are platform-specific installers
available for Windows and Linux. One benefit of the native installers is that
they include the appropriate JDK for the platform, so installation steps are
simplified.
To use the Windows installer (note, it is not necessary to install a JDK before
proceeding with these steps):
Download jdevstudio11110install.exe
Double-click jdevstudio11110install.exe to start the installation process
On the JDK Selection page of the installer note that you can choose to use the JDK that is bundled with the installer (Sun JDK 1.6.0_05). Optionally, you could browse and select a previously installed JDK for JDeveloper to use.
To use the Linux installer (note, it is not necessary to install a JDK before
proceeding with these steps):
Download jdevstudio11110install.bin
Ensure the .bin file is executable: chmod +x jdevstudio11110install.bin
Execute the Bin file to start the installation process: ./jdevstudio11110install.bin
On the JDK Selection page of the installer note that you can choose to use the
JDK that is bundled with the installer (Sun JDK 1.6.0_05). Optionally, you could
browse and select a previously installed JDK for JDeveloper to use.
Running the installer from network drives under Windows
(7363492)
When launching the installer directly from a network location, you should use a mapped drive instead of a UNC path. If you use a UNC path, you will get a ClassNotFoundException (com.bea.cie.gpr.internal.model.DelegateHomeListHelper).
Performance may be degraded if you change directory to the network drive and
invoke the installer using a relative path. For better performance, use a local
directory as your current working directory and specify the full path to the
installer. For best performance, copy the installer locally before invoking.
On Windows, installations on systems which have disabled
NTFS 8.3 Name creation may have problems if you use paths with long file names.
(7342763,7293026)
JDeveloper, ADF Runtime and WebLogic Server make use of 8.3 short filenames
on Windows to handle cases where certain paths, such as the JDK and WebLogic
domain location, contains spaces. If you wish to use spaces in those paths,
please be sure you have NtfsDisable8dot3NameCreation set to the default value
of 0 (not 1) before installation. You can re-enable 8.3 naming by using regedit
to set HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/FileSystem's NtfsDisable8dot3NameCreation
to 1.
Installing JDeveloper on Mac OS
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 for additional details
on installing JDeveloper for Mac OS X.
1. Make Java 6 the default VM.
Run Java Preferences (in /Applications/Utilities/Java)
Move the Java SE 6 (64 Bit) to the top of the Java application versions list (General tab)
2. Create a symbolic link for classes.jar
Enable root user:
Open the Directory Utility app from Applications - Utility
Ensure the settings are unlocked (click the lock if necessary)
Choose Edit > Enable Root User and provide the root user password.
Note, you can return to this same screen to disable root user after creating the symbolic link
Create the symbolic link:
cd /SystemLibrary/Frameworks/JavaVM.framework/Versions/1.6.0/Home/
su root
mkdir jre
cd jre
mkdir lib
cd lib
ln -s ../../../Classes/classes.jar rt.jar
Avoid folder names with more than one '.' (7483204)
If you install into a directory with long file names, in which one of the folder
names contains more than one '.' (such as c:\Oracle\JDeveloper\11.1.1), the
resulting 8.3 filepath generated by NT's ~fsi construct is garbled. Since the
cmd scripts in WLS rely on ~fsi to properly translate long names in to 8.3 format,
this bug breaks a number of utilities, such as quickstart and configwiz.
IDE and Java SE Development
Creating Subversion repository (7458398)
When selecting Versioning -> Subversion -> Create Repository to create
a file repository, the "Create Subversion Connection" panel pops up
and asks for information. Simply ignore this panel by clicking the "Cancel"
button and then ignore the following "No Subversion Repository Information
Found" error message by clicking the "OK" button. The repository
should still be created and can be accessed in normal ways (e.g. from the Versioning
Navigator).
Deployment Issues
Known issues
Port Binding Error in Integrated WLS - If a port binding error is encountered
when starting the Integrated WLS domain it is likely because the port is already
in use. The user will have to configure an unused port under Tools->Preferences->Run->Edit
Server Instances->Server Instances->DefaultServer->Startup->Listen
Port.
ADF applications with connections that require a password and are deployed
to the same Weblogic Domain must provide unique connection names. Consider two
ADF applications (Application1, Application2) that are deployed to a WLS Domain.
If both applications have Connection1, the connection names could be called
Application1_Connection1 and Application2_Connection1.
For information about configuring a Managed Server on Oracle WebLogic Server,
see Configuring
Managed Servers in the Creating WebLogic Domains Using the Configuration
Wizard guide.
After you deploy a web application to standalone Oracle WLS, you must migrate
your application's credential store and any security policies outside of JDeveloper.
A script has been provided to assist with this process. The script merges the
credentials of your application with the existing data store. Additionally,
if your web application implements security, the script can merge application-level
security policies with domain-level policies. Use of the script is necessary
to complete deployment of a production application since JDeveloper does not
deploy the database connection credentials and security policies. For the steps
to perform the migration, see "Migrating the Security Repository to a Production
Environment" in the "Developing Secure Applications" section
of the JDeveloper online help. This topic describes how to use the script to
migrate a credentials data store, a security data store, or both data stores.
When deploying non-ADF applications, you must first upgrade your Oracle WebLogic
Server 10.3 to the latest patch release. For information on the latest required
patch, see the Application Server certification information on OTN: http://www.oracle.com/technology/products/jdev/htdocs/11/
Running applications with limited free memory (7343786)
Under certain circumstances, if you do not have enough free memory available,
you may receive an error when running an application:
Error occurred during initialization of VM
Could not reserve enough space for object heap
Normally you would resolve this by adding -Xms and -Xmx arguments to the project's
Run/Debug profile. However, there are existing entries for these settings in
the WebLogic startup that will override the project's settings. The proper way
to resolve this error is to add EXTRA_JAVA_PROPERTIES to your environment, as
follows:
On Linux
setenv EXTRA_JAVA_PROPERTIES "-Xms512m -Xmx512m"
On Windows
set EXTRA_JAVA_PROPERTIES="-Xms512m -Xmx512m"
Debugging Issues
Debug action buttons
The debug action buttons, such as buttons for step over, step into, and more,
always show on the main toolbar during a debugging session, but they will not
show by default on the debugger log pages. To show the debug action buttons
on the debugger log pages, turn on the option "Show Toolbar in Log Window
While Debugging" on the Debugger Preferences page.
Debugger window (7341813)
Currently objects will only be displayed in the debugger windows when used,
if only initialized in the declaration will not show in Data nor Smart Data
windows. This does not apply to native types.
Debugging Java EE applications
You can only debug one Java EE application at a time. If you are debugging
a Java EE application, and you debug a second Java EE application, the first
application will be terminated and undeployed, and the server will be restarted
to debug the second application.
You cannot rerun/redeploy or terminate a Java EE application while the debugger
is paused at a breakpoint. Make sure the debugger has been resumed before rerunning
or terminating an application.
Use of the 'debugFlag' with Integrated WLS and WebLogic server
Having the following environment variable set in the environment from which
JDeveloper is launched interferes with attempts to start the WLS debugger under
Integrated WLS:
set debugFlag=true
This flag is used when launching the WLS debugger from outside of JDev, as
through a cmd shell. When present, it signals to the WLS domain start script
to add an extra set of args to the java process. Unfortunately, these conflict
with the ones we are already passing, causing this error:
Error occurred during initialization of VM agent library failed to init: jdwp
ERROR: Cannot load this JVM TI agent twice, check your Java command line for duplicate jdwp options.
To avoid the conflict, you will need to remove/unset the debugFlag environment variable in the environment from which JDeveloper is launched.
If the variable is defined locally to a command shell, unset the variable
before launching JDeveloper.
If the variable is defined globally, as through the System panel of the
Control Panel on Windows, remove the variable and open a new command shell
to launch JDeveloper.
Web Services Development
Web proxy preference page adding items to exclude list
(7331548)
When the HTTP Analyzer is run it manipulates the proxy settings to make sure
that localhost and isotopes are not excluded. This allows it to capture traffic
to the Integrated WLS server. There is a bug in the preference page if you visit this
page it re-appends the local host exclusions. This will make the analyzer appear
to be broken if they are not removed manually.
HTTP Analyzer will not capture traffic from a JAX-WS Java
client that is being sent to localhost (7310483)
The HTTP Analyzer will not capture traffic from a JAX-WS Java client that is being sent to localhost due to a bug in Java (http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6737819). Use one of the following ways to work around this:
Use your machine name rather than localhost when calling the service. Either at generation time or runtime call the client with
If you are running JDeveloper on Linux you need to make no more changes.
If you are running JDeveloper on Windows, edit the c:\windows\system32\drivers\etc\hosts file and change the line
127.0.0.1 localhost
to be
127.0.0.1 localhost localhost.localdomain
If you are running JDeveloper on Mac OS X, edit the /etc/hosts file as root to include the name of the local machine. That is, change the line
127.0.0.1 localhost
to be
127.0.0.1 localhost localhost.localdomain
Avoid creating multiple top down web services in the same
project/package (7165531)
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 over-write
the ObjectFactory class created by the previous one if generated into the same
package.
You need to manually check out files in some source control
systems (7409318)
The web service generator code won't automatically check out files where this
is required by certain source control systems. If you don't do this they may
see the message:
java.io.IOException: Not in compound edit
at oracle.jdeveloper.webservices.wsa.JDevWSFileSystem.makeFileReal(JDevWSFileSystem.java:683)
at oracle.jdeveloper.webservices.model.java.generator.CreateClasses.createJaxWsInterfaces(CreateClasses.java:1203)
at oracle.jdeveloper.webservices.model.java.generator.CreateClasses.createClassesFromWSDL(CreateClasses.java:616)
at oracle.jdeveloper.webservices.model.java.generator.CreateClasses.action(CreateClasses.java:167)
Creation of top-down JAX-WS EJB web services - manually
edit wsdl location if copying locally (7191149)
When creating a top-down JAX-WS EJB web service via the create wizard, and deciding to copy the
wsdl locally (which is the default), make sure to change the wsdl location field to be within
the project's source. It is defaulted to the Web Content area (ie public_html\WEB-INF\wsdl)
and this will not work for an EJB web service as it must be in the project source area.
Avoid using java.util.Map and java.util.Collection family
types (7313063, 7248344)
java.util.Map and java.util.Collection family types are not supported by the WLS JAX-RPC stack.
Manually edit the header details if invoking WLS stateful
(conversational) web services from HTTP Analyzer (7388843)
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:
How to select multiple WLS policies from the Property Inspector
(6979786)
Property Inspector uses a common list editor to select multiple policies. This is different from the dialog
that is available in the web service creation wizard and web service property editor. To attach multiple
policies via the Property Inspector,
1. Go to the 'Web Service Extension' tab on the Property Inspector for web services and web methods.
2. Click on the button next to the 'Multiple Policies' field to invoke the list editor.
3. On the 'Edit Property' dialog, click on 'New'. This will show a new empty line in the 'List Items'.
4. Click on this empty line to view the policy URIs as a drop down list.
5. Select the required policy URI.
6. Click 'OK' to save and close the selection dialog.
JAX-WS Client use of MTOM requires some extra manual steps
(7396187)
In order for a JAX-WS client to use MTOM, the generated code must be changed by
hand. For example within MtomPortTypeClient.java the lines:
mtomService_Service = new MtomService_Service();
MtomService mtomService = mtomService_Service.getMtomPortType();
should be replaced by:
import javax.xml.ws.soap.MTOMFeature;
...
mtomService_Service = new MtomService_Service();
MtomService mtomService = mtomService_Service.getPort(
jaxwsmtom.MtomService.class, new MTOMFeature());
and an @MTOM annotation should be added to MtomService_Service.java.
Services migrated from a previous JDeveloper release are
not guaranteed to deploy and run in WLS
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).
Oracle XDK specified in weblogic-application.xml will
cause JAX-WS to fail to deploy (7424247, 7436727)
If you create any ADF components in an application the following entry automatically
gets added to weblogic-application.xml:
This means that any code deployed in that application will use the oracle xml parser rather than the default weblogic one. This in some cases can result in a 20% performance improvement.
Unfortunately this change will cause JAX-WS service to fail to deploy with
the following exception:
Target state: deploy failed on Server srg
[java] java.lang.NullPointerException
[Java] java.lang.NullPointerException
[Java] at weblogic.wsee.wsdl.WsdlTypes.collectNamespaces(WsdlTypes.java:213)
[Java] at weblogic.wsee.wsdl.WsdlTypes.collectNamespaces(WsdlTypes.java:229)
[Java] at weblogic.wsee.wsdl.WsdlTypes.collectNamespaces(WsdlTypes.java:229)
[Java] at weblogic.wsee.wsdl.WsdlTypes.parse(WsdlTypes.java:151)
[Java] at weblogic.wsee.wsdl.WsdlDefinitions.parseChild(WsdlDefinitions.java:520)
[Java] at weblogic.wsee.wsdl.WsdlExtensible.parse(WsdlExtensible.java:98)
You have two choices as to the correct way to resolve this issue. Either you can hand edit the weblogic-application.xml deployment descriptor so that it no longer contains this entry. (You can find this under the "Application Resources" section of the Application Navigator in the tree path Descriptors->META-INF->weblogic-application.xml)
You may have to do this after each time you create a new ADF component. Or
you can make sure that all JAX-WS service are deployed separately either by
creating a different application or creating a separate EAR file just for the
WS component without the offending deployment descriptor.
A JAX-WS proxy will report that it is unable to read a wsdl in two situations:
1) The proxy wizard made a local copy of the wsdl and is then deployed as part of a webapp. The workaround is to create a proxy that does not copy the wsdl locally. See the 'Select Web Service Description' page in the wizard.
2) The proxy is for a web service that has a target namespace with multiple parts (e.g. http://hello.ws.jax/). The workaround is to specify a package in the 'Specify Default Mappings' page of the wizard.
The JAX-WS async client for a 10.1.3 BPEL process will
not run by default (7315840)
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:
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);
Cannot deploy and run JAX-RPC with bare array types as
method parameters (7493019)
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:
Only do wrapped parameters, when starting from a java class
Create a bean object that contains all the properties. When creating the
web service make sure you select Document/Literal rather than Document/Wrapped
to prevent double wrapping.
Make sure you don't allow properties to be unwrapped when doing "top
down"
On the mapping options page when generating a Java web service from a WSDL
make sure you uncheck the "Unwrap Wrapped parameters" box on the
"Specify Default Mapping Options" page of the wizard.
Use the weblogic jwsc ant task
The ant task will generate a working service from the bare list types but
the schema for the WSDL will generate synthetic Java schema types which
may not be what the user wants.
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.
Web / Ajax Development
JSP compilation pertains to the whole project and not the selection.
EJB, JPA, and Java EE Development
'Weblogic 10.3 Remote-Client' library not added when creating
MDB client (7444133)
Running the Message-Driven Bean client throws the following exception because
'Weblogic 10.3 Remote-Client' library is not getting added by default to the
project while creating the Message-Driven Bean client.
To work around this problem user needs to add the 'Weblogic 10.3 Remote-Client'
library to the project's 'Libraries and Classpath' setting.
Working With EJB Data Binding
When working with EJB Data Binding and EJB Data Controls, please make note
of the refresh=ifNeeded condition in the page definition. In 10.1.3.x.,
refresh="ifNeeded" was a default value for method iterators. In 11g,
the new default value is "deferred" or "not specified" in
the page definition. For EJB Data Binding, the refresh="ifNeeded"
condition is needed to maintain the concurrency for ADF Faces and JSP/JSF pages.
When developing ADF Faces with two or more JSP/JSF pages, users need to manually
configure the page definition for the method iterator to say refresh="ifNeeded".
This flag tells the ADF Model not to invoke the same query method twice.
The ADF Model will call an accessor method each time it is needed, to compare
the cached result with the current one and to pick up changes. If the result
is different, then it resets the method iterator's cache state. For EJB and
EJB query methods, the result will differ every time the query method is invoked.
Consult the ADF Model documentation for the meaning of refresh="ifNeeded"
and other possible values.
General ADF Issues
Struts issues
Struts and Model1 databinding will no longer support JSP 1.2. Clients wishing
to stay with JSP 1.2 should instead use JDeveloper 10.1.3. JSP2+ is fully supported
in this release.
There is a new restriction that we no longer support an application running
ADF Struts and ADF Faces at the same time. If you wish to create an ADF Struts
based project, you cannot include the "JSF 1.2" library definition
in that project and if you wish to create an ADF Faces based project, you cannot
include the Struts library in that project.
ADF application redeployment: memory leak and cache refresh
Development cycle: Repeatedly running or debugging an ADF application from
JDeveloper may cause increasing memory usage by the integrated WebLogic server
process (7393267). After repeated runs of the application the server process
may fail with error "java.lang.OutOfMemoryError: PermGen space" (7445425).
Both of these conditions can be resolved by stopping and restarting the integrated
server process (menu option Run,>Terminate> DefaultServer followed by
Run->Start Server Instance). In extreme cases it may be necessary to manually
kill the server process if the menu option fails to stop it due to the memory
problem.
For exploded archive deployments, in place updates to ADF task flow metadata
files (like adfc-config.xml) may not be seen (7393651). This can be resolved
by either redeploying the application or stopping and restarting the server.
Merely stopping and restarting the application may not suffice.
ADF Faces and Data Visualizations
Supported platforms
ADF Faces is currently supported in the following user agents (i.e. browsing platforms):
User Agent
Windows
Solaris
Mac OS X
Red Hat Linux
Internet Explorer
7.0
-
-
-
Firefox 2
2.0.0.2+
2.0.0.2+
2.0.0.2+
2.0.0.2+
Firefox 3**
3.0+
3.0+
3.0+
3.0+
Safari**
3.1.2+ (desktop)
-
3.1.2+ (desktop)
-
** indicates that the browser is supported but not certified
Support for JAWS and Bi-Directional languages (such as Arabic or Hebrew) is only available in IE7.
You should disable or remove third party browser add-ons because they have
the capability to negatively interfere with the execution of the browser and
the ADF Faces client framework.
Component IDs and regions
To avoid conflicts between the ids of components in the same region, each jsff
page fragment in a region should be wrapped with f:subview where the id of the
f:subview is unique across the fragments in a region. This will ensure the uniqueness
of each component in the region, regardless of page fragment.
Migration from 10.1.3.x
Note that the JSF RI has changed. In 11.1.1.0.0 if you use an f:convertDateTime
where the pattern attribute evaluates to null, an empty string is returned.
In 10.1.3.x, if you use an f:convertDateTime where the pattern attribute evaluates
to null, null is returned.
Migration issues with OrdDomain classes
When you face problems with inputFile and the OrdDomain classes, like "oracle.ord.im.OrdImageDomain" you have to write a custom converter to convert the uploaded file into an OrdDomain object. For that you have to do the following steps:
The EL engine has changed, and it is now much stricter in terms of what values
may be pushed into the expression (see https://glassfish.dev.java.net/issues/show_bug.cgi?id=652).
Customers will need to write custom converters to support their application
needs.
useWindow attribute
The useWindow attribute is normally used to control whether dialogs launched
by the dialog framework are displayed in secondary browser windows (useWindow="true")
or inline in the same browser window (useWindow="false"). As of this
release, the value of the useWindow attribute is ignored and is always treated
as "true". As a result, dialogs which were formerly run inline are
now automatically promoted out to separate windows.
This change in behavior was made in order to work around problems with the
inline dialog return implementation. Currently this implementation leverages
non-standard servlet behavior which fails on some servlet engines, including
WebLogic. We are investigating solutions for restoring the inline dialog behavior
in more standard/portable way.
Ctrl+N support
In this release, the application user may experience incorrect behavior if
they use Ctrl+N to open a new window from their application, press the refresh
button on their browser toolbar (i.e. F5), or copy and paste a URL for an ADF
Faces app from one window to another. We expect to support Ctrl+N in a future
release.
af:convertDateTime affected by Sun bug 4823811
SimpleDateFormat patterns don't allow embedding of some literal punctuation.
This problem requires users to use a literal other than dash ('-') as the separator
for date components when the Locale's language is Arabic i.e. "ar".
See Sun bug which lists the issue and suggested workaround: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4823811
Drag and drop
The af:dropTarget tag must have at minimum one af:dataFlavor child tag.
ADF DVT graph and gauge
Firefox does not print Flash content, which is the default imageFormat for
DVT Graph and Gauge. Applications should set the imageFormat to PNG for use
in printable pages when the browser is Firefox. Flash content, including ADF
DVT Graphs and Gauges, prints fine when the browser is IE.
Pie graphs with long labels have issues with label wrapping and truncating
in Flash image format.
Pie graphs always display slice label text and value in PNG format, regardless
of the graph attribute settings.
If the pie graph image format is set to Flash, numbers in slice labels do
not change with locale.
The click listener on a scatter or line graph does not work for any markers
except the first in a series.
Alerts do not display on a Graph when the image format is set to Flash.
Use PNG image format as a workaround.
Bubble graph does not display data markers for both Flash and PNG formats
when 3DEffect property is set to true. Workaround is to set seriesEffect="SE_NONE".
Bubble graph does not render attribute labels in tooltips.
Tooltip in polar and radar graphs does not render group labels.
CustomToolTipCallback does not work correctly for Flash line or scatter
graphs.
In Flash format at runtime the Graph title and subtitle is displayed with
a Serif font instead of the Sans Serif font.
Users of the ADF DVT simple Graph tags listed in the table below are advised
to use the following new syntax going forward:
When displaying Gantt in Arabic the vertical scrollbar of the chart region
does not work.
The number format in the Gantt properties is not locale specific, this would
impact Japanese locale.
The date format in the Gantt properties is not locale specific, this would
impact Japanese locale.
The default rendering of the Gantt takes up the whole page, use a layout
to be able to add other components.
J2EE Resource Injection
This release does not currently support resource injection through the @Resource
and @Resource's notation or @PostCostruct and @PreDestroy from injected resources.
ADFFaces is dependent on a version of Faces that was not included with WLS.
As such, the current JSF R.I. 1.2.7.1 shared library that is distributed with
this release does not contain the WLS Resource injector which is responsible
for such functionality.
For example, lets say you have the following entry in your web.xml file:
This will expose the String entry into the J2EE environment with the name "welcomeMessage". Then let's say we define the following JSF managed bean (named "test") defined in the faces-config.xml:
TestRequestBean.java
public class TestRequestBean
{
@Resource(name="welcomeMessage")
privateString _welcomeMessage;
publicString getMessage()
{
return _welcomeMessage ;
}
}
When running in an environment with the properly configured resource injector, the value of _welcomeMessage would be assigned to "Hello there" which was taken from the entry in the web.xml. Without the resource injector, this value will be null when the bean is instantiated. Those needing resource injection are welcome to continue to use JSF 1.2.3 which is included with Weblogic, but you will not be able to ADFFaces Richclient or Trinidad because of some bugs with that distribution.
Keep in mind that the limitation for @PostConstruct and @PreDestroy annotations
applies only to injected resources, JSF Managed beans and objects stored in
one of the J2EE scopes will work just fine.
ADF Model Databinding
Changes to search form binding default behavior since Technology
Preview 4
A search binding provides the model-driven behavior for a search form (i.e.
<af:query> component) at runtime. It is related to a particular iterator
and view criteria on that iterator, whose runtime defaults are specified by
the Binds and Criteria properties of the search binding, respectively.
This section describes the default behavior of the search binding which has
changed since Technology Preview 4.
How a search form behaves the first time it's used in a page flow
A view criteria has a UI hint called "Query Automatically" that can be set on the "Control Hints" tab of the view criteria editor. This property defaults to false (i.e. unchecked). The first time a search form is used in a task flow, the "Query Automatically" hint of the view criteria related to a search binding affects the search binding's runtime behavior in the following way. If the search binding's related view criteria has its "Query Automatically" hint set to:
"Query Automatically" = true
Then the search binding automatically executes the iterator when the search binding is initialized in a task flow.
"Query Automatically" = false
Then the search binding clears the rowset related to its iterator
to show an initially empty search result to the end user (avoiding any
"eager" database query and allowing the end-user to provide search form
input to drive the query when they eventually press the (Search) button.
This feature is known as the search binding's initial AutoQuery-or-ClearRowSet behavior.
What you may need to know about the query automatically hint for the implicit
view criteria
There is no declarative way in this release to set the "Query Automatically" hint on the implicit "All Queriable Attributes" view criteria. It can be configured delcaratively only on developer-created, named view criteria. However, you can use the setProperty()*API on the ViewCriteria interface to configure the hint at runtime on any view criteria, including the implicitly-defined one. Set the property whose name is given by the constant *ViewCriteriaHints.CRITERIA_AUTO_EXECUTE to the value Boolean.TRUE to achieve this*.*
How a search binding behaves when the end-user changes the view criteria using
the saved search dropdown
The "Query Automatically" hint on the view criteria related to the search binding also affects the behavior when the end-user changes the current view criteria using the "Saved Search" dropdown list. When the new view criteria selected by the end user has:
"Query Automatically" = true
Then the search binding automatically executes the iterator after applying the new view criteria.
"Query Automatically" = false
Then the search binding applies the new view criteria only, leaving any search results intact.
Detecting whether the search binding's query has been performed
The search binding's queryPerformed property evaluates to true if the search binding has automatically performed the query as described above, as well as when the end-user has performed the query by clicking the (Search) button. Pressing the (Reset) button in the search form resets the view criteria and sets the queryPerformed property back to false again.
Customizing the default search binding behavior
The search binding offers two properties that allow you to customize its default behavior: TrackQueryPerformed and InitialQueryOverridden.
The TrackQueryPerformed property
A search binding's TackQueryPerformed property controls whether it manages its queryPerformedflag at runtime at the page flow level or at the level of the individual page/pageFragment on which the search form appears. The two valid values for the property are "pageFlow" and "page". The default is "pageFlow". These values cause the search binding to behave as follows:
If TrackQueryPerformed = "pageFlow", then the queryPerformedflag is initialized once per page flow and tracked at the page flow level. This means that the end-user can navigate away from the page on which the search binding's search form appears, and when the navigate back to that page (or page fragment) during the "life" of the same page flow the value of the queryPerformed flag will still be what it was when the end user left the page.
If TrackQueryPerformed = "page", then the queryPerformedflag is initialized each time the user navigates to the page (or page fragment), both when they first navigate to it during a page flow as well as when they navigate back to it from some other page during that page flow. This means that each time the end-user visits the page the queryPerformed flag is initialized.
You can set the search binding's TrackQueryPerformed property in the property inspector.
How TrackQueryPerformed affects search binding initial AutoQuery-or-ClearRowSet
behavior
When TrackQueryPerformed property of a search binding is set to "pageFlow" then
that search binding's initial AutoQuery-or-ClearRowSet behavior described
above is performed once during the page flow. In contrast, when TrackQueryPerformed
is set to "page" then the initial AutoQuery-or-ClearRowSet behavior is performed
each time the end-user visits the page (or page fragment).
The InitialQueryOverridden property
A search binding's InitialQueryOverridden property controls whether
it should suppress its initial AutoQuery-or-ClearRowSet behavior the
first time the search binding is used in a page flow. If TrackQueryPerformed
is true, then it effectively means that it suppressValid values include "true",
"false", or a boolean-valued EL expression. The default value for the property
is false.
When InitialQueryOverridden evaluates to "true" or boolean true, then the initial AutoQuery-or-ClearRowSet behavior is suppressed the first time the search binding is used in a page flow. If TrackQueryPerformed is set to "pageFlow", then effectively this means that it suppresses the only initial AutoQuery-or-ClearRowsSet behavior that would have occurred for this search binding.
In contrast, if search binding's TrackQueryPerformed property is
set to "page" then only the initial AutoQuery-or-ClearRowSet behavior
that would have occurred is suppressed. Subsequent initial AutoQuery-or-ClearRowSet
behaviors that occur due to the user's navigating back to the same page (or
page fragment) are not affected by the InitialQueryOverridden property.
What you may need to know about disabling the initial AutoQuery-or-ClearRowSet
behavior
If you want to avoid the search binding's performing any inital AutoQuery-or-ClearRowSet
behavior, then leave the TrackQueryPerformed set to its default of "pageFlow"
and set InitialQueryOverridden to "true".
What you may need to know about referencing the queryPerformed property in
an iterator's RefreshCondition
Oracle recommends not configuring the RefreshCondition property of an
iterator to reference the queryPerformed property of a search binding.
Doing so will inadvertently prevent new rows from being creating in that iterator's
rowset until the search binding's query has been performed.
ADF Business Components
New service-related features removed in this release, expected
to return in a maintenance release
JDeveloper 11g 11.1.1.0.0 release is a JDeveloper/ADF only release. In other words, the SOA and WebCenter related features that have been available in the Technical Preview releases were not ready for production at this time. Consequently, since the following new ADF BC 11g features depend on the SOA infrastructure that is not present in this release, regretfully these features have been removed in this JDeveloper 11g 11.1.1.0.0 release:
Service Interface - declaratively enable full-featured web services
based on the AM's top-level view object instances and custom methods,
Business Events - define events on an entity object and configure when they are raised for delivery to a SOA message bus
SDO Class Generation- generate data transfer objects for view object rows that comply with the Service Data Objects specification (used as an implementation detail of the Service Interface feature above.)
The SOA and WebCenter features (along with the aforementioned ADF BC features
on which they depend) are expected to appear in a subsequent JDeveloper/ADF/FusionMiddleWare
release.
Required pre-migration steps for Technology Preview 4 applications
using ADFBC service-related features
If you have built an application using the Technology Preview 4 release which
makes use of the service-related features mentioned above, you will need to
use the Technology Preview 4 release to remove those features before migrating
the application to JDeveloper 11g 11.1.1.0.0 production release. Specifically
this means you will need to use the JDeveloper 11g Technology Preview 4 release
to:
Remove the Service Interface from any Application Modules for which you have enabled it
Disable the SDO class generation for any view objects that have been enabled for SDO class generation (note that this generation may have been implicitly turned on for you by the Service Interface wizard for view objects you elected to expose via the service interface)
Remove any ADF BC Service Interface deployment profiles
Remove any entity object business event definitions.
As mentioned above, these features are expected to return in a subsequent release.
Manual changes required for Struts 1.1 applications using
ADFBC created originally using JDeveloper 9.0.2 -> 9.0.5
ADFBC-based applications using Struts 1.1 that were created with versions 9.0.2 through 9.0.5 of JDeveloper used a custom action mapping base class that was registered in the web.xml file using a servlet init parameter
JDeveloper 11g uses Struts 1.2.9 which no longer supports this approach for defining a custom action mapping class.
When you migrate your ADFBC/Struts applications that were created originally using JDeveloper 9.0.2 through 9.0.5, you will need to manually configure the struts-config.xml file of your application to reflect this custom action mapping class using the new Struts 1.2 approach which uses the type attribute on the <action-mappings> element in the struts-config.xml file.
So, you will need to update your struts-config.xml file's <action-mappings> element to look like this:
NotConnectedException thrown when using shared application
module (7444195)
oracle.jbo.NotConnectedException: JBO-25200: Application module is not connected to a database
If you run into exception above using shared application module, a workaround is to configure shared application module pool to not remove instances of shared application module as follows:
Open Application Module | Configuration.
Select Shared configuration and click on the Edit button.
Select Properties tab and enter values for the two properties.
jbo.ampool.timetolive: -1 (never expire)
jbo.ampool.maxinactiveage: 432000000 (5 days or any very high value)
ADF Security
Password length requirement In WLS
Weblogic requires user passwords to be at least 8 characters. If you are
migrating application with user credentials in jazn-data.xml ensure that
all user credentials are at least 8 characters long.
Security properties in application module configuration
are deprecated
Security properties "jbo.security.enforce", "jbo.security.loginmodule" and
"jbo.security.config" in application module configuration are deprecated.
Applications should use Configure ADF Security wizard to configure security.
Migration considerations for ADF security authorization
Entity attributes
Starting in release 9.0.5, we provided the ability to add a declarative security constraint to an entity attribute which granted read-only, update-while-new, or update access. In release 11.1.1, we redesigned the feature in order to lay the groundwork for data security support in a future release. Due to architectural differences between the old and new implementation, you will need to re-implement your entity security policies in 11.1.1. Instructions to do this can be found in section 28.4.3.1 Defining a Permission on ADF Business Component Entity Objects of the Fusion Developer's Guide For ADF.
Iterator, value and method bindings
In a 10.1.3.2 application configured for ADF authorization, we automatically
performed declarative authorization checks on iterator bindings, value bindings,
and method bindings. In release 11.1.1, we have turned off enforcement of binding
level security, which alleviates the burden on the application developer to
create grants for every binding, and also avoids the runtime performance
impact of performing a security check before each binding is accessed. When
migrating your application to 11.1.1, you have two options:
Set the JVM flag "-Doracle.adf.security.metadata=false" to put ADFm security into a 10.1.3-compatibility-mode in which binding security checks are still performed automatically.
Re-implement your UI-layer security restrictions using EL expressions within each JSPX page. Details on our enhanced security EL offering in this release can be found in section 28.6.1 How to Evaluate Policies Using Expression Language (EL) of the Fusion Developer's Guide For ADF.
ADF Swing
ADF Swing WebStart support
"Java Web Start" with BC4J as the model layer needs a "login dialog"
to be generated for JClient application to prompt for the Database credentials. The
Login Dialog needs to be generated using the Form wizard. WebStart is supported
without "login dialog" for bean datacontrol.
ADF layer security
ADF Security in this release of JDeveloper 11g has limited support with
ADF Swing and customers who require ADF Security to work completely
in ADF Swing, should wait for the next release of JDeveloper 11g.
Deployment Options
ADF Security
Work around to be followed
ADF Swing application run from JDeveloper
Works, no work around needed
N.A.
ADF Swing app deployed in jar files run from command line
Works with workaround
The following JVM properties need to specified when launching the swing application oracle.home - This is the directory where the Jdeveloper 11 is installed. oracle.security.jps.config - This is the full path to your application jps-config file. You will typically find this under <application_dir>\src\META-INF folder. jps.authz - Default authorization to read the credential store wallet to retrieve the password.
If your Swing application is deployed as "application.jar", then On Windows, these properties would be specified on the java command line as
Java-jar application.jar -Doracle.home=c:\jdev11g\jdeveloper -Doracle.security.jps.config=c:\jdev11g\JClientApp\src\META-INF\jps-config.xml
-Djps.authz=DEBUG_NULL
where, c:\jdev11g\jdeveloper is the dir where jdeveloper is installed. and C:\jdev11g\JClientApp is your application directory
On Linux / Unix, the command line would look something like
Java-jar application.jar -Doracle.home=/home/jdev11g/jdeveloper
-Doracle.security.jps.config=/home/jdev11g/JclientApp/src/META-INF/jps-config.xml
-Djps.authz=DEBUG_NULL
where, /home/jdev11g/jdeveloper is the dir where jdeveloper is installed.
And /home/jdev11g/JClientApp is your application directory