[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
Re: [udig-devel] Eclipse + ClassLoader + LocalCatalog
|
This is a strange error as eclipse is very strict about keeping the
classpath for different plugins separate. If the library has not been
added to the system classpath it seems very odd to me that the catalog
plugins are picking them up. Definately verify that the castor is not
somehow on the jre classpath.
Jesse
Vincent Nouguier wrote:
Dear Jesse and Jody,
my castor librairy is not added to the JRE but is already embedded in
my plugin. A xerces librairy is also embedded in my plugin. But when
my classes (ServiceExtension) are loaded through another plugin
(CatalogPlugin I suppose), the castor lib is found (the stacktrace
shows castor calls) but the xerces lib is the one from the JRE.
I'll try to find documentation on how ClassLoaders work in Eclipse.
If you have the solution or if you have an idea to test, let me know.
As I already embed jars in my plugin, I suppose creating a plugin that
provides xerces and castor as suggested by Jody will have no effect.
Right ?
Thanks guys
Vincent
PS: my plugin.xml and manifest.mf
<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.0"?>
<plugin>
<extension
point="net.refractions.udig.catalog.ServiceExtension">
<service
class="net.eads.irgs5.oasis.tsochannels.data.TsoChannelServiceExtension"/>
</extension>
<extension
point="org.eclipse.core.runtime.preferences">
<initializer
class="net.eads.irgs5.oasis.tsochannels.preferences.PreferenceInitializer"/>
</extension>
<extension
point="org.eclipse.ui.preferencePages">
<page
class="net.eads.irgs5.oasis.tsochannels.preferences.PreferencePage"
id="net.eads.irgs5.oasis.tsochannels.preferences.PreferencePage"
name="OASIS/TSO Channels"/>
</extension>
<extension
point="net.refractions.udig.catalog.ICatalog">
<ICatalog
class="net.eads.irgs5.oasis.tsochannels.catalog.TsoChannelsCatalog"/>
</extension>
<extension
point="org.eclipse.ui.views">
<category
id="net.eads.irgs5.oasis.tsochannels"
name="%catalog.name"/>
<view
category="net.eads.irgs5.oasis.tsochannels"
class="net.eads.irgs5.oasis.tsochannels.catalog.ui.View"
icon="icons/sample.gif"
id="net.eads.irgs5.oasis.tsochannels.views.Catalog"
name="%catalog.view.name"/>
</extension>
<extension
point="org.eclipse.ui.perspectiveExtensions">
<perspectiveExtension
targetID="net.refractions.udig.ui.mapPerspective">
<view
id="net.eads.irgs5.oasis.tsochannels.views.Catalog"
relationship="stack"
relative="bottom"/>
</perspectiveExtension>
</extension>
<extension
point="org.eclipse.ui.startup">
</extension>
</plugin>
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Tsochannels Plug-in
Bundle-SymbolicName: net.eads.irgs5.oasis.tsochannels; singleton:=true
Bundle-Version: 1.0.0
Bundle-ClassPath: lib/tsochannels.jar,
lib/xercesImpl.jar,
lib/xml-apis.jar,
lib/castor-1.0M1-xml.jar
Bundle-Activator: net.eads.irgs5.oasis.tsochannels.TsochannelsPlugin
Bundle-Vendor: EADS DS SAS
Bundle-Localization: plugin
Require-Bundle: org.eclipse.ui,
org.eclipse.core.runtime,
net.eads.irgs5.eclipse.logging,
net.refractions.udig.catalog,
net.refractions.udig.catalog.ui,
net.refractions.udig.libs,
net.refractions.udig.catalog.shp,
net.refractions.udig.render.feature.basic,
net.refractions.udig.catalog.wms,
net.eads.irgs5.oasis.coe
Eclipse-AutoStart: true
Jesse Eichar wrote:
This is a rather difficult issue. I would first say that the Castor
jars shouldn't be added to the JRE rather they should be included in
your jar so they don't interfere with the other plugins. In
particular the plugins that load the maps. Also make sure you fully
qualify which xml files you are using...
Other than that I'm not sure what to do off the top of my head.
Jesse
Vincent Nouguier wrote:
Dear all,
I have the following problem.
I created a new data type from XML content.
When I run uDig for the time in a clean workspace, everything works
well. I can create services that are displayed in the localcatalog
view.
When I close and try to run uDig once again, previously loaded
services are loaded through the ServiceExtension extension. It seems
that the XML parser used to load my service is the one from the JDK,
not the xerces librairy I included in my plugin, not the xerces
version included in the lib plugin.
As I use Castor for XML mapping, I get an exception when reading XML
content.
I really believe it is a problem of classloader but I don't know
what to do?
Any Idea ?
I already encountered a similar problem when embedding Jetty in
uDig, I worked very well on first run but never again. I did not
resolve this bug. This new problem let me say that it could be a
problem with xml parsers as Jetty also uses XML for its configuration.
Thanks for your help
Vincent.
PS: I did not forget my previous questions (one week ago) to display
layers in a heriarchical manner, but I tried to diplay them first in
a flat way. Can the members method on IGeoResource help me ?
Here is the console log (all log4j events were not present during
first clean run)
log4j:ERROR A "org.apache.log4j.PatternLayout" object is not
assignable to a "org.apache.log4j.Layout" variable.
log4j:ERROR The class "org.apache.log4j.Layout" was loaded by
log4j:ERROR
[org.eclipse.core.runtime.adaptor.EclipseClassLoader@1d314cc]
whereas object of type
log4j:ERROR "org.apache.log4j.PatternLayout" was loaded by
[org.eclipse.core.runtime.adaptor.EclipseClassLoader@cb754f].
log4j:ERROR No layout set for the appender named [A1].
log4j:ERROR A "org.apache.log4j.PatternLayout" object is not
assignable to a "org.apache.log4j.Layout" variable.
log4j:ERROR The class "org.apache.log4j.Layout" was loaded by
log4j:ERROR
[org.eclipse.core.runtime.adaptor.EclipseClassLoader@1d314cc]
whereas object of type
log4j:ERROR "org.apache.log4j.PatternLayout" was loaded by
[org.eclipse.core.runtime.adaptor.EclipseClassLoader@cb754f].
log4j:WARN No appenders could be found for logger
(org.apache.axis.i18n.ProjectResourceBundle).
log4j:WARN Please initialize the log4j system properly.
log4j:ERROR No layout set for the appender named [A1].
action.remove: 'elcl16/remove_co.gif' found action.remove
action.remove: 'dlcl16/remove_co.gif' found action.remove
Exception in thread "TsoChannelsWatcher, OASIS_TSO_CHANNELS_1_0"
java.lang.RuntimeException: Could not instantiate parser
org.apache.xerces.parsers.SAXParser: java.lang.ClassCastException:
org.apache.xerces.parsers.XML11Configuration
at
org.exolab.castor.util.LocalConfiguration.getParser(LocalConfiguration.java:332)
at
org.exolab.castor.util.LocalConfiguration.getParser(LocalConfiguration.java:263)
at
org.exolab.castor.xml.Unmarshaller.unmarshal(Unmarshaller.java:642)
at
org.exolab.castor.xml.Unmarshaller.unmarshal(Unmarshaller.java:565)
at
org.exolab.castor.xml.Unmarshaller.unmarshal(Unmarshaller.java:748)
at
net.eads.irgs5.oasis.tsochannels.model.castor.TSO_Channel.unmarshalTSO_Channel(TSO_Channel.java:619)
at
net.eads.irgs5.oasis.tsochannels.catalog.TsoChannelsWatcher.run(TsoChannelsWatcher.java:157)
at java.lang.Thread.run(Unknown Source)
Here is a message I get since I updated from 1.0.5 to 1.1M2 : in
${workspace}/metadata/.log, maybe it can help. I get this message at
each uDig run.
!ENTRY org.eclipse.core.runtime 2 2 2006-02-01 20:03:21.820
!MESSAGE Job found still running after platform shutdown. Jobs
should be canceled by the plugin that scheduled them during
shutdown:
net.refractions.udig.project.ui.internal.render.displayAdapter.impl.EventJob
!SESSION Wed Feb 01 20:03:27 CET 2006
------------------------------------------
!ENTRY org.eclipse.core.launcher 4 0 2006-02-01 20:03:27.335
!MESSAGE -showsplash
!STACK
java.io.IOException: CreateProcess:
E:\udig_sdk_1.1M2-nightlybuild.26012006\eclipse -name Eclipse
-showsplash 600
D:\dev\workspaces\uDig-workspace\.metadata\.plugins\org.eclipse.pde.core\uDig\org.eclipse.osgi\nl\fr\splash.bmp
error=2
at java.lang.ProcessImpl.create(Native Method)
at java.lang.ProcessImpl.<init>(Unknown Source)
at java.lang.ProcessImpl.start(Unknown Source)
at java.lang.ProcessBuilder.start(Unknown Source)
at java.lang.Runtime.exec(Unknown Source)
at java.lang.Runtime.exec(Unknown Source)
at org.eclipse.core.launcher.Main.runCommand(Main.java:1565)
at org.eclipse.core.launcher.Main.handleSplash(Main.java:1541)
at org.eclipse.core.launcher.Main.basicRun(Main.java:276)
at org.eclipse.core.launcher.Main.run(Main.java:973)
at org.eclipse.core.launcher.Main.main(Main.java:948)
_______________________________________________
User-friendly Desktop Internet GIS (uDig)
http://udig.refractions.net
http://lists.refractions.net/mailman/listinfo/udig-devel
_______________________________________________
User-friendly Desktop Internet GIS (uDig)
http://udig.refractions.net
http://lists.refractions.net/mailman/listinfo/udig-devel
_______________________________________________
User-friendly Desktop Internet GIS (uDig)
http://udig.refractions.net
http://lists.refractions.net/mailman/listinfo/udig-devel