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
[EMAIL PROTECTED]
whereas object of type
log4j:ERROR "org.apache.log4j.PatternLayout" was loaded by
[EMAIL PROTECTED]
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
[EMAIL PROTECTED]
whereas object of type
log4j:ERROR "org.apache.log4j.PatternLayout" was loaded by
[EMAIL PROTECTED]
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