0

コードのクリーン コンパイルが完了し、WAMPServer を使用しています。ただし、Eclipse からコードを実行しようとすると (Run as、GWT アプリケーション)、コンソールに次のエラーが表示されます。

java.lang.NullPointerException
at com.google.gwt.dev.DevMode.validateServletTags(DevMode.java:611)
at com.google.gwt.dev.DevMode.doStartup(DevMode.java:449)
at com.google.gwt.dev.DevModeBase.startUp(DevModeBase.java:1083)
at com.google.gwt.dev.DevModeBase.run(DevModeBase.java:836)
at com.google.gwt.dev.DevMode.main(DevMode.java:311)

これは最初の行に関連付けられたコードです (簡潔にするために残りは含めていません。必要な場合はお知らせください)。

"DevMode.java:611"

TreeLogger servletLogger =
    logger.branch(TreeLogger.DEBUG, "Validating <servlet> tags for module '" + module.getName()
        + "'", null, new InstalledHelpInfo("servletMappings.html"));
for (String servletPath : servletPaths) {
  String servletClass = module.findServletForPath(servletPath);
  assert (servletClass != null);
  // Prefix module name to convert module mapping to global mapping.
  servletPath = "/" + module.getName() + servletPath;
  if (servletValidator == null) {
    servletWriter.addMapping(servletClass, servletPath);
  } else {
    servletValidator.validate(servletLogger, servletClass, servletPath);
  }

これは私の

AwardTracker.get.xml

<module>
<inherits name="com.google.gwt.user.User"/>
<inherits name="com.google.gwt.user.theme.standard.Standard"/>
<entry-point class="org.AwardTracker.client.AwardTracker"/>

<!--  servelet context - path is arbitrary, but must match up with the rpc init inside java class -->
<!--  Tomcat will listen for this from the server and waits for rpc request in this context -->
<servlet class="org.AwardTracker.server.MySQLConnection" path="/MySQLConnection" />
    <inherits name="com.google.gwt.user.theme.standard.Standard"/>
    <inherits name="com.google.gwt.user.theme.chrome.Chrome"/>
    <inherits name="com.google.gwt.user.theme.dark.Dark"/>
</module>

そして、これは私の

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">

<web-app>

<!-- Default page to serve -->
<welcome-file-list>
    <welcome-file>AwardTracker.html</welcome-file>
</welcome-file-list>

</web-app>

<servlet>
     <servlet-name>mySQLConnection</servlet-name>
     <servlet-class>org.AwardTracker.server.MySQLConnection</servlet-class>
</servlet>

<servlet-mapping> 
    <servlet-name>mySQLConnection</servlet-name> 
    <url-pattern>/org.AwardTracker.AwardTracker/MySQLConnection</url-pattern> 
</servlet-mapping>

どんな助けでも大歓迎です。

よろしく、

グリン

答えは:

WEB.XML の順序が正しくありませんでした。次のようになっているはずです。

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">

<web-app>

<servlet>
     <servlet-name>mySQLConnection</servlet-name>
     <servlet-class>org.AwardTracker.server.MySQLConnection</servlet-class>
</servlet>

<servlet-mapping> 
    <servlet-name>mySQLConnection</servlet-name> 
    <url-pattern>/org.AwardTracker.AwardTracker/MySQLConnection</url-pattern> 
</servlet-mapping>

<!-- Default page to serve -->
<welcome-file-list>
    <welcome-file>AwardTracker.html</welcome-file>
</welcome-file-list>    

</web-app>

ありがとうございました、

グリン

4

1 に答える 1

0

「validateServletTags(DevMode.java:611)」に移動して、行を確認してください。すべての変数を出力してみてください。どちらがnullかがわかります。

于 2013-01-21T03:29:10.087 に答える