В основном пытаются подключиться к Cloud SQL базы данных с помощью моего Eclipse, Java Web ProjectGoogle App Engine в Java падает с 'AccessControlException: доступ запрещен ...' Exception
Контрольный
1) Updated my Google App Engine SDK to the latest 1.9.34 version
2) Updated my JDBC com.mysql.jdbc.Driver to the latest 5.1.38 version
3) Added the JDBC Driver to the build path
I не может подключиться вообще Google Cloud SQL и аварий с этой ошибкой:
java.security.AccessControlException: access denied ("java.lang.RuntimePermission" "modifyThreadGroup")
at java.security.AccessControlContext.checkPermission(AccessControlContext.java:372)
at java.security.AccessController.checkPermission(AccessController.java:559)
at java.lang.SecurityManager.checkPermission(SecurityManager.java:549)
at com.google.appengine.tools.development.DevAppServerFactory$CustomSecurityManager.checkPermission(DevAppServerFactory.java:429)
at com.google.appengine.tools.development.DevAppServerFactory$CustomSecurityManager.checkAccess(DevAppServerFactory.java:454)
at java.lang.ThreadGroup.checkAccess(ThreadGroup.java:315)
at java.lang.Thread.init(Thread.java:391)
at java.lang.Thread.init(Thread.java:349)
at java.lang.Thread.<init>(Thread.java:445)
at java.util.TimerThread.<init>(Timer.java:499)
at java.util.Timer.<init>(Timer.java:101)
at java.util.Timer.<init>(Timer.java:146)
at com.mysql.jdbc.ConnectionImpl.<clinit>(ConnectionImpl.java:208)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:191)
at com.google.appengine.tools.development.agent.runtime.RuntimeHelper.checkRestricted(RuntimeHelper.java:70)
at com.google.appengine.tools.development.agent.runtime.Runtime.checkRestricted(Runtime.java:65)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:283)
at java.sql.DriverManager.getConnection(DriverManager.java:571)
at java.sql.DriverManager.getConnection(DriverManager.java:233)
at com.dinuka.myapp.servlets.PlanServlet.doPost(PlanServlet.java:59)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
Искал весь день и буквально пошел т по каждому связанному с ним вопросу о Stackoverflow. Я собираюсь вытащить свои волосы: D
Вот мой смехотворный простой код для подключения к моей БД. Не могу поверить, что я сделал неправильно:
public class MyServlet extends HttpServlet {
@Override
public void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException {
String url = null;
try {
if (SystemProperty.environment.value() == SystemProperty.Environment.Value.Production) {
// Load the class that provides the new "jdbc:google:mysql://" prefix.
Class.forName("com.mysql.jdbc.GoogleDriver");
url = "jdbc:google:mysql://app_id:instance_id/data?user=root";
} else {
// Local MySQL instance to use during development.
Class.forName("com.mysql.jdbc.Driver");
url = "jdbc:mysql://instance-ip:3306/data?user=root";
}
} catch (Exception e) {
e.printStackTrace();
return;
}
PrintWriter out = resp.getWriter();
try {
Connection conn = DriverManager.getConnection(url);
System.out.println("Connection established");
out.println("Connection established");
try {
} finally {
conn.close();
}
} catch (SQLException e) {
out.append(e.getMessage());
e.printStackTrace();
}
}
}
Исправьте эту ошибку командой Google! А пока, может кто-то поможет мне пройти через это?
, что странно, версия 5.1.38 драйвера не имеет, что связано с '' Timer' на ConnectionImpl.java: 208' - https: // GitHub. com/mysql/mysql-connector-j/blob/5.1.38/src/com/mysql/jdbc/ConnectionImpl.java # L208 Вы уверены, что используете законную банку? –
Можете ли вы связать меня с законным банком, пожалуйста? @IgorArtamonov – Dinuka
попробуйте это http://mvnrepository.com/artifact/mysql/mysql-connector-java/5.1.38 –