public interface SgwtEESetup
support for Maven, for those who are comfortable with it, as it dramatically simplifies initial installs, acquiring patched builds, and upgrading to new versions.
For those unable or unwilling to do so, however, this overview serves as a how-to for adding SmartGWT to your project.
If you are starting a new project from scratch, we recommend starting with one of the sample projects included with SmartGWT EE under the "samples" directory. Use the project that most closely matches your integration strategy and follow the instructions in the "readme" file within the sample directory. If you have a choice, most projects will benefit from the use of SQLDataSources, illustrated in the BuiltInDS sample.
Important: If you have created a project using the GWT Plugin for Eclipse, a Maven archetype, or similar tool, first get rid of unused resources typically included in such "starter projects":
Now add SmartGWT EE: all of these steps are required. Do not skip steps or omit resources you think you may not need. Get a working project first, then think about trimming resources, as needed, once you understand the system.
In the steps below, copying from eg "war/WEB-INF/..." means copying from the "war" subdirectory of whichever sample project is closest to your desired integration strategy.
<inherits name="com.smartgwtee.SmartGwtEE"/> <inherits name="com.smartgwtee.tools.Tools"/>NOTE: if you were previously using SmartGWT LGPL, remove the <inherit> of 'com.smartgwt.SmartGWT' and ensure the <inherit> of 'com.smartgwt.tools.SmartGwtTools' appears before the imports above. Also ensure that all SmartGWT-related inherits appear *before* your <entry-point> declaration.
LoadingOptionalModulesfor additional inherits
ServerLoggingfor information on server-side logging and how to configure it.
server.propertiesacross to the "src" dir of your project. This file is either in the "src/" dir of a given sample project or in war/WEB-INF/classes. This contains miscellaneous server settings - see the file itself for documentation.
server.propertiesfile. More information on JPA configuration can be found in
here. See the server-side JavaDoc for further details on servlet APIs and override points.
org.apache.xerces.parsers.XIncludeAwareParserConfiguration cannot be cast to org.apache.xerces.xni.parser.XMLParserConfiguration
This is due to xerces classes being included in GWT 2.8+, in addition to being in the JRE. To solve, add the following extra VM arguments to either your launch configuration or JRE in Eclipse:
|ClassNotFound or other Java Exceptions in the server log.||Missing JAR files||Verify every .jar from the smartgwtee-version/lib directory has been added to your CLASSPATH. Although you might later be able to remove some .jars, for initial installation testing, copy every .jar|
|Client-side error about attempting to use "iscServer" request without server installed||Wrong imports in moduleName.gwt.xml||See correct imports above, note remove com.smartgwt.SmartGWT import and be sure imports are in the correct order|
|Client-side error about "$debox is not defined"||Wrong order of imports in moduleName.gwt.xml||Make sure all SmartGWT-related imports appear before <entry-point> in your .gwt.xml file|
|Missing images or failure to load page||Didn't set isomorphicDir in .html bootstrap file||See step above for setting isomorphicDir|
|Server error: "adminConsole" app not found when launching tools such as Reify||Bad filesystem paths configured in
||Correct paths in
|Server error: Can't find DataSource with ID yourDataSourceID||Bad filesystem paths in
||Correct paths in
|Server unable to load builtinTypes.xml as it starts up, possibly hitting a NullPointerException||Modules have been added to your GWT project (.gwt.xml) but you haven't run another GWT compile||GWT compile your project again|
For further troubleshooting steps, see the SmartGWT FAQ and, if still stuck, try posting in the Forums. NOTE: gather all the information indicated in the FAQ before posting.
NOTE: It is possible to create a server-only SmartGWT EE project that will run
standalone (ie, not inside a servlet container or application server). Please see
Standalone DataSource Usage for