Oracle JDeveloper 11g and Oracle Application Development Framework (ADF) 11g

last updated: April 15, 2009

Known Issues for JDeveloper and ADF 11g (11.1.1.0.2)

Content

Introduction

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, 11.1.1.0.1 or 11.1.1.0.2).

Once an ADF application has been migrated to 11g, it will no longer work in a 10.1.3 environment. For more information about migrating ADF applications to 11g, please refer to the SRDemo Migration Guide on OTN.

Upgrading existing Oracle WebLogic Server instances to the 11.1.1.0.2 ADF runtime

  1. Open the uninstaller for of the Oracle WebLogic Server instance you want to upgrade.
  2. Select JDeveloper 11g (11.1.1.0.x) Studio Edition 11.1.1.0.0.
  3. Deselect everything under WebLogic Server.
  4. Click Next to complete the uninstall. If you're interested you can click on the Details button to see what was uninstalled.
  5. Open the JDeveloper 11.1.1.0.2 installer.
  6. Select the Oracle WebLogic Server instance where you want to install the new version of the ADF runtime.
  7. Deselect everything, and then select only Application Development Framework Runtime. Note: This will also automatically select the JDeveloper and ADF folders.
  8. To avoid class loading issues, rebuild all your EAR files.

Note: You will find the Oracle WebLogic Server uninstaller either as $WLSHOME/wlserver_10.3/uninstall/uninstall.sh or %WLSHOME%\wlserver_10.3\uninstall\uninstall.cmd. On a headless server (like a Linux or UNIX-based system), you may need to set the DISPLAY variable to an X Server like VNC or Xming. (Assuming that $WLSHOME or %WLSHOME% is your home directory for the WebLogic Server 10.3 installation.)

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. However, a generic Java EE application can be migrated to JDeveloper 11g and deployed (outside of JDeveloper) to Oracle's 10.1.3 Application Server, provided you have not included anything that would preclude running on the 10.1.3 Application Server.

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.

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. 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.

Migration Issues

Applications and projects open at time of migration are not opened in new version (8330717)

Applications and projects opened in the original version are not opened in the version after migrating system files. The work around is to manually migrate the workspaces and projects by opening them in the new JDeveloper version. However, breakpoints and window positions are not migrated after manually migrating.

Unable to automatically migrate custom ADF Faces 10.1.3 components to Trinidad

The JDeveloper migration utility cannot migrate custom 10.1.3 ADF Faces components to 11g. You must manually migrate all custom components to 11g.

Migrating projects that contain web services

When you migrate a project containing web services created in an earlier version of JDeveloper, the Projects page of the migration wizard asks whether you want to migrate the web.xml file to version 2.5 web.xml. You should deselect this field because JAX-RPC web services do not work with version 2.5 web.xml files. They work only with version 2.4 web.xml files.

After you have migrated a project containing a J2EE 1.4 web service to JDeveloper 11g , you will be able to continue working on that web service because the J2EE 1.4 web services wizards are available, although they are not exposed except in this circumstance. In addition, any further services created in the same project will also be J2EE 1.4 web services. Note that J2EE 1.4 services can be deployed only to an OC4J server (not to Oracle WebLogic Server) because they may contain properties that will only work in the context of an OC4J server.

J2EE 1.3 web services are not supported in JDeveloper 11g .

Migrating projects that contain JPA persistence units

When you migrate JDeveloper 10.1.3 applications containing JPA persistence units to 11g, you need to take a few additional steps to migrate your database connections. These steps ensure that the database connections defined in the IDE are available to your JPA applications when they run in the ADRS integrated WebLogic application server bundled with JDeveloper 11g. When running in ADRS, JDeveloper uses these database connection definitions to automatically create corresponding elements required by your JPA persistence units.

There are two paths for migrating applications from JDeveloper 10.1.3 to 11g: you can migrate an entire 10.1.3 application by installing the 11g upgrade and working through the install wizard , or you can migrate a 10.1.3 application from within an existing JDeveloper 11g installation. Each path produces different results for the corresponding database connections created in the migrated application Application Resources folder. These differences have to do with the way in which database connections are stored. In JDeveloper 10.1.3, database connections were stored globally, in a connections.xml file. In 11g, the database connections are defined within each application.

If you are migrating an entire 10.1.3 installation prior to working in 11g, point to your 10.1.3 system area when you launch JDeveloper 11g for the first time. This migrates all of the applications and connections found in the 10.1.3 work area, and you will be all set to run applications containing JPA persistence units using the ADRS integrated WebLogic server bundled with JDeveloper 11g. If you are already running JDeveloper 11g and choose instead to open and migrate an existing 10.1.3 application by opening its .jws file, all necessary named database connections will be created, but their connection details will be missing.

For individual 10.1.3 applications migrated into an existing version of JDeveloper 11g, you will need to manually add those connection details.

To manually add your database connection details:

  1. In your application, choose View > Database Navigator.
  2. In the Database Navigator, select your database connection, which was migrated with your application. Right-click the database connection and choose Properties.
  3. Add your user name and password to the connection dialog. These details were not migrated with your application.
  4. Click OK.

Once your application and its database connections (including all connection details) have been successfully migrated, you are ready to run your JPA application in the integrated ADRS WebLogic server. If you deploy to a remote server, you need to manually add a data source with the JDBC connection information in the server administrative console. Once your data source connection details are specified, the data source reference generated into the persistence unit during migration will resolve correctly to the data sources you have defined.

To manually set up your global database connection details for global deployment:

  1. Go to the WebLogic Server administrative console. To get to the console, type http://localhost:7001/console in your browser address bar. Note that you may have a different port number depending on your configuration. The ADRS port is 7101.
  2. In the administrative console, go to Domain Structure > JDBC > Data Sources.
  3. When you migrated, an element was created in the persistence-unit of the persistence.xml file called jta-data-source. Enter the value (jdbc/ConnectionIDS) defined in the persistence.xml file as the name of your JDBC data source in the server administrative console.
  4. Complete the form and click Finish.

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).

Subversion working copy (7554319)

To increase the performance of compile and clean commands it is recommended that the JDeveloper Projects output path does not point to a location within the Subversion working copy.

Issues with folders under version control (7585971)

If a folder is under version control ( eg Subversion) and user performs a Refactor -> Rename or Refactor->Move the operation will fail. The work around is to refactor the files within folder.

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.

For a simplified approach to migrate application credentials and policies for the two most common use cases, see the OTN "How To" article Simplified ADF 11g Application Credential and Policy Migration to Standalone WebLogic Servers.

When deploying non-ADF applications, you must first upgrade your Oracle WebLogic Server 10.3 to the latest patch release.

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.

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

Where WSDL is present policy not enforced (7718341)

The policy enforcement in the WLS server does not happen in the following case:

  • The deployed JAX-WS style service has a WSDL that the service is pointing to (usually with the 'wsdlLocation' parameter of the @WebService annotation) and
  • The WSDL has no policy advertisements in it and
  • The service implementation class has @Policies or @Policy annotations to attach policies.

To make the policy enforcement work:

  1. In the 'Web Content' of the project, create a xml file with name 'weblogic-webservices-policy.xml'.
  2. Enter the policy URI details as given in the following example code:
    
    
    <web:webservice-policy-ref
                                      
    
    xmlns:web="http://xmlns.oracle.com/weblogic/webservice-policy-ref">
                                      
    
      <web:port-policy>
                                      
    
        <web:port-name>myPort</web:port-name>
                                      
    
        <web:ws-policy>
                                      
    
          
                                      
    
    <web:uri>policy:Wssp1.2-2007-Wss1.0-UsernameToken-Plain-X509-Basic256.xml</web:uri>
                                      
    
          <web:direction>both</web:direction>
                                      
    
        </web:Ws-policy>
                                      
    
      </web:port-policy>
                                      
    
    </web:webservice-policy-ref>
                                      
    
                                    

    To attach more than one policy to the port, repeat the element with the required policy URI.

    If there are methods annotated with WLS policies, then insert a xml block similar to the one below with the correct operation name and the policy details. The element must be inserted within the element.

    
    
    <web:operation-policy>
                                      
    
      <web:operation-name>myOperation</web:operation-name>
                                      
    
      <web:Ws-policy>
                                      
    
        
                                      
    
    <web:uri>policy:Wssp1.2-2007-Wss1.0-UsernameToken-Plain-X509-Basic256.xml</web:uri>
                                      
    
        <web:direction>both</web:direction>
                                      
    
      </web:Ws-policy>
                                      
    
    </web:operation-policy>
                                      
    
    
                                    
  3. Build the project and deploy to the server.

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.java.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
    
    
                        ((BindingProvider)port).getRequestProperties(BindingProvider.ENDPOINT_ADDRESS, "http://mymachine.../...");
    

    where mymachine is the name of your local machine.

  • Change the default localhost by using the following parameter to the JDeveloper command to set a system property

    -J-Doracle.jdeveloper.webservices.localhost.default=localhost.localdomain

    • 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.

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:



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

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.

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:



    <xml>
    <parser-factory>
       <saxparser-factory>
         oracle.xml.jaxp.JXSAXParserFactory
       </saxparser-factory>
       <document-builder-factory>
         oracle.xml.jaxp.JXDocumentBuilderFactory
       </document-builder-factory>
       <transformer-factory>
         oracle.xml.jaxp.JXSAXTransformerFactory
       </transformer-factory>
    </parser-factory>
  </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)

Update: There is now a Weblogic patch for this issue. The patch ID is "RFRS" and the passcode "VGJ16G15". Note: This patch has already been applied to Weblogic server bundled with the JDeveloper 11.1.1.0.1 release.

JAX-WS proxy cannot read WSDL (7438109)

A JAX-WS proxy will report that it is unable to read a wsdl when the proxy wizard made a local copy of the wsdl and is then deployed as part of a webapp. The workaround is to apply the patch T7R1 password S2LN8LWB to the weblogic server you are deploying to, or to run the server with the JRockitVM.

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:



    // 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,

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:

  1. 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.

  2. 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.

  3. 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.

JAX RPC stateful service: JAX WS client is throwing exception (7533170)

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

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.

Importing TopLink CMP 2 projects (7384903)

When importing a TopLink CMP 2 project using the "TopLInk CMP 2 Map from Orion" wizard, the user must specify the EJB 2 class files as required inputs. Failure to do so will result in compiler errors due to missing EJB-related classes. To resolve these errors the user must add the EJB 3.0 library to their project using the Project Properties dialog.

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.

Repeated start/stop or redeploy causes memory leak (7393267)

Repeated start/stop or redeploy of an application causes memory to leak and the server has to be restarted to clean up the memory. New applications created in JDeveloper 11.1.1.0.1 will be configured with a Weblogic Application Lifecycle Listener to handle this scenario. For older applications migrated to 11.1.1.0.1, the listener will need to be manually added to the weblogic-application.xml of the application to solve this issue.



  <listener> 
  <listener-class>oracle.adf.share.weblogic.listeners.ADFApplicationLifecycleListener</listener-class> 
</listener>
                              

                            

ADF Controller Issues

ADFc save points and dialogs

In this release, ADFc save points created while a dialog window is shown are not correctly supported. If an implicit save point is created while a dialog window is shown, a severe warning will be written to the application log. For explicit save points, a runtime exception will be thrown. If an inline popup is shown when a save point is created, the inline popup will not get restored when the save point is restored.

10.1.3 regions vs. 11g regions

In ADF Faces 11g, regions are reusable page flows. They have their own navigation rules, managed beans, and ADF Model layer page definitions. Each page within the region is a page fragment ( jsff). Do not confuse the 11g af:region component with either the 10.1.3 region component or its 11g version, the Trinidad region component.  Both 10.1.3 and Trinidad regions are single page fragments that do not have multiple pages, navigation rules, or managed beans. The 10.1.3 region is similar to the 11g page templates and declarative components, and it will behave in 11g the same way it did in 10.1.3. The Trinidad region behaves as did the 10.1.3 region.

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.

On Safari 3.1.2, af:richTextEditor component is not supported. Furthermore, many keyboard events do not fire, so users should use a mouse when using Safari 3.1.2.

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.

Type conversion exceptions

The reference implementation for JSF has changed, and the EL engine is now much stricter in terms of what values may be pushed into the expression. As a result of this users could now see converter exceptions that they didn't see in the past. The exceptions look like:

org.apache.myfaces.trinidadinternal.convert.ConvertException:

Could not convert ??? of type class ??? to class ???

These converter exceptions are most likely to be seen when using jbo domain types. Currently, our converters handle a number of the jbo domain types, but not all of them. If you are seeing type conversion errors on jbo domain types you can add a custom converter to fix the problem (note future releases will include this converter). This involves 3 steps:

  1. Add a converter tag to your component, for example.
    <:converter id="oracle.genericDomain"/>
    
    
  2. Register the converter in your faces-config.xml file.
    
    
      <Converter>
        <display-name>Generic Domain Converter</display-name>
        <converter-id>oracle.genericDomain</converter-id>
        <converter-class>oracle.adfinternal.view.faces.convert.GenericDomainConverter</converter-class>
      </converter>
    
  3. Add the following converter to your application:
    
    
    package oracle.adfinternal.view.faces.convert;
    
    import javax.el.ValueExpression;
    import javax.faces.component.UIComponent;
    import javax.faces.context.FacesContext;
    import javax.faces.convert.Converter;
    import javax.faces.application.FacesMessage;
    import javax.faces.convert.ConverterException;
    
    import org.apache.myfaces.trinidad.component.UIXEditableValue;
    import org.apache.myfaces.trinidad.util.MessageFactory;
    
    import oracle.jbo.JboException;
    import oracle.jbo.domain.TypeFactory;
    
    /**
     * Converter for most of the oracle.jbo.domain types.
     * @author The Oracle ADF Faces Team
     */
    public class GenericDomainConverter implements Converter
    {
    
     public Object getAsObject(FacesContext context, UIComponent component, String value)
     {
       if (context == null || component == null)
         throw new NullPointerException();
       if(value != null)
       {
         // the "value" is stored on the *value* property of the component.
         // The Unified EL allows us to check the type
         ValueExpression expression = component.getValueExpression("value");
         if (expression != null)
         {
           Class<?> expectedType = expression.getType(context.getELContext());
           if (expectedType != null)
           {
             // try to convert the *value* (Object) to the TYPE of the "value" property
             // of the underlying JSF component
             try
             {
               return TypeFactory.getInstance(expectedType, value);
             }
             catch (JboException e)
             {
               Throwable cause = e.getCause();
               if (cause == null)
                 cause = e;
               FacesMessage msg = new FacesMessage(FacesMessage.SEVERITY_ERROR,
                                                   MessageFactory.getString(context, UIXEditableValue.CONVERSION_MESSAGE_ID),
                                                   cause.getLocalizedMessage());
               throw new ConverterException(msg, e);
             }
           }
         }
       }
       return null;
     }
    
     public String getAsString(FacesContext context, UIComponent component, Object value)
     {
       return value != null ? value.toString() : null;
     }
    }
    

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.java.com/bugdatabase/view_bug.do?bug_id=4823811

Drag and drop

The af:dropTarget tag must have at minimum one af:dataFlavor child tag.

Using Apache MyFaces Trinidad components

The mixing of Apache MyFaces Trinidad tr: tags with ADF Faces af: tags on the same page is not supported. You can mix the Trinidad trh: tags with ADF Faces AF: tags. However, there can be some cross-browser layout issues encountered with using the Trinidad trh: tags. As a best practice use the ADF Faces AF: layout tags as your first choice unless the layout is only achievable using the Trinidad trh: tags.

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.
  • Gauge does not load if the gaugeLegendArea and thresholdSet/threshold child tags are used together. The workaround is to specify a numberType in the tickLabel child tag.
  • There are known issues using Flash graphs in BiDi locales. The workaround is to use PNG graph image format.
  • Users of the ADF DVT simple Graph tags listed in the table below are advised to use the following new syntax going forward:
  • Deprecated Tag New Syntax
    <dvt:dualYBarGraph>  <dvt:barGraph subType="BAR_VERT_CLUST2Y">
    <dvt:stackedBarGraph> <dvt:barGraph subType="BAR_VERT_STACK">
    <dvt:dualYLineGraph>    <dvt:lineGraph subType="LINE_VERT_ABS_2Y">
    <dvt:dualYComboGraph> <dvt:comboGraph subType="COMBINATION_VERT_ABS_2Y">
    <dvt:horizontalStackedBarGraph>  <dvt:horizontalBarGraph subType="BAR_HORIZ_STACK">
    <dvt:stockCandleGraph> <dvt:stockGraph subType="STOCK_CANDLE">

ADF DVT Geographic Map

When creating a new Geographic Map, use the following URLs:


ADF DVT Pivot Table

In order to store edits the PivotTable needs to bound to a DataControl/Model that supports writeback operations. A Rowset based DataControl, like the BC4J based DataControl is transformed into a cube and due to the transformation cannot support writebacks.

ADF DVT Gantt Chart

  • 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.
  • There are known issues with 'Time Unit' functionality in the Project Gantt and the Resource Utilization Gantt.
  • In Project Gantt there are following known issues:
    • If the user tries to move a task with an inside label bar by grabbing on the label, an error occurs.
    • The right mouse popup does not work, and the labels to not appear when the label placement is inside a task.
    • The hour glass remains visible after the tasks are collapsed.

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:

                                    <env-entry>

  
                                   <env-entry-name>welcomeMessage
                                   </env-entry-name>
  
                                   <env-entry-type>java.lang.String
                                   </env-entry-type>
  
                                   <env-entry-value>Hello there
                                   </env-entry-value>
                                    </env-entry>
                                

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")
  
                                   private  
                                   String _welcomeMessage;

   
                                   public  
                                   String 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.

Datacontrol panel empty on startup if JSPX page is open (7585628)

In an application with datacontrols and a JSPX page which contains a number of DVT components, you may find upon restart that the datacontrol's window is displayed open but empty. Selecting refresh adds the datacontrols back to the panel again.

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



    <init-param>
     <param-name>mapping</param-name>
     <param-value>oracle.jbo.html.struts11.BC4JActionMapping</param-value>
   </init-param>

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:

<action-mappings type=

                                   "oracle.jbo.html.struts11.BC4JActionMapping">
   <action .../>
   <action .../>
 </action-mappings>
                                

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 the 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:

  1. 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.
  2. 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
ADF Swing app deployed using WebStart Does not work NA

Using complex DataType with Swing

When using complex datatype, it might hit "oracle.jbo.NoDefException: JBO-25058" error.  Use the following to workaround this problem:



        Add ObjectType=true  in the accessorIterator  tag of corresponding pagedef file.

        e.g.

        <accessorIterator  MasterBinding="Bc4jclientView" RangeSize="25"

        ......

  
                                   id="EmployeeaddressIterator" ObjectType="true"/>
                            

ADF Mobile

ADF mobile does not support headers in group columns

When you nest tr:column tags to create column groups, the header facets do not render for the column groups. 

On mobile devices, tab bars do not display on the top and bottom of the tr:panelTabbed component

To save space on mobile devices, the renderer intentionally prevents the display of tab bars on both the top and the bottom of the tr:panelTabbed component. Valid values for the attribute positions are top and bottom. If both of these values are specified, then the renderer displays the tabs only on the top.

Disabled items within tr:processChoiceBar do not display on BlackBerry devices

Setting the disabled attribute for an item within <tr:processChoiceBar> prevents it from displaying on Blackberry devices.

ADF mobile renders the tr:train component as a static object

The tr:train component appears as x of y instead of listing each item. This is a display-only component in ADF Mobile; users cannot navigate through the application by clicking the x of y component. To enable navigation, you must add a separate link or button.

Addition of ADF Faces libraries will result in extra JavaScript and CSS file downloads for ADF Mobile applications

If any ADF Faces related library is added to an ADF Mobile project, then ADF Faces related JavaScript and CSS files will be downloaded to a mobile browser running an ADF Mobile Application. Extra files are downloaded even if the ADF Mobile application pages do not contain any ADF Faces components. This will significantly impact page navigation performance for an ADF Mobile application. Please ensure that any project containing ADF Mobile pages and page flows do not include any ADF Faces related libraries. Only "Mobile" technology scope should be selected during the ADF Mobile view project creation.

Selecting a template during JSF page creation will unnecessarily pull in ADF Faces libraries (7514287)

In the JSF Page creation wizard, developer has the option of selecting a page template as a starting point for the page. If a template is selected, ADF Faces Rich Client and related component libraries will get added to the ADF Mobile project, which will pull in extra JavaScripts and CSS files that are not needed for ADF Mobile. Please ensure "Do not use a template" is selected in the "Use Page Template:" drop down list box when creating a page intended for mobile device browsers. ADF Mobile currently does not support the template functionality.

ADF Web Service Data Control Issues

Deployment failure when JAX-WS service and web service data control are in the same application (7445159)

Deployment fails if an ADF application contains the JAX-WS service and the web service data control for it in the same application i.e same deployment ear. The JAX-WS service fails to deploy if the Oracle XDK parser is configured in the application's "weblogic-application.xml".  The JAX-WS must be deployed as a separate app.

WSDL's not supported by web service data control (4524777)

Schemas in the WSDL, which have complex types that are defined as "ANY" data type or ones whose type is defined as a whole schema, are not supported.

Web service data control security limitations

Web Service data control security cannot be configured for web services created in JDeveloper 11.1.1.0.0, that have WLS web services security policies attached. The data control security configuration will work for 10.1.3 style web services deployed on Application Server 10.1.3.

Digital signatures issued by the web service data control created in JDeveloper 11.1.1.0.0 may not interop with 10.1.3 style web services deployed on Application Server 10.1.3

Customers who intend to build web service data controls to secure web services deployed on Weblogic server, should wait for the next release of JDeveloper, which will support attaching client side web service policies to the data control. In JDeveloper 11.1.1.0.0, one can create a java bean data control over a web service proxy to invoke a secure web service deployed on Weblogic server.

Oracle Platform Security Services

The policy file shipped with Oracle WebLogic Server included in this release might not work if a security manager is enabled. For "How To" and other documents on Oracle Platform Security Services see http://www.oracle.com/middleware/technologies/oracle-platform-security-services.html

Translation and Globalization Issues

XPathException" is shown in message window in Japanese locale (7448598)

This error message is harmless and there is no loss of functionality.

Documentation and Tutorials

Fusion Order Demo (FOD)

When locally run you can create a directory path in the system folder that exceeds the 255 character limit of Windows XP. This is mainly the result of 3 files:



        WEB_INF_customer_registration_task_flow_customer_registration_task_flow_createPaymentOption.xml
        WEB_INF_customer_registration_task_flow_customer_registration_task_flow_userRegistrationCreate.xml
        WEB_INF_employee_registration_task_flow_employee_registration_task_flow_userRegistrationCreate.xml

located at:




        <BEA_Home>
                               jdeveloper\system\system11.1.1.0.31.51.50\o.j2ee\drs\StoreFrontModul
                               e\StoreFrontModule-StoreFrontUI-webapp\WEB-INF\classes\oracle\fodemo\storefron
                               t\pageDefs
                            

This results in not being able to delete the system folder. To workaround this, from Windows Explorer drag and drop one of the inline folders such as classes to desktop or another directory then it can be deleted. Then delete the system folder after that.

Miscellaneous Issues

Using "data." in expression language

Expressions containing "data." may not work properly in page defs of fragments that are in taskflows that are reused in regions with isolated transactions. As a workaround, in the case where "data.<pagedef>." refers to the same pagedef that the expression is used in, it can be replaced with "bindings."

Oracle XSQL pages

By default when you create an Oracle XSQL Page in JDeveloper 11g, the XSQLConfig.xml file is setup to use the oracle.xml.xsql.XSQLOracleDatasourceConnectionManager connection manager. This allows you to use JDBC datasource names instead of name connections defined in the XSQLConfig.xml file itself. In this release, assuming you have created an application resources connection named scott, the JDeveloper design time configures your XSQL page to use a datasource named "jdbc/scottDS". You will need to manually change this to be "java:comp/env/jdbc/scottDS" for it to work correctly (Bug 7423625)

Accessible alternative to Flash Graph/Gauge

An accessible alternative to Flash Graph/Gauge is to use an ADF Faces Table or a DVT PivotTable.