سؤال

لقد حصلت على التطبيق في Google App Engine والتي تعمل بشكل جيد.أدركت أن واحدة من بلدي JDO-تعزيز الكائنات التي نسيت أن تنفيذ يساوي hashCode (أنا بحاجة إلى استخدام كائن في مجموعة).هكذا فعلت.أنا لم تفعل أي شيء خاص في هذه التطبيقات ، في الواقع لقد استخدمت الكسوف أن يولد لهم.مثل ذلك:

@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
private Long id;

@Persistent
private String appleId;

@Override
public int hashCode() {
    final int prime = 31;
    int result = 1;
    result = prime * result
            + ((appleId == null) ? 0 : appleId.hashCode());
    return result;
}

@Override
public boolean equals(Object obj) {
    if (this == obj)
        return true;
    if (obj == null)
        return false;
    if (getClass() != obj.getClass())
        return false;
    User other = (User) obj;
    if (appleId == null) {
        if (other.appleId != null)
            return false;
    } else if (!appleId.equals(other.appleId))
        return false;
    return true;
}

حتى الآن, عندما كنت في محاولة لضرب أي عناوين في تطبيق هذا الاستثناء يحصل ألقيت:

/addUser javax.jdo.JDOUserException:استمرار "الطبقة com.bpapa.اسم التطبيق.المجال.المستخدم لا يبدو أن قد تعززت.قد تحتاج إلى إعادة تشغيل محسن و التحقق من الأخطاء في الإخراج." لا يوجد جدول في قاعدة البيانات ، ولكن العملية تتطلب ذلك.يرجى التحقق من مواصفات البيانات الوصفية لهذه الفئة.في org.datanucleus.jdo.NucleusJDOHelper.getJDOExceptionForNucleusException(NucleusJDOHelper.java:427) في org.datanucleus.jdo.JDOQuery.تنفيذ(JDOQuery.java:249) في com.bpapa.اسم التطبيق.بريمج.AddUserServlet.doPost(AddUserServlet.java:34)

أي أفكار على ما فعلته خطأ ؟

هل كانت مفيدة؟

المحلول

هل وضعت كسوف للتشغيل تلقائيا محسن datanucleus؟ ماذا لو حاول تنظيف المشروع مع على المشاريع> نظيفة ومن ثم إنشاء المشروع من الصفر؟

نصائح أخرى

التكوين في الكسوف ("تشغيل datanucleus محسن" ذات الصلة المسألة كما ذكر أعلاه)

المشروع إعدادات -> جوجل> App Engine -> ORM

تغيير src parh "src/" الطريق إلى الدقيق "src//" مسار JDO الطبقات

وأنا واجهت نفس المشكلة، وعندما فعلت المشروع -> نظيفة، ورأيت بعد استثناء في السجل:

{Caused by: org.datanucleus.exceptions.NucleusException: Plugin (Bundle) "org.datanucleus.store.appengine" is already registered. Ensure you dont have multiple JAR versions of the same plugin in the classpath. The URL "file:/C:/Documents%20and%20Settings/Administrator/workspace/Guestbook/war/WEB-INF/lib/datanucleus-appengine-1.0.8.final.jar" is already registered, and you are trying to register an identical plugin located at URL "file:/C:/eclipse/plugins/com.google.appengine.eclipse.sdkbundle.1.4.2_1.4.2.v201102111811/appengine-java-sdk-1.4.2/lib/user/orm/datanucleus-appengine-1.0.8.final.jar."}

وهكذا، أزلت:

C:/Documents and Settings/Administrator/workspace/Guestbook/war/WEB-INF/lib/datanucleus-appengine-1.0.8.final.jar

ومن المشروع الكسوف وتنظيفها وإعادة بناؤها، بدأ كل شيء يعمل كما هو متوقع.

وأنا حل هذه المشكلة عن طريق تحديث إلى الإصدار الأحدث من الإستراحة إلى AppEngine جافا.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top