Google app engine 谷歌应用引擎重新打包错误

Google app engine 谷歌应用引擎重新打包错误,google-app-engine,Google App Engine,我正在尝试在我的开发环境中使用ff配置运行Google App Engine端点: 格雷德尔先生 buildscript { repositories { jcenter(); } dependencies { classpath 'com.google.appengine:gradle-appengine-plugin:1.9.28' } } repositories { jcenter(); mavenCen

我正在尝试在我的开发环境中使用ff配置运行Google App Engine端点:

格雷德尔先生

buildscript {
    repositories {
        jcenter();
    }
    dependencies {
        classpath 'com.google.appengine:gradle-appengine-plugin:1.9.28'
    }
}

repositories {
    jcenter();
    mavenCentral();
}

apply plugin: 'java'
apply plugin: 'war'
apply plugin: 'appengine'

sourceCompatibility = JavaVersion.VERSION_1_7
targetCompatibility = JavaVersion.VERSION_1_7

dependencies {
    appengineSdk 'com.google.appengine:appengine-java-sdk:1.9.28'
    compile 'com.google.appengine:appengine-endpoints:1.9.28'
    compile 'com.google.appengine:appengine-endpoints-deps:1.9.28'

    compile 'com.google.guava:guava:19.0'
    compile 'com.googlecode.objectify:objectify:5.1.12'

    compile 'javax.servlet:servlet-api:2.5'

    compile group: 'org.tuckey', name: 'urlrewritefilter', version: '4.0.4'

    compile group: 'com.google.appengine.tools', name: 'appengine-gcs-client', version: '0.6'
}

appengine {
    downloadSdk = true
    appcfg {
        oauth2 = true
    }
    endpoints {
        getClientLibsOnBuild = true
        getDiscoveryDocsOnBuild = true
    }

    jvmFlags = ["-Ddatastore.backing_store=\"/<some local path>/local_db.bin\""]
}
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee">
    <filter>
        <filter-name>ObjectifyFilter</filter-name>
        <filter-class>com.googlecode.objectify.ObjectifyFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>ObjectifyFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

    <filter>
        <filter-name>UrlRewriteFilter</filter-name>
        <filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>
        <init-param>
            <param-name>logLevel</param-name>
            <param-value>WARN</param-value>
        </init-param>
    </filter>

    <filter-mapping>
        <filter-name>UrlRewriteFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

    <servlet>
        <servlet-name>SystemServiceServlet</servlet-name>
        <servlet-class>com.google.api.server.spi.SystemServiceServlet</servlet-class>
        <init-param>
            <param-name>services</param-name>
            <param-value>com.mypackagename.MyEndpoint,
com.mypackagename.SecondEndpoint</param-value>
        </init-param>
    </servlet>
    <servlet-mapping>
        <servlet-name>SystemServiceServlet</servlet-name>
        <url-pattern>/_ah/spi/*</url-pattern>
    </servlet-mapping>

    <welcome-file-list>
        <welcome-file>index.html</welcome-file>
    </welcome-file-list>
</web-app>

(实际上,这是一系列例外,比如说“com.google.appengine.tools.development.agent.impl.Transformer” 严重:无法检测{classname}。可能无法完全模拟安全限制。)

在我看来,是com.google.appengine.repacked库导致了这个问题。(这是正确的吗?)

更新: 在端点内调用Objectify方法时(有时)会引发相同类型的异常,导致数据存储中没有更新

Aug 01, 2017 9:56:58 PM com.google.appengine.tools.development.agent.impl.Transformer transform
SEVERE: Unable to instrument com.google.apphosting.api.DatastorePb$Cursor. Security restrictions may not be entirely emulated.
java.lang.RuntimeException
    at com.google.appengine.repackaged.org.objectweb.asm.MethodVisitor.visitParameter(MethodVisitor.java:115)
    at com.google.appengine.repackaged.org.objectweb.asm.ClassReader.readMethod(ClassReader.java:959)
    at com.google.appengine.repackaged.org.objectweb.asm.ClassReader.accept(ClassReader.java:693)
    at com.google.appengine.repackaged.org.objectweb.asm.ClassReader.accept(ClassReader.java:506)
    at com.google.appengine.tools.development.agent.impl.Transformer.rewrite(Transformer.java:146)
    at com.google.appengine.tools.development.agent.impl.Transformer.transform(Transformer.java:113)
    at sun.instrument.TransformerManager.transform(TransformerManager.java:188)
    at sun.instrument.InstrumentationImpl.transform(InstrumentationImpl.java:428)
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:467)
    at java.net.URLClassLoader.access$100(URLClassLoader.java:73)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:368)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:362)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:361)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at com.google.appengine.tools.development.IsolatedAppClassLoader.loadClass(IsolatedAppClassLoader.java:199)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    at com.google.appengine.api.datastore.QueryRunnerV3.runQuery(QueryRunnerV3.java:36)
    at com.google.appengine.api.datastore.PreparedQueryImpl.runQuery(PreparedQueryImpl.java:31)
    at com.google.appengine.api.datastore.PreparedQueryImpl.asQueryResultIterator(PreparedQueryImpl.java:60)
    at com.googlecode.objectify.impl.KeysOnlyIterator.<init>(KeysOnlyIterator.java:24)
    at com.googlecode.objectify.impl.StuffingIterator.<init>(StuffingIterator.java:16)
    at com.googlecode.objectify.impl.QueryEngine$3.iterator(QueryEngine.java:86)
    at com.googlecode.objectify.impl.QueryImpl.iterator(QueryImpl.java:358)
    at com.goldsoft.api.testguestbook.domain.AppUser.loadByUniqueUserId(AppUser.java:368)
    at com.goldsoft.api.testguestbook.domain.AppUser.validateUser(AppUser.java:410)
    at com.goldsoft.api.testguestbook.OrganizationEndpoint.insert(OrganizationEndpoint.java:94)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at com.google.appengine.tools.development.agent.runtime.Runtime.invoke(Runtime.java:130)

2017年8月1日9:56:58 PM com.google.appengine.tools.development.agent.impl.transform
严重:无法插入com.google.apphosting.api.DatastorePb$Cursor。安全限制可能无法完全模仿。
java.lang.RuntimeException
在com.google.appengine.repackaged.org.objectweb.asm.MethodVisitor.visitParameter(MethodVisitor.java:115)上
在com.google.appengine.repackaged.org.objectweb.asm.ClassReader.readMethod(ClassReader.java:959)上
在com.google.appengine.repackaged.org.objectweb.asm.ClassReader.accept(ClassReader.java:693)上
在com.google.appengine.repackaged.org.objectweb.asm.ClassReader.accept(ClassReader.java:506)
位于com.google.appengine.tools.development.agent.impl.Transformer.rewrite(Transformer.java:146)
位于com.google.appengine.tools.development.agent.impl.Transformer.transform(Transformer.java:113)
位于sun.instrument.TransformerManager.transform(TransformerManager.java:188)
在sun.instrument.InstrumentationImpl.transform(InstrumentationImpl.java:428)上
位于java.lang.ClassLoader.defineClass1(本机方法)
位于java.lang.ClassLoader.defineClass(ClassLoader.java:763)
位于java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
位于java.net.URLClassLoader.defineClass(URLClassLoader.java:467)
在java.net.URLClassLoader.access$100(URLClassLoader.java:73)
在java.net.URLClassLoader$1.run(URLClassLoader.java:368)
在java.net.URLClassLoader$1.run(URLClassLoader.java:362)
位于java.security.AccessController.doPrivileged(本机方法)
位于java.net.URLClassLoader.findClass(URLClassLoader.java:361)
位于java.lang.ClassLoader.loadClass(ClassLoader.java:424)
位于com.google.appengine.tools.development.IsolatedAppClassLoader.loadClass(IsolatedAppClassLoader.java:199)
位于java.lang.ClassLoader.loadClass(ClassLoader.java:357)
位于com.google.appengine.api.datastore.QueryRunnerV3.runQuery(QueryRunnerV3.java:36)
位于com.google.appengine.api.datastore.PreparedQueryImpl.runQuery(PreparedQueryImpl.java:31)
在com.google.appengine.api.datastore.PreparedQueryImpl.AsQueryResulterator上(PreparedQueryImpl.java:60)
位于com.googlecode.objectify.impl.KeysOnlyIterator.(KeysOnlyIterator.java:24)
位于com.googlecode.objectify.impl.StuffingIterator。(StuffingIterator.java:16)
在com.googlecode.objectify.impl.QueryEngine$3.iterator(QueryEngine.java:86)上
在com.googlecode.objectify.impl.QueryImpl.iterator(QueryImpl.java:358)上
位于com.goldsoft.api.testguestbook.domain.AppUser.loadByUniqueUserId(AppUser.java:368)
位于com.goldsoft.api.testguestbook.domain.AppUser.validateUser(AppUser.java:410)
在com.goldsoft.api.testguestbook.OrganizationEndpoint.insert(OrganizationEndpoint.java:94)上
在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处
位于sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)中
位于java.lang.reflect.Method.invoke(Method.java:498)
位于com.google.appengine.tools.development.agent.runtime.runtime.invoke(runtime.java:130)

以前有人遇到过这样的事情吗?如果您能提供一些帮助来澄清这个问题,我将不胜感激

提前感谢。

Cloud Endpoints提供了一个指南,您可以尝试按照该指南进行配置。你试过了吗?或者它与您的用例无关?
Aug 01, 2017 9:56:58 PM com.google.appengine.tools.development.agent.impl.Transformer transform
SEVERE: Unable to instrument com.google.apphosting.api.DatastorePb$Cursor. Security restrictions may not be entirely emulated.
java.lang.RuntimeException
    at com.google.appengine.repackaged.org.objectweb.asm.MethodVisitor.visitParameter(MethodVisitor.java:115)
    at com.google.appengine.repackaged.org.objectweb.asm.ClassReader.readMethod(ClassReader.java:959)
    at com.google.appengine.repackaged.org.objectweb.asm.ClassReader.accept(ClassReader.java:693)
    at com.google.appengine.repackaged.org.objectweb.asm.ClassReader.accept(ClassReader.java:506)
    at com.google.appengine.tools.development.agent.impl.Transformer.rewrite(Transformer.java:146)
    at com.google.appengine.tools.development.agent.impl.Transformer.transform(Transformer.java:113)
    at sun.instrument.TransformerManager.transform(TransformerManager.java:188)
    at sun.instrument.InstrumentationImpl.transform(InstrumentationImpl.java:428)
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:467)
    at java.net.URLClassLoader.access$100(URLClassLoader.java:73)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:368)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:362)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:361)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at com.google.appengine.tools.development.IsolatedAppClassLoader.loadClass(IsolatedAppClassLoader.java:199)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    at com.google.appengine.api.datastore.QueryRunnerV3.runQuery(QueryRunnerV3.java:36)
    at com.google.appengine.api.datastore.PreparedQueryImpl.runQuery(PreparedQueryImpl.java:31)
    at com.google.appengine.api.datastore.PreparedQueryImpl.asQueryResultIterator(PreparedQueryImpl.java:60)
    at com.googlecode.objectify.impl.KeysOnlyIterator.<init>(KeysOnlyIterator.java:24)
    at com.googlecode.objectify.impl.StuffingIterator.<init>(StuffingIterator.java:16)
    at com.googlecode.objectify.impl.QueryEngine$3.iterator(QueryEngine.java:86)
    at com.googlecode.objectify.impl.QueryImpl.iterator(QueryImpl.java:358)
    at com.goldsoft.api.testguestbook.domain.AppUser.loadByUniqueUserId(AppUser.java:368)
    at com.goldsoft.api.testguestbook.domain.AppUser.validateUser(AppUser.java:410)
    at com.goldsoft.api.testguestbook.OrganizationEndpoint.insert(OrganizationEndpoint.java:94)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at com.google.appengine.tools.development.agent.runtime.Runtime.invoke(Runtime.java:130)