GVKun编程网logo

Google App Engine ClassNotPersistenceCapableException

31

对于GoogleAppEngineClassNotPersistenceCapableException感兴趣的读者,本文将提供您所需要的所有信息,并且为您提供关于android-Robolectri

对于Google App Engine ClassNotPersistenceCapableException感兴趣的读者,本文将提供您所需要的所有信息,并且为您提供关于android-Robolectric 3 GooglePlayServicesNotAvailableException、AppEngine ClassNotFoundException:com.google.appengine.api.datastore.DatastoreServiceFactory、Caused by: java.lang.ClassNotFoundException: com.google.protobuf.ServiceException、ClassCastException: java.util.TreeMap$Entry cannot be cast to java.lang.Comparable的宝贵知识。

本文目录一览:

Google App Engine ClassNotPersistenceCapableException

Google App Engine ClassNotPersistenceCapableException

我有以下课程:

import javax.jdo.annotations.IdGeneratorStrategy;import javax.jdo.annotations.IdentityType;import javax.jdo.annotations.PersistenceCapable;import javax.jdo.annotations.Persistent;import javax.jdo.annotations.PrimaryKey;import com.google.appengine.api.datastore.*;@PersistenceCapable(identityType=IdentityType.APPLICATION)public class PayPal_Message{  @PrimaryKey  @Persistent(valueStrategy=IdGeneratorStrategy.IDENTITY)  private Long id;  @Persistent  private Text content;  @Persistent  private String time;  public PayPal_Message(Text content,String time)  {    this.content=content;    this.time=time;  }  public Long getId() { return id; }  public Text getContent() { return content; }  public String getTime() { return time; }  public void setContent(Text content) { this.content=content; }  public void setTime(String time) { this.time=time; }}

它曾经在一个包中,并且工作正常,现在我将所有类都放在默认包中,这导致了我这个错误:

org.datanucleus.jdo.exceptions.ClassNotPersistenceCapableException:类““
PayPal_Message”类不是可持久的。这意味着它要么没有得到增强,要么文件的增强版本不在CLASSPATH中(或被隐藏。增强版本),或找不到该类的元数据/注释。”
不持久。这意味着它要么没有得到增强,要么文件的增强版本不在CLASSPATH中(或被未增强的版本隐藏),或者找不到该类的元数据。NestedThrowables:org.datanucleus.exceptions.ClassNotPersistableException:类“
PayPal_Message”不可持久。这意味着它要么没有得到增强,要么文件的增强版本不在CLASSPATH中(或者被未增强的版本隐藏了),

我该怎么解决?

答案1

小编典典

说明:默认软件包中的类对于软件包中的类不可见/不可导入。

请尝试以下示例:

public class Entity {}

(因此不带包装!)和

package persistence;public class EntityManager {    public static void main(String... args) {        Entity entity = new Entity();    }}

它行得通吗?没有?您将如何导入它?这就是幕后发生的问题!

android-Robolectric 3 GooglePlayServicesNotAvailableException

android-Robolectric 3 GooglePlayServicesNotAvailableException

我刚刚开始使用Robolectric,想知道如何解决Google Play服务.我正在使用Robolectric 3 RC2,而我的成绩如下:

build.bradle

compile 'com.squareup.okhttp:okhttp:2.3.0'
compile 'com.google.android.gms:play-services:7.0.0'
testCompile ("org.robolectric:robolectric:3.0-rc2"){
    exclude module: 'commons-logging'
    exclude module: 'httpclient'
}
testCompile ("org.robolectric:shadows-play-services:3.0-rc2"){
    exclude module: 'commons-logging'
    exclude module: 'httpclient'
}
testCompile 'com.squareup.okhttp:mockwebserver:1.2.1'

我正在从项目中运行一种方法,以从API获取json.调用时,我会传递广告ID:

        AdvertisingIdClient.Info adInfo = null;
        try {
            adInfo = AdvertisingIdClient.getAdvertisingIdInfo(mContext);
        } catch (IOException |
                GooglePlayServicesNotAvailableException |
                GooglePlayServicesRepairableException e) {
            // Unrecoverable error connecting to Google Play services (e.g.,
            // the old version of the service doesn't support getting AdvertisingId).
            e.printstacktrace();
        }

我测试的主要部分是:

@Test(timeout = 7000)
public void jsonLoading() {
    try {
        client.loadData(this);
    } catch (Exception e){
        ex = e;
    }

    assertNull(ex);

    //wait for task code
    ShadowApplication.runBackgroundTasks();

每次运行测试时,我都会收到GooglePlayServicesNotAvailableException(来自e.printstacktrace();),并且无法解决它并断言它,因此测试将无法通过.

我还没有找到调试我的代码的任何线索.

解决方法:

前几天我碰到了这个.

采用:

testCompile 'org.robolectric:shadows-play-services:3.0'
testCompile 'org.robolectric:shadows-support-v4:3.0'

并查看以下示例:

public class TestBase {

    @Before
    public void setUp() throws Exception {
        // Turn off Google Analytics - Does not need to work anymore
        final ShadowApplication shadowApplication = Shadows.shadowOf(RuntimeEnvironment.application);
        shadowApplication.declareActionUnbindable("com.google.android.gms.analytics.service.START");

        // Force success
       ShadowGooglePlayServicesUtil.setIsGooglePlayServicesAvailable(ConnectionResult.SUCCESS);
    }

    @After
    public void tearDown() throws Exception {

    }
}

public MyTestClass extends TestBase {

}

AppEngine ClassNotFoundException:com.google.appengine.api.datastore.DatastoreServiceFactory

AppEngine ClassNotFoundException:com.google.appengine.api.datastore.DatastoreServiceFactory

当我尝试在AppEngine中使用低级DataStore
API时,我得到了一个有趣的东西ClassNotFoundException。此异常发生在云服务器中,而不是在本地实例中。我在本地使用appengine-java-sdk-1.7.4

java.lang.NoClassDefFoundError: com/google/appengine/api/datastore/DatastoreServiceFactory    at org.himadri.scradiolisteners.server.FetchingServlet.writeDataLowLevel(FetchingServlet.java:47)    at org.himadri.scradiolisteners.server.FetchingServlet.doGet(FetchingServlet.java:39)    at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)    at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166)    at com.google.apphosting.utils.servlet.ParseBlobUploadFilter.doFilter(ParseBlobUploadFilter.java:102)    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)    at com.google.apphosting.runtime.jetty.SaveSessionFilter.doFilter(SaveSessionFilter.java:35)    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)    at com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:43)    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)    at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388)    at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)    at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)    at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)    at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418)    at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.handle(AppVersionHandlerMap.java:266)    at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)    at org.mortbay.jetty.Server.handle(Server.java:326)    at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)    at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:923)    at com.google.apphosting.runtime.jetty.RpcRequestParser.parseAvailable(RpcRequestParser.java:76)    at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)    at com.google.apphosting.runtime.jetty.JettyServletEngineAdapter.serviceRequest(JettyServletEngineAdapter.java:146)    at com.google.apphosting.runtime.JavaRuntime$RequestRunnable.run(JavaRuntime.java:447)    at com.google.tracing.TraceContext$TraceContextRunnable.runInContext(TraceContext.java:454)    at com.google.tracing.TraceContext$TraceContextRunnable$1.run(TraceContext.java:461)    at com.google.tracing.TraceContext.runInContext(TraceContext.java:703)    at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContextNoUnref(TraceContext.java:338)    at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContext(TraceContext.java:330)    at com.google.tracing.TraceContext$TraceContextRunnable.run(TraceContext.java:458)    at com.google.apphosting.runtime.ThreadGroupPool$PoolEntry.run(ThreadGroupPool.java:251)    at java.lang.Thread.run(Thread.java:679)Caused by: java.lang.ClassNotFoundException: com.google.appengine.api.datastore.DatastoreServiceFactory    at com.google.appengine.runtime.Request.process-e485d13152ebc944(Request.java)    at java.lang.ClassLoader.loadClass(ClassLoader.java:266)    at org.himadri.scradiolisteners.server.FetchingServlet.writeDataLowLevel(FetchingServlet.java:47)    at org.himadri.scradiolisteners.server.FetchingServlet.doGet(FetchingServlet.java:39)    at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)    at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166)    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)    at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388)    at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)    at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)    at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)    at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418)    at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)    at org.mortbay.jetty.Server.handle(Server.java:326)    at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)    at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:923)    at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)    at com.google.tracing.TraceContext$TraceContextRunnable.runInContext(TraceContext.java:454)    at com.google.tracing.TraceContext$TraceContextRunnable$1.run(TraceContext.java:461)    at com.google.tracing.TraceContext.runInContext(TraceContext.java:703)    at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContextNoUnref(TraceContext.java:338)    at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContext(TraceContext.java:330)    at com.google.tracing.TraceContext$TraceContextRunnable.run(TraceContext.java:458)    ... 1 more

答案1

小编典典

听起来对我来说是两件事之一。

1:您正在尝试在单元测试中运行GAE代码,在这种情况下,您需要使用此页面中指定的代码。

2:您没有将所有必需的jar添加到类路径中。

Caused by: java.lang.ClassNotFoundException: com.google.protobuf.ServiceException

Caused by: java.lang.ClassNotFoundException: com.google.protobuf.ServiceException

@杨桃兄弟 你好,想跟你请教个问题:

<dependency>
   <groupId>org.apache.hadoop</groupId>
   <artifactId>hadoop-client</artifactId>
   <version>2.7.2</version>
   <!-- <version>2.2.0</version>-->
</dependency>
<dependency>
   <groupId>org.apache.hadoop</groupId>
   <artifactId>hadoop-common</artifactId>
   <version>2.7.2</version>
</dependency>
<dependency>
   <groupId>org.apache.hadoop</groupId>
   <artifactId>hadoop-hdfs</artifactId>
   <version>2.7.2</version>
</dependency>

<dependency>
   <groupId>org.apache.hadoop</groupId>
   <artifactId>hadoop-mapreduce-client-core</artifactId>
   <version>2.7.2</version>
</dependency>

 

我pom 文件里的,一直报这个错

ClassCastException: java.util.TreeMap$Entry cannot be cast to java.lang.Comparable

ClassCastException: java.util.TreeMap$Entry cannot be cast to java.lang.Comparable

Exception in thread "main" java.lang.ClassCastException: java.util.TreeMap$Entry cannot be cast to java.lang.Comparable
at java.util.TreeMap.getEntry(TreeMap.java:349)
at java.util.TreeMap.get(TreeMap.java:278)
at cn.qjj.business.WeiboBus.main(WeiboBus.java:394)

今天关于Google App Engine ClassNotPersistenceCapableException的讲解已经结束,谢谢您的阅读,如果想了解更多关于android-Robolectric 3 GooglePlayServicesNotAvailableException、AppEngine ClassNotFoundException:com.google.appengine.api.datastore.DatastoreServiceFactory、Caused by: java.lang.ClassNotFoundException: com.google.protobuf.ServiceException、ClassCastException: java.util.TreeMap$Entry cannot be cast to java.lang.Comparable的相关知识,请在本站搜索。

本文标签: