2010-12-01 31 views
1

L'implémentation JPA utilisée dans mon application est Kodo. Lorsque vous tentez d'interroger la base de données pour une entité, je reçois cette exception très étrange:JPA - exception "Aucune métadonnée trouvée pour le type"

org.apache.openjpa.persistence.ArgumentException: Aucune métadonnée n'a été trouvée pour le type « classe com.verid.ims.model.AddressUS ". La classe n'apparaît pas dans la liste des types persistants: [com.verid.ims.model.Birthdate, com.verid.ims.model.PersonName, com.verid.ims.model.AddressUS, com.rsa.idv .ims.feedback.IMSFeedback, com.rsa.idv.ims.notification.IMSNotification, com.rsa.idv.ims.provider.IMSProvider, com.rsa.idv.ims.notification.NotificationEntry, com.rsa.idv.ims .enroll.SecretUserQuestion, com.rsa.idv.ims.enroll.Enrollment].

Veuillez prendre en compte que la classe AddressUS, qui, selon l'exception n'apparaît pas dans la liste des types persistants, est réellement dans la liste! (Gras)

La classe AddressUS est mappée dans mon fichier orm.xml (elle ne figure pas dans le descripteur persistence.xml car il ne s'agit pas d'une entité, mais uniquement d'une variable incorporable). Voici la cartographie:

<embeddable class="com.verid.ims.model.AddressUS"> 
    <attributes> 
    <basic name="city" /> 
    <basic name="state"> 
     <enumerated>STRING</enumerated> 
    </basic> 
    <basic name="street1" /> 
    <basic name="street2" /> 
    <basic name="zipcode" /> 
    <basic name="suite" /> 
    </attributes> 
</embeddable> 

Inutile de dire que le descripteur persistence.xml fait référence au fichier orm.xml.

L'exception ne se produit que sur certains environnements (pas tous), ce qui signifie essentiellement qu'il s'agit d'un problème environnemental. Qu'est-ce qui pourrait causer ça?

Répondre

0

Je peux confirmer que j'ai le même problème. Mais c'est un comportement incohérent. L'application fonctionne bien un certain temps (quelques jours) et soudainement ce problème apparaît. Nous avons un cluster et ce problème se produit sur un seul serveur du cluster. Après le redémarrage de l'application, OpenJPA fonctionne à nouveau correctement.

Nous avons également un problème où OpenJPA fonctionne correctement jusqu'à un certain moment, puis commence à générer une requête non valide pour une table. Il semble que les métadonnées de classe ou de base de données aient été corrompues à un moment donné. Après l'apparition d'un problème, une requête non valide est générée.

Avez-vous de nouvelles informations sur ce problème?

+0

Malheureusement, aucune information ne peut aider. J'ai essayé d'utiliser le PCEnhancer livré avec WebLogic afin d'améliorer les classes persistantes (une pratique que j'ai vu dans d'autres parties de l'application), ce qui n'a pas aidé. Le problème se produit uniquement sur les environnements en cluster, mais contrairement à votre cas, il échoue toujours, et le redémarrage n'aide pas. – KidCrippler