When running an application under weblogic 8.1 in development
environment, where all classpaths are set up in the IDE before
launching the app server, the application runs fine. When deployed as
self-contained web app, application fails when trying to load the
toplink descriptors, claiming that it can not "missing class for
indicator field value" for a specific entity class. The class
inherits from an AbstractClass, both are defined in the descriptor
project files correctly, using the class name as the class identifier.
Anybody have any idea what causes these TOPLINK-43 errors? The manual
description of this error is not much help. The error message itself
seems to imply that it can not find this particular class, but right
before the project is loaded, I created a reference to that class, so
I know the class can be find by the JVM. Are there classloader issues
with toplink that I am perhaps not aware of?
Here is the stack trace. pd.contact.Person is the class that it
claims not to be able to find. In extends AbstractEntity.
AbstractEntity is set ot use class name as identifier field. Person
sets the parent descriptor to be AbstractEntity.
EXCEPTION [TOPLINK-43] (3.6 JDK1.2):
TOPLink.Public.Exceptions.DescriptorException
EXCEPTION DESCRIPTION: Missing class for indicator field value
[pd.contact.Person] of type [class java.lang.String].
DESCRIPTOR: Descriptor(pd.contact.AbstractEntity -->
[DatabaseTable(ENTITY)])
at TOPLink.Public.Exceptions.DescriptorException.miss ingClassForIndicatorFieldValue(DescriptorException .java:701)
at TOPLink.Public.PublicInterface.InheritancePolicy.c lassFromRow(InheritancePolicy.java:254)
at TOPLink.Private.Descriptors.ObjectBuilder.buildObj ect(ObjectBuilder.java:271)
at TOPLink.Public.QueryFramework.ObjectLevelReadQuery .buildObject(ObjectLevelReadQuery.java:197)
at TOPLink.Public.QueryFramework.ReadObjectQuery.exec ute(ReadObjectQuery.java:352)
at TOPLink.Public.QueryFramework.DatabaseQuery.execut e(DatabaseQuery.java:394)
at TOPLink.Public.QueryFramework.ReadQuery.execute(Re adQuery.java:99)
at TOPLink.Public.PublicInterface.Session.internalExe cuteQuery(Session.java:1628)
at TOPLink.Public.ThreeTier.ServerSession.internalExe cuteQuery(ServerSession.java:543)
at TOPLink.Public.PublicInterface.Session.executeQuer y(Session.java:921)
at TOPLink.Private.Indirection.QueryBasedValueHolder. instantiate(QueryBasedValueHolder.java:45)
at TOPLink.Private.Indirection.DatabaseValueHolder.ge tValue(DatabaseValueHolder.java:62)
at TOPLink.Private.Indirection.UnitOfWorkQueryValueHo lder.getValueFromWrappedValueHolder(UnitOfWorkQuer yValueHolder.java:59)
at TOPLink.Private.Indirection.UnitOfWorkValueHolder. instantiate(UnitOfWorkValueHolder.java:124)
at TOPLink.Private.Indirection.DatabaseValueHolder.ge tValue(DatabaseValueHolder.java:62)