У меня странная проблема компиляции с использованием движка Google App в java с использованием eclipse. Когда я пытаюсь GWT скомпилировать мой код, я получаю сообщение об ошибке:
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. Я чувствую, потому что он не играет с моими импортерами по той же причине, по которой я получаю ошибку
[ERROR] Line 22: The method doPost(HttpServletRequest, HttpServletResponse) of type SQLBeer must override or implement a supertype method
Я новичок в использовании GWT и Google App Engine для Eclipse, но я пытаюсь получить доступ к базе данных, созданной моей командой с помощью 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
}
}
Любое предложение о том, что я мог бы сделать, чтобы исправить эти ошибки? Я пробовал разные варианты импорта, но, похоже, все они приводят к одним и тем же проблемам в компиляторе 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