I had a strange compilation problem using the Google App engine in java using eclipse. When I try GWT Compile my code, I get an error message that looks like this:
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"
I am not sure why it cannot allow import, and this prevents me from embedding my code in the Google application engine. I feel because it does not play well with my import for the same reason as with an error.
[ERROR] Line 22: The method doPost(HttpServletRequest, HttpServletResponse) of type SQLBeer must override or implement a supertype method
I'm really new to using GWT and the Google App Engine for Eclipse, but I'm trying to access a database created by my team using Google Cloud SQL. And I feel like I'm getting closer if I can overcome these mistakes.
Project code
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");
} catch (SQLException e) {
e.printStackTrace();
} finally {
if (c != null)
try {
c.close();
} catch (SQLException ignore) {
}
}
}
public static void main(String[] args) {
}
}
, , ? Ive , , , GWT.
EDIT: 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