2011-12-01 16 views
5

eclipseを使用してJavaでGoogle Appエンジンを使用すると、奇妙なコンパイルの問題が発生しています。私は私のコードをコンパイルGWTにしようとすると、私は次のようにエラーが出ます:JavaでのGWTのコンパイルの問題(Google App Engine)

Compiling module beer.SQLBeer 
    Validating newly compiled units 
     Ignored 1 unit with compilation errors in first pass. 
Compile with -strict or with -logLevel set to TRACE or DEBUG to see all errors. 
    Finding entry point classes 
     [ERROR] Errors in 'file:/C:/Users/Mark/workspace/SQLBeer/src/beer/client/SQLBeer.java' 
     [ERROR] Line 12: The import com.google.appengine.api.rdbms cannot be resolved 
     [ERROR] Line 13: The import com.google.apphosting cannot be resolved 
     [ERROR] Line 14: The import com.google.cloud cannot be resolved 
     [ERROR] Line 18: ServersServlet cannot be resolved to a type 
     [ERROR] Line 22: The method doPost(HttpServletRequest, HttpServletResponse) of type SQLBeer must override or implement a supertype method 
     [ERROR] Line 26: Connection cannot be resolved to a type 
     [ERROR] Line 28: AppEngineDriver cannot be resolved to a type 
     [ERROR] Line 29: Connection cannot be resolved to a type 
     [ERROR] Unable to find type 'beer.client.SQLBeer' 
     [ERROR] Hint: Previous compiler errors may have made this type unavailable 
     [ERROR] Hint: Check the inheritance chain from your module; it may not be inheriting a required module or a module may not be adding its source path entries properly 
Exception in thread "UnitWriteThread" 

私はそれが輸入を解決できない理由はわからないが、これは、Google App Engineの上に自分のコードを展開してから私を妨げています。それは私の輸入とうまくその同じ理由イム

[ERROR] Line 22: The method doPost(HttpServletRequest, HttpServletResponse) of type SQLBeer must override or implement a supertype method 

エラーを取得をプレイしていないので、私は、私はEclipse用GWTとGoogleのApp Engineを使用する本当に新しいですが、イムは、データベース私のチームにアクセスしようとしている感じGoogle Cloud SQLを使用して作成されます。そして、私はこれらの間違いが終わってしまえば、私が近づいているように感じます。

プロジェクトコードに

package beer.client; 


import java.io.IOException; 
import java.io.PrintWriter; 
import java.sql.DriverManager; 
import java.sql.SQLException; 

import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 

import com.google.appengine.api.rdbms.AppEngineDriver; 
import com.google.apphosting.utils.servlet.ServersServlet; 
import com.google.cloud.sql.jdbc.Connection; 


@SuppressWarnings("serial") 
public class SQLBeer extends ServersServlet { 


    @Override 
    public void doPost(HttpServletRequest req, HttpServletResponse resp) 
      throws IOException { 

     PrintWriter out = resp.getWriter(); 
     Connection c = null; 
     try { 
      DriverManager.registerDriver(new AppEngineDriver()); 
      c = (Connection) DriverManager 
        .getConnection("jdbc:google:rdbms://asu.edu:cst433team1:team1db/mysql"); 
      String fname = req.getParameter("fname"); 
      String content = req.getParameter("content"); 

      /** 
      * This code appears to do the web form fun 
      */ 
//   if (fname == "" || content == "") { 
//    out.println("<html><head></head><body>You are missing either a message or a name! Try again! Redirecting in 3 seconds...</body></html>"); 
//   } else { 
//    String statement = "INSERT INTO entries (guestName, content) VALUES(? , ?)"; 
//    PreparedStatement stmt = c.prepareStatement(statement); 
//    stmt.setString(1, fname); 
//    stmt.setString(2, content); 
//    int success = 2; 
//    success = stmt.executeUpdate(); 
//    if (success == 1) { 
//     out.println("<html><head></head><body>Success! Redirecting in 3 seconds...</body></html>"); 
//    } else if (success == 0) { 
//     out.println("<html><head></head><body>Failure! Please try again! Redirecting in 3 seconds...</body></html>"); 
//    } 
//   } 
     } catch (SQLException e) { 
      e.printStackTrace(); 
     } finally { 
      if (c != null) 
       try { 
        c.close(); 
       } catch (SQLException ignore) { 
       } 
     } 
     //resp.setHeader("Refresh", "3; url=/beer.jsp"); 
    } 

    /** 
    * @param args 
    */ 
    public static void main(String[] args) { 
     // TODO Auto-generated method stub 

    } 

} 

私はこれらのエラーを修正するために何ができるか上の任意の提案? Iveはさまざまなインポートを試みましたが、GWTコンパイラで同じ問題が発生しているようです。

編集:私はHttpServletのに拡張変更となりましエラーが

Compiling module beer.SQLBeer 
    Validating newly compiled units 
     Ignored 1 unit with compilation errors in first pass. 
Compile with -strict or with -logLevel set to TRACE or DEBUG to see all errors. 
    Finding entry point classes 
     [ERROR] Errors in 'file:/C:/Users/Mark/workspace/SQLBeer/src/beer/client/SQLBeer.java' 
     [ERROR] Line 13: The import com.google.appengine.api.rdbms cannot be resolved 
     [ERROR] Line 14: The import com.google.cloud cannot be resolved 
     [ERROR] Line 26: Connection cannot be resolved to a type 
     [ERROR] Line 28: AppEngineDriver cannot be resolved to a type 
     [ERROR] Line 29: Connection cannot be resolved to a type 
     [ERROR] Unable to find type 'beer.client.SQLBeer' 
     [ERROR] Hint: Previous compiler errors may have made this type unavailable 
     [ERROR] Hint: Check the inheritance chain from your module; it may not be inheriting a required module or a module may not be adding its source path entries properly 
Exception in thread "UnitWriteThread" java.lang.RuntimeException: Unable to read from byte cache 

答えて

5

まず少し異なっている、これはクラスパスの問題ではないことを確認してください - あなたが必要なすべてのjarファイルを持っていないという意味libディレクトリとクラスパス上にあります。

これが失敗した場合は、このコードがクライアント側(パッケージ名から推測)でないことを確認してください。これはjavascriptにコンパイルされます。これはデータベース接続コードでは発生したくないので、サーバー側でこのコードを使用する必要があります。

Client side & Server sideのマニュアルを参照してください。

+0

私は見る!私はずっとサーバータイプのコードを作成していました。クライアントベースのコードだと思っていました。あなたは初心者に教えてくれますか? :)今私はちょうどJSPのとクエリの私の問題を把握する必要があります...ありがとう! – meriley

+1

問題ありません。実験を続けて学習を続ける。 あなたが立ち往生したら、ちょうだい!そうだよ! – gotomanners

関連する問題