right now I am trying to upgrade an installation from Jease 1.5 to 2.6.
The Problem I have, is the same as described here:
http://groups.google.com/group/jease/browse_thread/thread/77ec9f247f88cbc5
I am pretty sure that I have all the definitions I need in my
META-INF/jease/registry.xml . What I found out (thanks for the sources
Maik!) that the database seems to get opened before the init()-method in
Registry.java is being called. Therefore the definitions can't be picked
up. Hence the error message.
What am I missing here? Any help to debug the problem ist very welcome!
Thx in advance
Max
before we dig any further into problems: Did you read and follow the
upgrade guide? An upgrade is only supported from 1.9:
http://jease.org/download/2.0/upgrade
So I would recommend to read (and follow) the release notes between
1.5 and 1.9 if there's anything mentioned about upgates, then upgrade
to 1.9 and from there to 2.0.
Cheers, Maik
As it crashes immediatly on Tomcat startup I am unable to upgrade the
database as requested in
http://jease.org/download/1.x/1.8/?print&iframe=true
Anything else?
Thx
> As it crashes immediatly on Tomcat startup I am unable to upgrade the
> database as requested in
> http://jease.org/download/1.x/1.8/?print&iframe=true
did you use any custom content types in 1.5 which you didn't deploy as
class to your new install. If so, things cannot work, because the java
classes are the "schema definitions". And without the schema, the
object database cannot be loaded.
HTH, Maik
> I work under Eclipse. In the default "src"-folder I have the
> META-INF/jease/registry.xml . The src-Folder is deployed to WEB-INF/classes
> as stated in the project properties under "Deployment Assembly"...
can you check WEB-INF/classes to see if .class-files are actually in
place? Another option would be to use the provided build.xml in
WEB-INF. Just call ant in WEB-INF.
> The definitions look like this:
>
> <component>
...
> </component>
You'll need to wrap your definition in <jease>...</jease>.
Can you post the stacktrace? Maybe it will shed some light on what
might be wrong?
Cheers, Maik
just ran ant in WEB-INF:
ant
Buildfile: /home/max/workspace.git/Jease192/WebContent/WEB-INF/build.xml
check:
clean:
[delete] Deleting directory
/home/max/workspace.git/Jease192/WebContent/WEB-INF/classes
[mkdir] Created dir:
/home/max/workspace.git/Jease192/WebContent/WEB-INF/classes
compile:
build:
BUILD SUCCESSFUL
Total time: 0 seconds
but nothing seems to have happened...
here is the stacktrace when I start in Eclipse:
INFO: Starting Servlet Engine: Apache Tomcat/6.0.33
java.lang.IllegalArgumentException: array element type mismatch
at java.lang.reflect.Array.set(Native Method)
at
com.db4o.reflect.core.AbstractReflectArray.set(AbstractReflectArray.java:101)
at
com.db4o.reflect.generic.GenericArrayReflector.set(GenericArrayReflector.java:85)
at
com.db4o.internal.handlers.array.ArrayHandler.readInto(ArrayHandler.java:382)
at
com.db4o.internal.handlers.array.ArrayHandler.readElements(ArrayHandler.java:363)
at
com.db4o.internal.handlers.array.ArrayHandler.read(ArrayHandler.java:355)
at com.db4o.internal.Handlers4.readValueType(Handlers4.java:313)
at
com.db4o.internal.marshall.AbstractReadContext.readAtCurrentSeekPosition(AbstractReadContext.java:48)
at
com.db4o.internal.marshall.AbstractReadContext$1.run(AbstractReadContext.java:38)
at
com.db4o.internal.marshall.SlotFormat.doWithSlotIndirection(SlotFormat.java:76)
at
com.db4o.internal.marshall.SlotFormat.doWithSlotIndirection(SlotFormat.java:66)
at
com.db4o.internal.marshall.AbstractReadContext.readObject(AbstractReadContext.java:36)
at
com.db4o.internal.marshall.AbstractReadContext.read(AbstractReadContext.java:28)
at com.db4o.internal.FieldMetadata.read(FieldMetadata.java:812)
at com.db4o.internal.FieldMetadata.activate(FieldMetadata.java:647)
at
com.db4o.internal.handlers.StandardReferenceTypeHandler$2.processAspect(StandardReferenceTypeHandler.java:93)
at
com.db4o.internal.metadata.MarshallingInfoTraverseAspectCommand.processAspect(MarshallingInfoTraverseAspectCommand.java:52)
at
com.db4o.internal.metadata.StandardAspectTraversalStrategy.traverseAllAspects(StandardAspectTraversalStrategy.java:24)
at
com.db4o.internal.ClassMetadata.traverseAllAspects(ClassMetadata.java:2083)
at
com.db4o.internal.handlers.StandardReferenceTypeHandler.traverseAllAspects(StandardReferenceTypeHandler.java:258)
at
com.db4o.internal.handlers.StandardReferenceTypeHandler.activateAspects(StandardReferenceTypeHandler.java:96)
at
com.db4o.internal.handlers.StandardReferenceTypeHandler.activate(StandardReferenceTypeHandler.java:119)
at com.db4o.internal.Handlers4.activate(Handlers4.java:304)
at
com.db4o.internal.ClassMetadata.instantiateFields(ClassMetadata.java:1318)
at com.db4o.internal.ClassMetadata.activate(ClassMetadata.java:1252)
at com.db4o.internal.ClassMetadata.instantiate(ClassMetadata.java:1210)
at
com.db4o.internal.marshall.UnmarshallingContext.read(UnmarshallingContext.java:70)
at com.db4o.internal.ObjectReference.read(ObjectReference.java:304)
at
com.db4o.internal.ObjectReference.readForActivation(ObjectReference.java:136)
at
com.db4o.internal.ObjectReference.activateInternal(ObjectReference.java:132)
at
com.db4o.internal.ObjectContainerBase.processedByImmediateActivation(ObjectContainerBase.java:1861)
at
com.db4o.internal.ObjectContainerBase.stillToActivate(ObjectContainerBase.java:1837)
at
com.db4o.internal.ObjectContainerBase$2.apply(ObjectContainerBase.java:190)
at
com.db4o.internal.ObjectContainerBase$2.apply(ObjectContainerBase.java:188)
at
com.db4o.internal.ObjectContainerBase.asTopLevelCall(ObjectContainerBase.java:428)
at
com.db4o.internal.ObjectContainerBase.activate(ObjectContainerBase.java:188)
at
com.db4o.internal.ObjectContainerBase.refreshInternal(ObjectContainerBase.java:1438)
at
com.db4o.internal.ObjectContainerBase.refresh(ObjectContainerBase.java:1433)
at
com.db4o.internal.ExternalObjectContainer.refresh(ExternalObjectContainer.java:124)
at
jfix.db4o.engine.PersistenceEngineDb4o.query(PersistenceEngineDb4o.java:77)
at
jfix.db4o.ObjectDatabase.populateObjectRepository(ObjectDatabase.java:72)
at jfix.db4o.ObjectDatabase.open(ObjectDatabase.java:63)
at jfix.db4o.Database.open(Database.java:70)
at
jease.cmf.web.servlet.JeaseServletListener.contextInitialized(JeaseServletListener.java:36)
at
org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4206)
at
org.apache.catalina.core.StandardContext.start(StandardContext.java:4705)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:840)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463)
at org.apache.catalina.core.StandardService.start(StandardService.java:525)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:754)
at org.apache.catalina.startup.Catalina.start(Catalina.java:595)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:616)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
01.02.2012 15:38:58 org.apache.catalina.core.StandardContext listenerStart
SCHWERWIEGEND: Exception sending context initialized event to listener
instance of class jease.cmf.web.servlet.JeaseServletListener
java.lang.RuntimeException: java.lang.IllegalArgumentException: array
element type mismatch
at jfix.db4o.Database.open(Database.java:73)
at
jease.cmf.web.servlet.JeaseServletListener.contextInitialized(JeaseServletListener.java:36)
at
org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4206)
at
org.apache.catalina.core.StandardContext.start(StandardContext.java:4705)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:840)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463)
at org.apache.catalina.core.StandardService.start(StandardService.java:525)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:754)
at org.apache.catalina.startup.Catalina.start(Catalina.java:595)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:616)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
Caused by: java.lang.IllegalArgumentException: array element type mismatch
at java.lang.reflect.Array.set(Native Method)
at
com.db4o.reflect.core.AbstractReflectArray.set(AbstractReflectArray.java:101)
at
com.db4o.reflect.generic.GenericArrayReflector.set(GenericArrayReflector.java:85)
at
com.db4o.internal.handlers.array.ArrayHandler.readInto(ArrayHandler.java:382)
at
com.db4o.internal.handlers.array.ArrayHandler.readElements(ArrayHandler.java:363)
at
com.db4o.internal.handlers.array.ArrayHandler.read(ArrayHandler.java:355)
at com.db4o.internal.Handlers4.readValueType(Handlers4.java:313)
at
com.db4o.internal.marshall.AbstractReadContext.readAtCurrentSeekPosition(AbstractReadContext.java:48)
at
com.db4o.internal.marshall.AbstractReadContext$1.run(AbstractReadContext.java:38)
at
com.db4o.internal.marshall.SlotFormat.doWithSlotIndirection(SlotFormat.java:76)
at
com.db4o.internal.marshall.SlotFormat.doWithSlotIndirection(SlotFormat.java:66)
at
com.db4o.internal.marshall.AbstractReadContext.readObject(AbstractReadContext.java:36)
at
com.db4o.internal.marshall.AbstractReadContext.read(AbstractReadContext.java:28)
at com.db4o.internal.FieldMetadata.read(FieldMetadata.java:812)
at com.db4o.internal.FieldMetadata.activate(FieldMetadata.java:647)
at
com.db4o.internal.handlers.StandardReferenceTypeHandler$2.processAspect(StandardReferenceTypeHandler.java:93)
at
com.db4o.internal.metadata.MarshallingInfoTraverseAspectCommand.processAspect(MarshallingInfoTraverseAspectCommand.java:52)
at
com.db4o.internal.metadata.StandardAspectTraversalStrategy.traverseAllAspects(StandardAspectTraversalStrategy.java:24)
at
com.db4o.internal.ClassMetadata.traverseAllAspects(ClassMetadata.java:2083)
at
com.db4o.internal.handlers.StandardReferenceTypeHandler.traverseAllAspects(StandardReferenceTypeHandler.java:258)
at
com.db4o.internal.handlers.StandardReferenceTypeHandler.activateAspects(StandardReferenceTypeHandler.java:96)
at
com.db4o.internal.handlers.StandardReferenceTypeHandler.activate(StandardReferenceTypeHandler.java:119)
at com.db4o.internal.Handlers4.activate(Handlers4.java:304)
at
com.db4o.internal.ClassMetadata.instantiateFields(ClassMetadata.java:1318)
at com.db4o.internal.ClassMetadata.activate(ClassMetadata.java:1252)
at com.db4o.internal.ClassMetadata.instantiate(ClassMetadata.java:1210)
at
com.db4o.internal.marshall.UnmarshallingContext.read(UnmarshallingContext.java:70)
at com.db4o.internal.ObjectReference.read(ObjectReference.java:304)
at
com.db4o.internal.ObjectReference.readForActivation(ObjectReference.java:136)
at
com.db4o.internal.ObjectReference.activateInternal(ObjectReference.java:132)
at
com.db4o.internal.ObjectContainerBase.processedByImmediateActivation(ObjectContainerBase.java:1861)
at
com.db4o.internal.ObjectContainerBase.stillToActivate(ObjectContainerBase.java:1837)
at
com.db4o.internal.ObjectContainerBase$2.apply(ObjectContainerBase.java:190)
at
com.db4o.internal.ObjectContainerBase$2.apply(ObjectContainerBase.java:188)
at
com.db4o.internal.ObjectContainerBase.asTopLevelCall(ObjectContainerBase.java:428)
at
com.db4o.internal.ObjectContainerBase.activate(ObjectContainerBase.java:188)
at
com.db4o.internal.ObjectContainerBase.refreshInternal(ObjectContainerBase.java:1438)
at
com.db4o.internal.ObjectContainerBase.refresh(ObjectContainerBase.java:1433)
at
com.db4o.internal.ExternalObjectContainer.refresh(ExternalObjectContainer.java:124)
at
jfix.db4o.engine.PersistenceEngineDb4o.query(PersistenceEngineDb4o.java:77)
at
jfix.db4o.ObjectDatabase.populateObjectRepository(ObjectDatabase.java:72)
at jfix.db4o.ObjectDatabase.open(ObjectDatabase.java:63)
at jfix.db4o.Database.open(Database.java:70)
... 16 more
01.02.2012 15:38:58 org.apache.catalina.core.StandardContext start
SCHWERWIEGEND: Error listenerStart
01.02.2012 15:38:58 org.apache.catalina.core.StandardContext start
SCHWERWIEGEND: Context [/Jease192] startup failed due to previous errors
Thx a lot
Max
P.S. The component definitions are wrapped by <jease></jease>
> compile:
...
> but nothing seems to have happened...
the output should be different... something more like
compile:
[copy] Copying ... files to
c:\Works\test\jease\webapps\ROOT\WEB-INF\classes
Can you double-check that you did put your classes into WEB-INF/src?
And maybe another one: can you use the build.xml from the current
release (as I'm not sure on the status of the one delivered with 1.9).
> here is the stacktrace when I start in Eclipse:
Yes, that's exactly the stacktrace when persisted classes are missing.
So we have to make sure that your compiled custom classes end up in
WEB-INF/classes.
Cheers, Maik
check:
clean:
[delete] Deleting directory
/home/max/workspace.git/www/WebContent/WEB-INF/classes
[mkdir] Created dir:
/home/max/workspace.git/www/WebContent/WEB-INF/classes
compile:
[javac] Compiling 26 source files to
/home/max/workspace.git/www/WebContent/WEB-INF/classes
[javac] Note: SozNavigations.java uses unchecked or unsafe operations.
[javac] Note: Recompile with -Xlint:unchecked for details.
[copy] Copying 4 files to
/home/max/workspace.git/www.diakonie-moosach.de/WebContent/WEB-INF/classes
build:
war:
[war] Building war: /home/max/workspace.git/www/ROOT.war
BUILD SUCCESSFUL
Total time: 3 seconds
I deployed the war file. The class files are now in
WEB-INF/classes/custom/ but I still get same error...
Anything else I can do?
Cheers
Max
I'm pretty sure that your problem arises from a missing class. Are you
sure you've copied all classes from your production version to the
current one? It is important that you deploy all classes for all
objects living in the database (did you check the Trash)?
> /home/max/workspace.git/www/WebContent/WEB-INF/classes
...
> /home/max/workspace.git/www.diakonie-moosach.de/WebContent/WEB-INF/classes
the difference in the above paths is strange... did you change the
build.xml? Can you peek into the ROOT.war and check that the classes
are there?
If this is no help, can you send me your db4o.yap (from 1.5) and your
class-sources, so I can give it a try?
Cheers, Maik
together with Maik I figured out my problem: In the upgrade effort I
relocated my custom classes in new packages. Therefore the database
couldn't find them anymore and threw the mentioned exception.
Thx a lot for helping out!
Max