| <html> | |
| <head> | |
| <meta http-equiv="content-type" content="text/html; charset=UTF-8"> | |
| <title>Web App Classpath Problem</title> | |
| </head> | |
| <body> | |
| <h1>Web App Classpath Problem</h1> | |
| <p>You were directed to this help topic because your server code needed a class or | |
| resource that was not found on the <i>web app classpath</i>, but <b>was</b> found | |
| on the <i>system classpath</i>. The <i>system classpath</i> is the classpath | |
| you specify when launching the Java VM to run hosted mode. The <i>web app | |
| classpath</i> is different — it consists of classes that live in your web | |
| application's <i>war directory</i>. All server classes and dependencies should | |
| to be placed in your war directory: libraries (jars) should be placed in | |
| <nobr><code>war/WEB-INF/lib/</code></nobr> and classes that don't live in | |
| jars should be placed in <nobr><code>war/WEB-INF/classes/</code></nobr>. | |
| <p>GWT hosted mode helpfully works around this problem by mapping these outside | |
| resources into your web app classpath. This warning reminds you that failing to | |
| address the issue can lead to problems when you actually deploy your web app to | |
| a real server.</p> | |
| <h2>Tips</h2> | |
| <ul> | |
| <li>The most common reason to encounter this problem with a new project is | |
| using RPC, which tries to load | |
| <nobr><code>com.google.gwt.user.client.rpc.RemoteService</code></nobr>. The | |
| solution to is copy <code>gwt-servlet.jar</code> from the GWT install directory | |
| into your web app's <nobr><code>war/WEB-INF/lib/</code></nobr> directory.</li> | |
| <li>If you have a good reason for not following the recommended configuration, | |
| you can suppress warning by setting the Java system property | |
| <nobr><code>gwt.nowarn.webapp.classpath</code></nobr>. Specify | |
| <nobr><code>-Dgwt.nowarn.webapp.classpath</code></nobr> as a JVM argument when | |
| launching hosted mode. | |
| </li> | |
| </ul> |