2010-01-24 14 views
5

IBM RAD üzerinde JPA projesi geliştirmeye çalışıyorum. Ve başarılı bir şekilde Webpshere üzerinde çalıştırabilirim, ama sorun benim makinem oldukça eski. Ben ne eksikopenJPA on Java SE

94 test INFO [main] openjpa.Runtime - Starting OpenJPA 1.2.1-SNAPSHOT 
235 test INFO [main] openjpa.jdbc.JDBC - Using dictionary class "com.ibm.ws.persistence.jdbc.sql.DB2Dictionary". 
1797 test WARN [main] openjpa.Enhance - This configuration disallows runtime optimization, but the following listed types were not enhanced at build time or at class load time with a javaagent: "[class Customer]". 
Exception in thread "main" <openjpa-1.2.1-SNAPSHOT-r422266:686069 fatal user error> org.apache.openjpa.persistence.ArgumentException: The type "class Customer" has not been enhanced. 
    at org.apache.openjpa.meta.ClassMetaData.resolveMeta(ClassMetaData.java:1650) 
    at org.apache.openjpa.meta.ClassMetaData.resolve(ClassMetaData.java:1624) 
    at org.apache.openjpa.meta.MetaDataRepository.processBuffer(MetaDataRepository.java:717) 
    at org.apache.openjpa.meta.MetaDataRepository.resolveMeta(MetaDataRepository.java:616) 
    at org.apache.openjpa.meta.MetaDataRepository.resolve(MetaDataRepository.java:541) 
    at org.apache.openjpa.meta.MetaDataRepository.getMetaData(MetaDataRepository.java:308) 
    at org.apache.openjpa.kernel.BrokerImpl.newObjectId(BrokerImpl.java:1114) 
    at org.apache.openjpa.kernel.DelegatingBroker.newObjectId(DelegatingBroker.java:268) 
    at org.apache.openjpa.persistence.EntityManagerImpl.find(EntityManagerImpl.java:451) 
    at deneme.main(deneme.java:21) 

: Yani Java EE konteyner içinde dağıtmak hatası aşağıdaki verir ı JSE.But bunun üzerine yayınlamak isteyenler reasonable.And değil mi? Benim persistent.xml By

geçerli:

**<?xml version="1.0" encoding="UTF-8"?> 
<persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"> 
    <persistence-unit name="test" transaction-type="RESOURCE_LOCAL"> 
    <provider> 
     com.ibm.websphere.persistence.PersistenceProviderImpl 
    </provider> 
     <class>Customer</class> 
     <properties> 
      <property name="openjpa.ConnectionDriverName" value="com.ibm.db2.jcc.DB2Driver"/> 
      <property name="openjpa.ConnectionURL" value="jdbc:db2://localhost:50000/PARUD:retrieveMessagesFromServerOnGetMessage=true;"/> 
      <property name="openjpa.ConnectionUserName" value="db2admin"/> 
      <property name="openjpa.ConnectionPassword" value="xxxxx"/> 
      <property name="openjpa.jdbc.Schema" value="POOL"/> 
     </properties> 
    </persistence-unit> 
</persistence>** 

cevap

8

Sadece bir işaretçi: Sen mesela senin sınıfları geliştirmek gerekir -javaagent ile çalışma zamanında: yourlib.jar veya derlerken. Bu konuda daha fazla bilgi edinebilirsiniz here:

"Ikinci ve önerilen yol çalışma zamanı geliştirmesinin, OpenJPA'nın çalıştırılacağı JVM'yi başlatırken bir javaagent sağlamaktır."

+0

evet ben bu -javaagent javaagent.like çalıştı \ Program Files \ IBM \ WebSphere \ AppServer \ plugins \ com.ibm.ws.jpa.jar o hatayı veriyor: "Java Virtual makineyi oluşturulamadı " – qasanov

+0

problem alan" Program Files "idi. "C: \ com.ibm.ws.jpa.jar" altındaki dosyayı taşıdım ve her şey yolunda görünüyor. şimdiden teşekkürler :) – qasanov

0

Sadece OpenJPA 2.1.0'ı Tomcat 7.0'da çalıştırmaya alıştırmaya başladım. Tomcat altında çalışmak için çalışma zamanı geliştirmesi yapamadım, bu yüzden vazgeçtim ve yapım süresi geliştirmeyi kullanmaya karar verdim. Ben bu yüzden buradaki talimatları takip Eclipse altında kodumu geliştiriyorum:

http://openjpa.apache.org/enhancement-with-eclipse.html

Not Ancak bu sayfadaki talimatları jenerik java projeleri için olduğunu. Dinamik Web Projeleri ile çalışıyorsanız, derleme dizini argümanını doğru şekilde belirttiğinizden emin olun. Derlenmiş kod için tipik konum olan -Dbuild.dir = derleme/sınıfları kullandım.

Yaşamak zorunda olduğunuz bir daha rahatsız edici tuhaflık. "Project> Build Project" menü öğesini kullanarak oluşturucuyu manuel olarak çağırmalısınız. Geliştirici çalıştığında, önceden oluşturulmuş sınıfları değiştirir. Sonuç olarak, Tomcat’a yayınlamadan önce projeye F5 veya Yenile’ye basmanız gerekir. C:

İlgili konular