繁体   English   中英

与Java在同一项目中的MySQL上的Google App Engine查询

[英]Google App Engine query on MySQL in same project with Java

我有一个SQL实例“ MySQL 2nd Gen 5.7”,该实例必须处理来自Google App Engine的简单更新查询操作。

此Google App Engine标准Java项目服务是使用JDK 1.8,Eclipse Oxygen,Hibernate 3和经典Servlet内容创建的。

每当我从计算机上运行项目时,连接将正常运行,程序将无错误执行。 但是,当我将其部署到Google中以创建新版本时,如果尝试使用,查询页面将加载30秒,直到出现错误500。 错误的详细信息:

网站展示:

错误:服务器错误

服务器遇到错误,无法完成您的请求。 请在30秒后重试。

显示堆栈跟踪:

hbt.HibernateUtil上的java.lang.ExceptionInInitializerError。 (HibernateUtil.java:21)在dao.TurnoDAO.getTurno(TurnoDAO.java:69)在controlador.Main.getTurno(Main.java:32)在RegularizarTurno.doPost(RegularizarTurno.java:33)在javax.servlet.http javax.servlet.http.HttpServlet.service上的.HttpServlet.service(HttpServlet.java:637)(HttpServlet.java:717)

问题是SessionFactory无法创建,因为该项目无法连接到数据库,就像在我的计算机中那样。 因此,就像Google文档中所说的那样,如果服务在同一GoogleProject中运行,则不会出现访问问题,答案不应该是权限问题。

软件包hbt;

导入org.hibernate.SessionFactory; 导入org.hibernate.cfg.AnnotationConfiguration;

进口实体。*;

public class HibernateUtil{
private static final SessionFactory sessionFactory;
static {
    try {
        AnnotationConfiguration config = new AnnotationConfiguration();
        config.addAnnotatedClass(Turno.class); 
        config.addAnnotatedClass(Persona.class);        


        sessionFactory = config.buildSessionFactory();

   }catch (Throwable ex){
        System.err.println("Initial SessionFactory creation failed." + ex);
        throw new ExceptionInInitializerError(ex); //LINE 21
    }
}  
public static SessionFactory getSessionFactory(){
    return sessionFactory;
}
}

因此,IP寻址工作正常,权限应该确定,与编码相关的一切都很好(因为已在2台PC上进行了测试)。 我想念什么? 我应该寻求任何特殊权限吗? 提前致谢

解答 :存在一个奇怪的权限问题,其中不允许GAE访问具有相同项目ID的数据库。 通过允许所有网络访问数据库解决了该问题。 风险很大,我们仍然需要具有密码的用户才能输入。 非常感谢。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM