1.
ADF Data Binding Primer and ADF/Struts Overview[http://otn.oracle.com/products/jdev/collateral/papers/10g/ADFBindingPrimer/index.html]
2.
JDeveloper 10g and Oracle ADF Online Documentation[http://helponline.oracle.com/jdeveloper/help/state?navSetId=jdeveloper]
3.
JDeveloper 10g Tutorials [http://otn.oracle.com/obe/obe9051jdev/index.htm]4.
JDeveloper 10g Samples [http://otn.oracle.com/sample_code/products/jdev/index.html]5.
ADF Business Components Benefits in a Nutshell[http://www.oracle.com/technology/products/jdev/tips/muench/keybenefits/index.html]
6.
ADF Business Components J2EE Design Pattern Catalog[http://www.oracle.com/technology/products/jdev/tips/muench/designpatterns/index.html]
7.
Most Commonly Used Methods in ADF Business Components[http://www.oracle.com/technology/products/jdev/tips/muench/mostcommon/index.html]
8.
PDF version of this paper [http://otn.oracle.com/products/jdev/tips/muench/adftoystore_whitepaper_1012.pdf]9.
Java Pet Store Demo [http://developer.java.sun.com/developer/releases/petstore/]10.
Sun Core J2EE Patterns [http://java.sun.com/blueprints/corej2eepatterns/Patterns/]11.
Apache Struts [http://jakarta.apache.org/struts/]12.
Oracle Application Development Framework [http://otn.oracle.com/products/jdev/htdocs/905/adffaq_otn.html]13.
Oracle JDeveloper 10g [http://otn.oracle.com/products/jdev]14.
Using BC4J with Foreign Datasources [http://otn.oracle.com/products/jdev/howtos/bc4j/bc_foreign_db_intro.html]15.
ADF Toy Store (10.1.2 Version) Demo Zip File [http://otn.oracle.com/products/jdev/tips/muench/adftoystore_10_1_2.zip]16.
JUnit [http://www.junit.org/index.htm]17.
JDeveloper 10g JUnit Extension Download [http://otn.oracle.com/software/products/jdev/htdocs/junit10g/ibmcpl.html]18.
JDeveloper Extension Exchange [http://otn.oracle.com/products/jdev/htdocs/partners/addins/exchange/index.html]19.
Oracle XSQL Pages [http://download.oracle.com/docs/cd/B13789_01/appdev.101/b10794/adx09xsq.htm]20.
Mozilla Firefox [http://www.mozilla.org/products/firefox/]21.
Adventure Builder Architectural Documentation[http://java.sun.com/blueprints/code/adventure/1.0/docs/architecture.html]
22.
Sun Adventure Builder Demo [http://developer.java.sun.com/developer/releases/adventure/]23.
Business Delegate Design Pattern [http://java.sun.com/blueprints/corej2eepatterns/Patterns/BusinessDelegate.html]24.
Business Rules in BC4J [http://otn.oracle.com/products/jdev/htdocs/bc4j/BusinessRulesInBc4j.pdf]25.
Fast Lane Reader Design Pattern [http://java.sun.com/blueprints/patterns/FastLaneReader.html]26.
Data Access Object [http://java.sun.com/blueprints/patterns/DAO.html]27.
Transfer Object Design Pattern [http://java.sun.com/blueprints/corej2eepatterns/Patterns/TransferObject.html]28.
Value List Handler Design Pattern [http://java.sun.com/blueprints/patterns/ValueListHandler.html]29.
Transfer Object Assembler Design Pattern[http://java.sun.com/blueprints/corej2eepatterns/Patterns/TransferObjectAssembler.html]
30.
ADF JClient [http://otn.oracle.com/products/jdev/collateral/papers/9.0.5.0/jclient10g.pdf]31.
JUnit [http://www.junit.org]32.
Front Controller Design Pattern [http://java.sun.com/blueprints/corej2eepatterns/Patterns/FrontController.html]33.
Apache Struts DispatchAction JavaDoc[http://jakarta.apache.org/struts/api/org/apache/struts/actions/DispatchAction.html]
34.
Apache Struts ForwardAction JavaDoc [http://jakarta.apache.org/struts/api/org/apache/struts/actions/ForwardAction.html]35.
JSR 227 [http://otn.oracle.com/products/jdev/htdocs/techinfo/jsr227.html]36.
BC4J Performance Report [http://otn.oracle.com/products/jdev/htdocs/bc4j/bc4j_perf_report.html]37.
Understanding the ADF Business Components State Management Feature [http://www.oracle.com/technology/products/jdev/howtos/10g/bcstate/index.html]38.
JSP Standard Tag Library [http://java.sun.com/webservices/docs/1.0/tutorial/doc/JSTL.html]39.
JavaDoc for java.util.Map [http://java.sun.com/j2se/1.4.2/docs/api/java/util/Map.html]40.
JSTL Quick Reference by Bill Siggelkow [http://www.jadecove.com/jstl-quick-reference.pdf]41.
JSTL Quick Reference from Manning Publication's "JSTL in Action" Book [http://www.manning-source.com/books/bayern/bayern_apxA.pdf]42.
Oracle XML Developers Kit for Java [http://otn.oracle.com/tech/xml/xdkhome.html]43.
XSLT [http://www.w3.org/TR/xslt]44.
Apache FOP [http://xml.apache.org/fop/]45.
Writing Custom Action Handlers for Oracle XSQL Pages[http://download.oracle.com/docs/cd/B13789_01/appdev.101/b10794/adx09xsq.htm#i1024825]
46.
Building J2EE Applications with Oracle JHeadstart for ADF[http://www.oracle.com/technology/products/jdev/tips/muench/jhstutorial/index.html]
47.
Making ADF UIX Pages Accessible [http://www.google.com/search?q=making+adf+uix+pages+accessible&btnI=y]48.
Oracle ADF UIX Developer's Guide [http://www.google.com/search?q=adf+uix+developer%27s+guide&btnI=y]49.
Developing Multilingual J2EE Web Applications using Oracle JDeveloper 10g[http://www.oracle.com/technology/products/jdev/collateral/papers/10g/jdev10g_multilingual.pdf]
50.
Oracle "Browser Look and Feel" Guidelines [http://www.oracle.com/technology/tech/blaf/index.html]51.
Apache Ant [http://ant.apache.org/]52.
OTN JDeveloper HowTo Page [http://otn.oracle.com/products/jdev/howtos/index.html]53.
OTN JDeveloper HowTo Archive Page [http://otn.oracle.com/products/jdev/howtos/9i_howtos.html]54.
JSR 88 [http://jcp.org/en/jsr/detail?id=088]55.
Oracle Technology Network (OTN) [http://otn.oracle.com]56.
Installing the Sample Schemas and Establishing a Database Connection [http://otn.oracle.com/obe/obe9051jdev/common/OBEConnection.htm]57.
Developing an End-to-End Web Application Using the Default Technology Scope [http://otn.oracle.com/obe/obe9051jdev/ADFtoJSP/defaultendtoend.htm]58.
Creating a Business Model using ADF Business Components[http://otn.oracle.com/obe/obe9051jdev/ADFBC_Basic/lesson_adfbc.htm]
59.
Creating Custom Business Methods Using ADF Business Components[http://otn.oracle.com/obe/obe9051jdev/ADFBCCustomMethods/lesson_adfbc_custom_methods.htm]
60.
Adding a BI Beans Graph in an ADF Business Components/JSP/Struts Application [http://otn.oracle.com/obe/obe9051jdev/BIBeansOBE/BIBeansOBE.htm]61.
Creating an ADF JClient Application for Business Components [http://otn.oracle.com/obe/obe9051jdev/JClient/lesson_JClient.htm]62.
Developing Applications with Oracle ADF UIX [http://otn.oracle.com/obe/obe9051jdev/uixTutorial/lesson_UIX.htm]63.
Creating a JSP Application with ADF Using a Model 1 Architecture[http://otn.oracle.com/obe/obe9051jdev/ADFmodel1/ADFmodel1.htm]
64.
Oracle Technology Network JDeveloper Discussion Forum [http://www.oracle.com/forums/forum.jsp?forum=83]65.
RSS Feeds and Blogs [http://otn.oracle.com/syndication/index.html]66.
Dive into BC4J and ADF [http://radio.weblogs.com/0118231/]67.
Really Simple Syndication (RSS) [http://www.webreference.com/authoring/languages/xml/rss/intro/]68.
Yahoo! Directory of RSS News Readers [http://search.dmoz.org/cgi-bin/search?search=rss+news+readers]69.
Google Directory of RSS News Readers [http://www.google.com/search?q=Directory+of+RSS+News+Readers&btnI=y]70.
Understanding Application Module Pooling Concepts and Configuration Parameters [http://www.oracle.com/technology/products/jdev/tips/muench/ampooling/index.html]Appendix 1: Known Issues
If you are you are using DHCP to get an automatically-assigned IP address, sometimes when JDeveloper launches your default browser and starts the embedded OC4J, you may see an HTTP error saying the ADF Toy Store home page does not exist. Typically this can be corrected by experimenting with different options for how the Embedded OC4J server refers to the local machine in the URL. One option that always works for me is setting the preference to use localhost as your machine name in the URL as shown in Figure 74. The access this preference page, select Tools | Embedded OC4J Server Preferences... menu option, and visit the Startup category.
Figure 74: Changing the IDE Preference for Embedded OC4J Host Name
If you see an error like the following (additional details removed for clarity) when you click on one of the categories to browse items in the store, this means that the database connection has failed. Check that the database is running and if it is, double-check the connection details that you have provided in the two JDeveloper named connections (toystore and toystore_statemgmt) in the setup instructions.
500 Internal Server Error
JBO-30003: The application pool (ToyStoreServiceLocal) failed to checkout an application module due to the following exception:
oracle.jbo.DMLException: JBO-26061: Error while opening JDBC connection.
(ERROR=(BUF='32-bit Windows Error: 2: No such file or directory')) )
)
Appendix 2: Configuring Toy Store Datasources on Apache Tomcat
In JDeveloper 10g, there is automatic support for installing the ADF Runtime on Tomcat, as well defining Application Server connections to a Tomcat server and deploying to it. In fact, with a Tomcat-type application server connection defined, you can just click right-mouse Deploy to option on the ADFToyStore.deploy deployment profile in the ToyStoreViewController project to carry out the deployment.
However, there is one manual step left to do regarding the configuration of the two JDBC datasources that the Toy Store application uses: jdbc/toystoreDS and jdbc/toystore_statemgmtDS. Similar manual steps would be required to map the logical JDBC datasource names to physical JDBC connections with any other J2EE server as well. For the record, this section explains how to configure these two datasources on the Tomcat server.
The ADF Toy Store demo's web.xml file contains the following two resource reference definitions for JDBC datasources named jdbc/toystoreDS and jdbc/toystore_statemgmtDS:
This is the J2EE container-independent resource definition which is always paired with container-specific setup information for these resources. To provide the Tomcat-specific datasource configuration details for the "/ADFToyStore" web application context, edit the TOMCAT_HOME/conf/server.xml file, and find the place inside the appropriate <Host> element, where you can paste the additional ADF Toy Store <Context> definition. It will look like this:
<Server>
</Engine>
</Service>
</Server>
Paste in the following ADF Toy Store <Context> entry at the indicated location. You will need to edit the value of the JDBC url parameter to have the appropriate @machine:port:sid string to match the database where you have created the TOYSTORE and TOYSTORE_STATEMGMT users and installed the ADF Toy Store tables.
<!--
| BEGIN ADF Toy Store Tomcat DataSource Config Section | Change JDBC URL info to match your database!!
+-->
type="oracle.jdbc.pool.OracleConnectionPoolDataSource"/>
<Resource name="jdbc/toystore_statemgmtDS"
auth="Container"
type="oracle.jdbc.pool.OracleConnectionPoolDataSource"/>
<ResourceParams name="jdbc/toystoreDS">
<parameter>
<name>factory</name>
<value>oracle.jdbc.pool.OracleDataSourceFactory</value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:oracle:thin:toystore/[email protected]:1521:ORCL</value>
</parameter>
</ResourceParams>
<ResourceParams name="jdbc/toystore_statemgmtDS">
<parameter>
<name>factory</name>
<value>oracle.jdbc.pool.OracleDataSourceFactory</value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:oracle:thin:toystore_statemgmt/[email protected]:1521:ORCL</value>
</parameter>
</ResourceParams>
</Context>
<!--
| END ADF Toy Store Tomcat DataSource Config Section +-->
The ADF Toy Store Demo comes with a testing servlet in the ToyStoreViewController.jpr project named toystore.controller.TestJDBCDatasources. The web.xml file is pre-configured to map this servlet to the path
"/testjdbcdatasources". So, by pointing your browser at the URL:
http://yourtomcatmachine:yourport/ADFToyStore/testjdbcdatasources
You will see the following returned in the browser if the two required datasources are properly configured: