Hi,

I'm using the technique of copying datamaps (by Michael Gentry, look at 
http://cwiki.apache.org/CAY/copying-datamaps.html).

Works fine as long as the configuration files are located in the filesystem. I 
moved them into a package (following the hints at 
http://cwiki.apache.org/CAYDOC/customizing-configuration.html). Now it works 
within the IDE (Eclipse 3.2), but not within a jar-file.

this is the cayenne.xml:
<?xml version="1.0" encoding="utf-8"?>
<domains project-version="2.0">

<domain name="DC">
        <node name="DCNode"
                 datasource="DCNode.driver.xml"
                 factory="org.apache.cayenne.conf.DriverDataSourceFactory">
         </node>
</domain>
<domain name="SharedDomain">
        <map name="SharedMap" location="SharedMap.map.xml"/>

        <node name="SharedNode"
                 datasource="SharedNode.driver.xml"
                 factory="org.apache.cayenne.conf.DriverDataSourceFactory">
                        <map-ref name="SharedMap"/>
         </node>
</domain>
</domains>

The cayenne.xml and SharedNode.driver.xml are found, but DCNode.driver.xml 
cannnot be located in the jar-file, because in that case the 
"jar:file:...."-Prefix isn't used by the ResourceLocator.

Any suggestions what I am doing wrong ?

Thanks in advance 

Jens


This is the Logging-Output (DEBUG-Level):

using domain file name: cayenne.xml
canInitialize started.
initialize starting.
searching additional classpaths: [de/edeka/ebus/dc/db/util, 
de/edeka/ebus/dc/db/conf]
searching for: de/edeka/ebus/dc/db/util/cayenne.xml
URL not found with classloader: de/edeka/ebus/dc/db/util/cayenne.xml
searching for: de/edeka/ebus/dc/db/conf/cayenne.xml
URL found with classloader: 
jar:file:/T:/test/dcmonitor.jar!/de/edeka/ebus/dc/db/conf/cayenne.xml
started configuration loading.
loaded domain: DC
loading <node name='DCNode' datasource='DCNode.driver.xml' 
factory='org.apache.cayenne.conf.DriverDataSourceFactory'>.
using factory: org.apache.cayenne.conf.DriverDataSourceFactory
loading driver information from 'DCNode.driver.xml'.
searching additional classpaths: [de/edeka/ebus/dc/db/util, 
de/edeka/ebus/dc/db/conf]
searching for: de/edeka/ebus/dc/db/util/DCNode.driver.xml
URL not found with classloader: de/edeka/ebus/dc/db/util/DCNode.driver.xml
searching for: de/edeka/ebus/dc/db/conf/DCNode.driver.xml
URL not found with classloader: de/edeka/ebus/dc/db/conf/DCNode.driver.xml
URL not found with classloader: DCNode.driver.xml
Error: location 'DCNode.driver.xml' not found.
Error: DataSource load failed
org.apache.cayenne.ConfigurationException: [v.2.0.2 January 14 2007] Can't find 
DataSource configuration file at DCNode.driver.xml
        at 
org.apache.cayenne.conf.DriverDataSourceFactory.load(DriverDataSourceFactory.java:122)
        at 
org.apache.cayenne.conf.DriverDataSourceFactory.getDataSource(DriverDataSourceFactory.java:80)
        at 
org.apache.cayenne.conf.RuntimeLoadDelegate.shouldLoadDataNode(RuntimeLoadDelegate.java:297)
        at 
org.apache.cayenne.conf.ConfigLoader$NodeHandler.init(ConfigLoader.java:330)
        at 
org.apache.cayenne.conf.ConfigLoader$DomainHandler.startElement(ConfigLoader.java:219)
        at 
com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(Unknown
 Source)
        at 
com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown
 Source)
        at 
com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown
 Source)
        at 
com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown
 Source)
        at 
com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown 
Source)
        at 
com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown 
Source)
        at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown 
Source)
        at 
com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown 
Source)
        at 
org.apache.cayenne.conf.ConfigLoader.loadDomains(ConfigLoader.java:78)
        at 
org.apache.cayenne.conf.DefaultConfiguration.initialize(DefaultConfiguration.java:161)
        at 
org.apache.cayenne.conf.Configuration.initializeSharedConfiguration(Configuration.java:276)
        at 
de.edeka.ebus.dc.db.util.DcContextManager.<init>(DcContextManager.java:44)
        at 
de.edeka.ebus.dc.db.util.DcContextManager.getInstance(DcContextManager.java:54)
        at de.edeka.ebus.dc.db.Status.<clinit>(Status.java:41)
        at de.edeka.ebus.dc.util.StatusImage.<clinit>(StatusImage.java:23)
        at 
de.edeka.ebus.dc.mvc.monitor.ViewMkt.createStatusFilterGroup(ViewMkt.java:193)
        at 
de.edeka.ebus.dc.mvc.monitor.ViewMkt.createFilterComposite(ViewMkt.java:171)
        at de.edeka.ebus.dc.mvc.monitor.ViewMkt.createControls(ViewMkt.java:106)
        at 
de.edeka.ebus.dc.mvc.monitor.ViewDetail.createControls(ViewDetail.java:43)
        at 
de.edeka.ebus.dc.mvc.monitor.ViewMain.createControls(ViewMain.java:38)
        at de.edeka.ebus.framework.mvc.BaseMvc.<init>(BaseMvc.java:44)
        at de.edeka.ebus.dc.mvc.monitor.MvcMain.<init>(MvcMain.java:29)
        at 
de.edeka.ebus.dc.app.MonitorWindow.createContents(MonitorWindow.java:61)
        at org.eclipse.jface.window.Window.create(Window.java:426)
        at org.eclipse.jface.window.Window.open(Window.java:785)
        at de.edeka.ebus.dc.app.StartMonitor.main(StartMonitor.java:45)
no adapter set, using automatic adapter.
loaded domain: SharedDomain
searching additional classpaths: [de/edeka/ebus/dc/db/util, 
de/edeka/ebus/dc/db/conf]
searching for: de/edeka/ebus/dc/db/util/SharedMap.map.xml
URL not found with classloader: de/edeka/ebus/dc/db/util/SharedMap.map.xml
searching for: de/edeka/ebus/dc/db/conf/SharedMap.map.xml
URL found with classloader: 
jar:file:/T:/test/dcmonitor.jar!/de/edeka/ebus/dc/db/conf/SharedMap.map.xml
loaded <map name='SharedMap' location='SharedMap.map.xml'>.
loading <node name='SharedNode' datasource='SharedNode.driver.xml' 
factory='org.apache.cayenne.conf.DriverDataSourceFactory'>.
using factory: org.apache.cayenne.conf.DriverDataSourceFactory
loading driver information from 'SharedNode.driver.xml'.
searching additional classpaths: [de/edeka/ebus/dc/db/util, 
de/edeka/ebus/dc/db/conf]
searching for: de/edeka/ebus/dc/db/util/SharedNode.driver.xml
URL not found with classloader: de/edeka/ebus/dc/db/util/SharedNode.driver.xml
searching for: de/edeka/ebus/dc/db/conf/SharedNode.driver.xml
URL found with classloader: 
jar:file:/T:/test/dcmonitor.jar!/de/edeka/ebus/dc/db/conf/SharedNode.driver.xml
loading driver null
Created connection pool: null
        Driver class: null
        Min. connections in the pool: 1
        Max. connections in the pool: 1
loaded datasource.
no adapter set, using automatic adapter.
loaded map-ref: SharedMap.
Exception in thread "main" java.lang.ExceptionInInitializerError
        at de.edeka.ebus.dc.util.StatusImage.<clinit>(StatusImage.java:23)
        at 
de.edeka.ebus.dc.mvc.monitor.ViewMkt.createStatusFilterGroup(ViewMkt.java:193)
        at 
de.edeka.ebus.dc.mvc.monitor.ViewMkt.createFilterComposite(ViewMkt.java:171)
        at de.edeka.ebus.dc.mvc.monitor.ViewMkt.createControls(ViewMkt.java:106)
        at 
de.edeka.ebus.dc.mvc.monitor.ViewDetail.createControls(ViewDetail.java:43)
        at 
de.edeka.ebus.dc.mvc.monitor.ViewMain.createControls(ViewMain.java:38)
        at de.edeka.ebus.framework.mvc.BaseMvc.<init>(BaseMvc.java:44)
        at de.edeka.ebus.dc.mvc.monitor.MvcMain.<init>(MvcMain.java:29)
        at 
de.edeka.ebus.dc.app.MonitorWindow.createContents(MonitorWindow.java:61)
        at org.eclipse.jface.window.Window.create(Window.java:426)
        at org.eclipse.jface.window.Window.open(Window.java:785)
        at de.edeka.ebus.dc.app.StartMonitor.main(StartMonitor.java:45)
Caused by: org.apache.cayenne.ConfigurationException: [v.2.0.2 January 14 2007] 
Error during Configuration initialization. [v.2.0.2 January 14 2007] Load 
failures. Main configuration class: de.edeka.e
bus.dc.db.util.DcPackageConfiguration, details:
        domain.node.name=DCNode, domain.node.datasource=DCNode.driver.xml, 
reason: DataSource load failed - [v.2.0.2 January 14 2007] Can't find 
DataSource configuration file at DCNode.driver.xml
        at 
org.apache.cayenne.conf.Configuration.initializeSharedConfiguration(Configuration.java:285)
        at 
de.edeka.ebus.dc.db.util.DcContextManager.<init>(DcContextManager.java:44)
        at 
de.edeka.ebus.dc.db.util.DcContextManager.getInstance(DcContextManager.java:54)
        at de.edeka.ebus.dc.db.Status.<clinit>(Status.java:41)
        ... 12 more
Caused by: org.apache.cayenne.ConfigurationException: [v.2.0.2 January 14 2007] 
Load failures. Main configuration class: 
de.edeka.ebus.dc.db.util.DcPackageConfiguration, details:
        domain.node.name=DCNode, domain.node.datasource=DCNode.driver.xml, 
reason: DataSource load failed - [v.2.0.2 January 14 2007] Can't find 
DataSource configuration file at DCNode.driver.xml
        at 
org.apache.cayenne.conf.RuntimeLoadDelegate.finishedLoading(RuntimeLoadDelegate.java:470)
        at 
org.apache.cayenne.conf.ConfigLoader.loadDomains(ConfigLoader.java:79)
        at 
org.apache.cayenne.conf.DefaultConfiguration.initialize(DefaultConfiguration.java:161)
        at 
org.apache.cayenne.conf.Configuration.initializeSharedConfiguration(Configuration.java:276)
        ... 15 more

-- 
Psssst! Schon vom neuen GMX MultiMessenger gehört?
Der kanns mit allen: http://www.gmx.net/de/go/multimessenger

Reply via email to