You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tapestry.apache.org by ta...@jakarta.apache.org on 2004/11/11 04:04:13 UTC

[Jakarta Tapestry Wiki] Updated: Gotchas

   Date: 2004-11-10T19:04:12
   Editor: EricEverman <ev...@precedadesign.com>
   Wiki: Jakarta Tapestry Wiki
   Page: Gotchas
   URL: http://wiki.apache.org/jakarta-tapestry/Gotchas

   Added an entry about OC4J compatability

Change Log:

------------------------------------------------------------------------------
@@ -32,3 +32,29 @@
 listener but put your default Form listener in the Form component. '''Both''' listeners will be called!
 Either use listeners on your Submit components only, or use them to set flags that are read by the Form 
 listener. 
+
+= Tapestry with Oracle OC4J =
+The XML parser that is bundled with Oracle's OC4J seems to be a bit broken.  Specifically, it chokes on the contrib:Table component, giving this error:
+Table''''''Pages.jwc<Line 41, Column 26>: XML-0139: (Error) ID value 'informal' is not unique.
+
+The file is actually perfectly valid XML and has no duplicate id="informal" attributes anywhere in the document (even sub-elements).  Oracle does not support the use of 3rd party XML parsers, so in a production environment this is big trouble.
+
+The good news is that Oracle has a new version of their XML parser out that seems to fix the issue (Oracle XDK 10.1.0.2 or greater).  The bad news is that the new parser does not seem to come with the current OC4J production release (9.0.4).  The new XML parser *does* come bundled with their pre-production OC4J (version 10.0.3) and Tapestry deployments to that OC4J version do work.  So, right now you have two options if you must use OC4J:
+
+'''Option 1'''
+Deploy to OC4J 10.0.3.  Note that this is pre-production and is only available standalone.  Thus, it does not run under grid control or Enterprise Manager.  This may work for some people - in our case it probably will.
+
+'''Option 2'''
+Modify your OC4J 9.0.4 to use the new XML parsers.  I HAVE NOT TRIED THIS, but it seems likely that it may work.  See my notes about JDeveloper integration for hints as to how this might be done.
+
+If you are interested in testing your applications in Jdeveloper 10G, you need to get JDev's embedded OC4J instance to use the new XML parser.  I had many failed attempts at this.  If you curious, here is what didn't work.  I tried adding Xerces to the classpath and specifying Xerces as the XML parser at start-up, but this did not work for some reason and Oracle's XML parser was still used.  In another attempt, I updated the XML parser libraries that come with JDev to the current XSK version (10.1.0.2 for Windows), however, this did not work because JDeveloper and the embedded OC4J instance share the same XML libraries and JDeveloper seems to have a dependancy on the specific version that ships with it - I couldn't get JDev to start after making this change.  A final failed attempt was to install the standalone OC4J 10.0.3 and tell Jdev to use it as its embedded server:  this completely failed because the new OC4J version uses a different config file structure so JDev was completely lost trying to read/write configurations.
+
+'''What did work:'''  I created a separate OC4J standalone installation of the same version that comes with JDev (OC4J 9.0.3).  In that separate installation I was able to update the XML parser to the latest version with no problems.  Specifically, I updated these files with the files I downloaded from Oracles XDK 10.1.0.2 :
+<root of OC4J install>/lib/xmlparserv2.jar
+<root of OC4J install>/lib/xsqlserializers.jar
+
+Then I told JDev to use the separate OC4J install as its embedded server by going to Tools | Embedded OC4J | Globa| | OC4J Installation to Use...
+
+Life was good with JDev after making that change.  You may need to tell JDev to refresh the datasources, but there is a button to do this in the Embedded preference panel.  Also, I had trouble with the bc4j application that seems to be deployed by default in the standalone install.  To fix this, I simply removed the bc4j application from the server.xml file (jdev/systemxxx/oc4j-config/server.xml).
+
+Best of luck to anyone else dealing with this.  If anyone finds this information incomplete or incorrect, please post a correction so that others don't have to deal with this.

---------------------------------------------------------------------
To unsubscribe, e-mail: tapestry-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tapestry-dev-help@jakarta.apache.org