当前位置: 首页 > 知识库问答 >
问题:

GAE-使用谷歌云SQL的谷歌endpoint

翟渝
2023-03-14

我尝试过将deendpoint与云SQL和Hibernate集成。但是,每次都有错误。跟随我的测试:

1 -源文件夹中的persistence . XML:http://imgur.com/hKjf8Cs给我错误:http://imgur.com/QJe8rvq

2-资源文件夹中的persistence.xml给我错误:

ServletInitializationParameters.java:51:EntityManager没有名为gegAdminPU的持久性提供程序,com.google.api.server.spi.SystemServiceServlet.init(SystemServiceServlet.java:102)org.mortbay.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:440)java.lang.Class.forName0(本机方法)java.lang.Class.forName(org.mortbay.jetty.servlet.ServletHolder.handle)ServletHolder.java:487(org.mortbay.jetty.servlet.ServletHandler)CachedChain.doFilter(ServletHandler.java:1166)com.google.appengine.api.socket.dev.DevSocketFilter.doFilter(ClienteEndpoint.java:20)java.lang.Class.forName0(本机方法)java.lang.Class.forName(Class.java:266)com.google.api.server.spi.ServletInitializationParameters.getClassForName(ServletInitializationParameters.java:82)com.google.api.server.spi.ServletInitializationParameters.fromServletConfig(javax.persistence.PersistenceException)javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:69)br.com.gegsystems.gegadmin.utils.HibernateUtils.(HibernateUtils.java:47)Class.java:188(com.google.appengine.tools.development.agent.runtime.RuntimeHelper.checkRestricted)RuntimeHelper.java:70com.google.appengine.tools.development.agent.runtime.Runtime.checkRestricted(Runtime.java:64)br.com.gegsystems.gegadmin.endpoints.ClienteEndpoint.(DevSocketFilter. java: 74)在com. google. app工程. tools. Development. DevAppServerModulesFilter. doDirectRequest(DevAppServerModulesFilter. java: 366)在com. google. app工程. tools. Development. DevAppServerModulesFilter. doDirectModuleRequest(DevAppServerModulesFilter. java: 349)在com. google. app工程. tools. DevAppServerModulesFilter. doFilter(DevAppServerModulesFilter. java: 116)在org. Morbay. jetty. servlet. ServletHandler$CachedChain. doFilter(ServletHandler. java: 1157)在org. Morbay. jetty. servletHandler. hand(ServletHandler. java: 388)在org. Morbay. jetty. securityHandler. hand(SecurityHandler. java: 216)

按照终端节点代码操作:

@Api(name="clientes", version="v1")
public class ClienteEndpoint {

    private static EntityManagerFactory entityManagerFactory;

    static {
        entityManagerFactory = HibernateUtils.getEntityManagerFactory();
    }

    @ApiMethod(name="listar", path="clientes")
    public List<String> listar(){
        List<String> resultado = new ArrayList<>();
        EntityManager em = entityManagerFactory.createEntityManager();

        em.getTransaction().begin();

        Query query = em.createQuery("SELECT 'teste' FROM dual;");
        resultado.add((String) query.getSingleResult());

        return resultado;
    }
}

HibernateUtils.java:

import com.google.appengine.api.rdbms.AppEngineDriver;
import com.google.appengine.api.utils.SystemProperty;

public class HibernateUtils {

    private static final EntityManagerFactory entityManagerFactory;

    public static EntityManagerFactory getEntityManagerFactory() {
        return entityManagerFactory;
    }

    static {
        try {
            DriverManager.registerDriver(new AppEngineDriver());
        } catch (SQLException e) {
            throw new ExceptionInInitializerError(e);
        }

        Map<String, String> properties = new HashMap<>();
        if (SystemProperty.environment.value() ==
                SystemProperty.Environment.Value.Production) {
            properties.put("javax.persistence.jdbc.driver",
                    "com.mysql.jdbc.GoogleDriver");
            properties.put("javax.persistence.jdbc.url", System.getProperty(
                    "jdbc:google:mysql://**********:*******/gegadmin?user=root")
            );
            properties.put("javax.persistence.jdbc.password",
                    System.getProperty("**********"));
        } else {
            properties.put("hibernate.connection.driver_class",
                    "com.mysql.jdbc.Driver");
            properties.put("hibernate.connection.url", System.getProperty(
                    "jdbc:mysql://localhost:3306/gegadmin?user=root")
            );
            properties.put("hibernate.connection.password",
                    System.getProperty("**********"));
        }

        entityManagerFactory = Persistence
                .createEntityManagerFactory("gegAdminPU", properties);
    }
}

共有1个答案

伊裕
2023-03-14

我已经将持久性框架从Hibernate更改为Eclipse Link和work。我认为这是我的Eclipse与Hibernate和JPA的配置中的一个问题。

 类似资料:
  • 介绍如何在谷歌云平台获取在云联壹云平台需要使用的配置参数。 如何获取谷歌云服务帐号密钥信息? 纳管指定项目 打开“GCP Console中的IAM和管理-IAM页面”页面并登录。 单击顶部“选择项目”,选择需要授权的项目。 在左侧导航栏中选择“服务账号”,进入指定项目的服务账号页面。 单击 “创建服务账号” 按钮,进入创建服务账号页面。 配置服务账号名称、服务账号ID、服务账号说明等,单击 “创建

  • 我是亚马逊AWS的狂热用户,但与谷歌的云SQL相比,我不确定RDS。在这个网站上,提到了每次使用计费计划的存在。 这是怎么计算的?其中提到“连续使用期间收费,四舍五入至最接近的小时”。 进展如何?如果我的网站没有访客,就不收费,对吗?如果我说我有100个连续30天的用户呢。我还会被收取每小时0.025美元(不包括网络使用费)吗? 我如何将我现在的SQL数据库上传到谷歌云服务?这和亚马逊使用甲骨文工

  • 我们需要为一个高流量的网站使用WordPress。我们预计每月的初始浏览量为50万次,并将增加到每月约800万次。主要在工作时间使用,一个月大约20天,每天8小时。 我们正在考虑将Google App Engine与Google Cloud SQL一起使用。我们想知道它对这种负载的扩展程度如何。理论上说Google App Engine应该自动扩展,但不确定Google Cloud SQL在扩展时

  • 上面写着“Google Cloud Messaging(GCM)是一个免费服务”,但是为了使它能够运行,我需要在Google Cloud平台中创建一个项目,这需要花钱…那怎么免费呢?还是我错过了什么?

  • 我有点困惑。在谷歌云SQL常见问题页面上说UDF不支持。但是,我可以导入现有函数或在数据库中创建新函数。所以,为了确认,谷歌云SQL现在支持UDF创建吗?我们需要验证这一点,因为我们计划将现有数据库移动到谷歌云SQL它使用了大量的UDF。我正在云中设置MySQL数据库版本5.6(预览版)SQL 谢谢你。

  • 我知道可以使用谷歌API视觉在网上找到类似的图片。我的目标是根据我的图像数据库找到类似的图像。我不想在网上看到类似的图片。 可能吗? 如果是,你能给我一些链接或建议吗? 谢谢