1. What kind of applications can I build with this technology?
The Web Data Access Developer builds very basic, form-based Web clients. You can either autogenerate the form using JSF or you can build the form yourself using a drag-and-drop GUI builder tool (the AUIML technology). Of course, since the Web developer technology is based on the Eclipse Web Tools Platform, you really have the flexibility to build more than just the data form clients that this tool addresses.
2. Can you use this tool to create a database schema based on a form you build using the AUIML or other GUI-building tool?
No, this tool can only discover the schema of an existing database and generate data beans from that model. This technology assumes the user wants to build an application for accessing information from an existing database.
3. I got a SAX parser error and the Available Data dialog box does not show the database schema tables.
You must launch Eclipse using an IBM JRE/JDK that supports the appropriate Xerces parser classes. We tried adding the relevant xerces JAR file to a Sun JRE/JDK as well as to the project build path, but for some reason it was not added to the classpath, so it still failed. We tested this technology using the 1.4.2 version of the IBM JDK.
Here is the relavant log error:
!ENTRY org.eclipse.core.runtime 4 2 Jul 19, 2005 15:37:59.327
!MESSAGE Problems occurred when invoking code from plug-in: "org.eclipse.core.runtime".
!STACK 0
java.lang.NoClassDefFoundError: org.xml.sax.SAXException
at java.lang.Throwable.(Throwable.java:52)
at java.lang.Throwable.(Throwable.java:66)
at java.lang.NoClassDefFoundError.(NoClassDefFoundError.java:57)
at java.lang.Class.verifyImpl(Native Method)
at java.lang.Class.verify(Class.java)
at java.lang.Class.initialize(Class.java)
at org.eclipse.core.internal.resources.LocalMetaArea.readOldWorkspace(LocalMetaArea.java:256)
at org.eclipse.core.internal.resources.Workspace.open(Workspace.java:1521)
at org.eclipse.core.resources.ResourcesPlugin.startup(ResourcesPlugin.java:268)
at org.eclipse.core.internal.plugins.PluginDescriptor$1.run(PluginDescriptor.java:736)
at org.eclipse.core.internal.runtime.InternalPlatform.run(InternalPlatform.java:1006)
at org.eclipse.core.internal.plugins.PluginDescriptor.internalDoPluginActivation(PluginDescriptor.java:748)
at org.eclipse.core.internal.plugins.PluginDescriptor.doPluginActivation(PluginDescriptor.java:188)
at org.eclipse.core.internal.plugins.PluginClassLoader.activatePlugin(PluginClassLoader.java:112)
at org.eclipse.core.internal.plugins.PluginClassLoader.internalFindClassParentsSelf(PluginClassLoader.java:185)
at org.eclipse.core.internal.boot.DelegatingURLClassLoader.findClassParentsSelf(DelegatingURLClassLoader.java)
at org.eclipse.core.internal.boot.DelegatingURLClassLoader.loadClass(DelegatingURLClassLoader.java:882)
at org.eclipse.core.internal.boot.DelegatingURLClassLoader.access$0(DelegatingURLClassLoader.java:876)
at org.eclipse.core.internal.boot.DelegatingURLClassLoader$DelegateLoader.loadClass(DelegatingURLClassLoader.java:90)
at org.eclipse.core.internal.boot.DelegatingURLClassLoader.findClassPrerequisites(DelegatingURLClassLoader.java:554)
at org.eclipse.core.internal.boot.DelegatingURLClassLoader.loadClass(DelegatingURLClassLoader.java:890)
at org.eclipse.core.internal.boot.DelegatingURLClassLoader.loadClass(DelegatingURLClassLoader.java:862)
at java.lang.ClassLoader.loadClass(ClassLoader.java:553)
at java.lang.Class.verifyImpl(Native Method)
at java.lang.Class.verify(Class.java)
at java.lang.Class.initialize(Class.java)
at java.lang.Class.newInstanceImpl(Native Method)
at java.lang.Class.newInstance(Class.java:1451)
at org.eclipse.core.internal.plugins.PluginDescriptor.createExecutableExtension(PluginDescriptor.java:138)
at org.eclipse.core.internal.plugins.PluginDescriptor.createExecutableExtension(PluginDescriptor.java:167)
at org.eclipse.core.internal.plugins.ConfigurationElement.createExecutableExtension(ConfigurationElement.java:103)
at org.eclipse.core.internal.runtime.InternalPlatform.loaderGetRunnable(InternalPlatform.java:578)
at java.lang.reflect.AccessibleObject.invokeL(AccessibleObject.java:207)
at java.lang.reflect.Method.invoke(Method.java:271)
at org.eclipse.core.internal.boot.InternalBootLoader.getRunnable(InternalBootLoader.java:471)
at org.eclipse.core.internal.boot.InternalBootLoader.run(InternalBootLoader.java:854)
at org.eclipse.core.boot.BootLoader.run(BootLoader.java:461)
at java.lang.reflect.AccessibleObject.invokeL(AccessibleObject.java:207)
at java.lang.reflect.Method.invoke(Method.java:271)
at org.eclipse.core.launcher.Main.basicRun(Main.java:291)
at org.eclipse.core.launcher.Main.run(Main.java:747)
at org.eclipse.core.launcher.Main.main(Main.java:583)
4. I got a Torque error about a task definition: "(taskdef -> A class (org.w3c.dom.ranges.DocumentRange) needed by class org.apache.torque.TorqueJDBCTransformTask cannot be found."
Ensure that you are using an IBM or similar SDK that supports XercesImpl.jar when you launch Eclipse. Here is the relevant log file entry for the taskdef error:
!ENTRY org.eclipse.ui 4 0 2005-06-20 15:13:55.74
!MESSAGE org.eclipse.wst.rdb.internal.core.definition.DatabaseDefinition.getDatabaseCatalogProvider()Lorg/eclipse/wst/rdb/internal/core/rte/CatalogProvider;
!STACK 0
java.lang.NoSuchMethodError: org.eclipse.wst.rdb.internal.core.definition.DatabaseDefinition.getDatabaseCatalogProvider()Lorg/eclipse/wst/rdb/internal/core/rte/CatalogProvider;
at org.eclipse.wst.rdb.server.internal.ui.explorer.content.DatabaseProviderHelper.getCatalogDatabase(DatabaseProviderHelper.java:39)
at org.eclipse.wst.rdb.server.internal.ui.explorer.content.DatabaseProviderHelper.setDatabase(DatabaseProviderHelper.java:48)
at org.eclipse.wst.rdb.server.internal.ui.explorer.actions.popup.AddConnectionAction.setDatabase(AddConnectionAction.java:93)
at org.eclipse.wst.rdb.server.internal.ui.explorer.actions.popup.AddConnectionAction.displayNewServer(AddConnectionAction.java:61)
at org.eclipse.wst.rdb.server.internal.ui.explorer.actions.popup.AddConnectionAction.run(AddConnectionAction.java:121)
at org.eclipse.wst.rdb.server.internal.ui.explorer.actions.popup.AbstractAction.runWithEvent(AbstractAction.java:118)
at org.eclipse.ui.internal.PluginAction.runWithEvent(PluginAction.java:234)
at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:555)
at org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:505)
at org.eclipse.jface.action.ActionContributionItem$6.handleEvent(ActionContributionItem.java:419)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:82)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:833)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:2803)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2448)
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1569)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1540)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:285)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:144)
at org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:102)
at org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.java:220)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:273)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:129)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at org.eclipse.core.launcher.Main.basicRun(Main.java:185)
at org.eclipse.core.launcher.Main.run(Main.java:710)
at org.eclipse.core.launcher.Main.main(Main.java:694)