Frage

Ich versuche, JPA Projekt auf ibm RAD zu entwickeln. Und ich kann es auf Webpshere erfolgreich ausgeführt, aber das Problem ist meine Maschine ist ziemlich alt. So Einsatz von in Java EE ist Container nicht reasonable.And ich es auf JSE.But gibt es folgende Fehler ausgeführt werden soll:

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)

Was ich vermisse?

Durch die meine persistent.xml ist:

**<?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>**
War es hilfreich?

Lösung

Nur ein Zeiger: Sie benötigen Klassen zum Beispiel verbessern zur Laufzeit über -javaagent: yourlib.jar oder auch beim Kompilieren. Sie könnten mehr zu diesem Thema erfahren Sie hier :

„Der zweite und empfohlene Weg Laufzeit Erweiterung ist eine javaagent zu schaffen, wenn die JVM startet, dass OpenJPA wird zulaufen.“

Andere Tipps

Ich ging gerade durch die Ausübung des Erhaltens OpenJPA 2.1.0 auf Tomcat 7.0 laufen. Ich war einfach nicht in der Lage Laufzeitverbesserung Arbeit unter Tomcat zu bekommen, so habe ich aufgegeben und Verwendung von Aufbauzeit Erweiterung beschlossen. Ich entwickle meinen Code unter Eclipse-so dass ich die Anweisungen befolgt hier:

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

Beachten Sie jedoch, dass die Anweisungen auf dieser Seite sind für generische Java-Projekte. Wenn Sie mit Dynamic Web Projekten arbeiten, müssen Sie das Build-Verzeichnis Argument korrekt angeben. Früher habe ich -Dbuild.dir = build / Klassen, welche die typische Position für den kompilierten Code ist.

Eine ärgerliche Marotte Sie haben damit zu leben. Sie müssen manuell aufrufen, um den Baumeister mit der „Projekt> Projekt“ Menüpunkt. Wenn der Verstärker läuft, ändert es die zuvor eingebauten Klassen. Folglich müssen Sie F5 oder Aktualisieren des Projekts treffen, bevor Sie Tomcat veröffentlichen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top