Troubleshooting

This page relates to version 1.5.0 to 2.0.0 of JumpStart.

Solutions to common problems including some classic Tapestry errors. Please send any you think should be added. When we have a few I'll move them to the Tapestry Wiki. If you have no luck here, another excellent resource for troubleshooting is the forum at gmame and its equivalent forum at nabble.

Table not found
User "secofr" does not exist

HTTP Status 404
An @If component is always evaluating to true.

"Either the tableModel parameter or both source and columns parameters must be specified by ... $Table.tableView"
"The source parameter of ... $Table.tableView is of type java.lang.String ..."
"Unable to update property minDateMidnight of object jumpstart.max.web.commons.validator.MinDateMidnight ..."
"Unable to update OGNL expression ... target is null for setProperty(null, someProperty, ... )"
"Change to persistent property ... has been ignored."
"java.io.InvalidClassException: org.jboss.ejb3.remoting.IsLocalInterceptor

"BUILD FAILED ... Could not create task or type of type: junit."
"java.lang.NoClassDefFoundError: javassist/util/proxy/MethodHandler"

Intel Macs and Eclipse
OS X and JBossIDE

Table not found
Initially, JBoss will create/update the database schema based on the definitions it finds in our exploded EAR file or any other deployed EAR or JAR. If the JBoss log shows "java.lang.SQLException: Table not found", then try this:

User "secofr" does not exist
Initial data has not been loaded. See load initial data.

HTTP Status 404
This is common if reloadable="true" (see reloading web programs) and you try a web page in the few seconds after modifying its class. Tomcat is just reloading the class. If you then press the Back button and try again you will usually succeed.

An @If component is always evaluating to true
Have you forgotten to put ognl: in the condition?

"Either the tableModel parameter or both source and columns must be specified by ... $Table.tableView"
If you have specified both the source and columns parameters of Table or TableView, then the source must be persistent - specify @Persistent on the corresponding field in the class. For an example, see setUsers() in TableComponentPage.java.

"The source parameter of ... $Table.tableView is of type java.lang.String ..."
Most likely is that you've left out ognl:. For example, if you specified source="users" when you should have specified source="ognl:users".
Also occurs if the value is null, eg. if users has a value of null.

"Unable to update property minDateMidnight of object jumpstart.max.web.commons.validator.MinDateMidnight ..."
Possibly a side-effect of running Max and Min in the same server. It seems to be a class-loading problem that occurs when:
1. You've re-deployed a .ear file containing joda-time.jar at .ear level (eg. by "touching" the ear file), AND
2. It's not the only .ear file with joda-time.jar at .ear level that's currently deployed in the server, AND
3. A user visits a page that uses a joda-time class.
Any class in a .jar at the .ear level could have this problem if it is also used by the web tier. Possible solutions:
* In any one server, don't deploy more than one .ear containing joda-time.jar. But that's a pretty poor solution, so...
* Try this (I have not yet tested it): Remove joda-time.jar, mysql-connector-java.jar, and any other jars from the .ear file. Put them in the server's lib/ directory. For completeness, remove the classpath entry from (v0.9 and later:) business/src/java/META-INF/MANIFEST.MF or (v0.8:) biz-src/java/META-INF/MANIFEST.MF or (v0.7 and earlier) src-biz/META-INF/MANIFEST.MF.

"Unable to update OGNL expression ... target is null for setProperty(null, someProperty, ... )"
The object that someProperty belongs to is output only and not defined as persisted, so when the form is submitted the object is null.
Use @Persist("session"), @Persist("client"), @Persist("client:form"), @Persist("client:page") or similar annotation on the getter or setter of the object in the page's java.

"Change to persistent property ... has been ignored. Persistent properties may only be changed prior to the rendering of the response page."
Is the property being used in the value attribute of a @For component?
If so, remove the @Persist annotation from its getter or setter in the page's java.

java.io.InvalidClassException: org.jboss.ejb3.remoting.IsLocalInterceptor
Caused by client having a different version of the class than is being used by the JBoss server.
Check jboss.dir in build.properties really is pointing to the server you're testing against.
After modifying it, re-run the get-dependent-jars target of build.xml, then refresh the project in Eclipse and try running the test again.

"BUILD FAILED ... Could not create task or type of type: junit."
Might occur when running the test-biz target of Max's build.xml.
By default Eclipse does not run junit in Ant even though Eclipse comes with a junit plug-in. Ryan Lowe's blog explains how to set it up.

Unit tests fix
"javassist/util/proxy/MethodHandler
java.lang.NoClassDefFoundError: javassist/util/proxy/MethodHandler"
This can occur in JumpStart v0.7 or earlier.
To fix it in v0.7, add lib-biz-testing/javassist.jar to the build path and move it above the other javassist.jar.
To fix it in v0.6 or earlier, in the build.xml file, add this line to the get-dependent-jars target:
   <get dest="${lib.biz.testing.dir}/javassist.jar" usetimestamp="true" src="file:${jboss.client.dir}/javassist.jar" />
Run the get-dependent-jars target. Refresh the project. Add lib-biz-testing/javassist.jar to the build path and move it above the other javassist.jar.

Intel Macs and Eclipse
To use Eclipse 3.1 on an Intel Mac, you'll need a patch.
1. Go to http://sourceforge.net/project/showfiles.php?group_id=131065&package_id=183793&release_id=401995
2. Download org.eclipse.swt.carbon.macosx.ppc_3.1.2.1-universal-binaries.zip
3. Unzip it, producing directory eclipse/.
4. Open it to locate a jat file called plugins/org.eclipse.swt.carbon.macosx.ppc_3.1.2.1-universal-binaries.jar
5. Copy the jar file into your real eclipse/plugins/ directory.
6. Start/restart eclipse.

OS X and JBossIDE
To use JBossIDE with Eclipse 3.2 on Mac OS X, you'll need to use version 2 of the JBossIDE, which at the time of writing is not the current stable release. A beta version is available through this eclipse update site: http://download.jboss.org/jbosside/updates/development .

 

 

©2006, 2007 Geoff Callender, Sydney, Australia