First a warm hello to this list. I'm ojb-newbie from germany and
impressed of the simplicity using ojb.

After playing around with the tutorials (especially the odmg package)
and the built in tests I'm trying to use ojb for my application. For
portabilty issues I do not want to store configuration files within the
classpath but specify their location in the preferences using
java.util.prefs.Preferences .

I've read on ojb-homepage that I can set a property with the location of
my own OJB.property like this
 
System.setProperty("OJB.properties","E:/cvs.root/asterixs/build/ojb/OJB.
properties");

This part works fine. OJB properties are loaded correctly. 

But furthermore I also want to specify the location of repository.xml (I
don't want to use the property "repositoryFile" from ojb.properties). In
tutorial2 it seems to be possible just to set path to repository.xml via
the org.odmg.Database-open() method:
 db.open("E:/cvs.root/asterixs/build/ojb/repository.xml",
Database.OPEN_READ_WRITE);

This part works fine too. But when I create a OQLQuery I'm getting a
java.io.FileNotFoundException: C:\Documents and
Settings\cp\jbproject\asterixs\repository.xml (The system cannot find
the file specified). Why does OQLQuery also try to open the
repository.xml? 

I hope anybody can help to solve my problem or show me an alternative
way. 

Bye
Chris

PS: here is the exception followed by the source code.

[BOOT] INFO: OJB.properties:
file:/E:/cvs.root/asterixs/build/ojb/OJB.properties
(dao.T                               47  ) trying:
E:/cvs.root/asterixs/build/ojb/repository.xml
0 [main] INFO de.asterixs.dao.T  - trying:
E:/cvs.root/asterixs/build/ojb/repository.xml
[org.apache.ojb.broker.ta.PersistenceBrokerFactoryDefaultImpl] INFO:
Already created persistence broker instances: 0
[org.apache.ojb.broker.util.sequence.SequenceManagerFactory] INFO: Use
sequence manager class: class
org.apache.ojb.broker.util.sequence.SequenceManagerHiLoImpl
[org.apache.ojb.broker.accesslayer.AbstractPoolableConnectionFactory]
INFO: # Create connection pool for JdbcDescriptorKey 1554939735 #
[org.apache.ojb.broker.accesslayer.AbstractConnectionFactory] INFO: #
Already created connections: 1 returning :
com.microsoft.jdbc.sqlserver.SQLServerConnection@2c7568
java.io.FileNotFoundException: C:\Documents and
Settings\cp\jbproject\asterixs\repository.xml (The system cannot find
the file specified)
        at java.io.FileInputStream.open(Native Method)
        at java.io.FileInputStream.<init>(FileInputStream.java:103)
        at java.io.FileInputStream.<init>(FileInputStream.java:66)
        at
sun.net.www.protocol.file.FileURLConnection.connect(FileURLConnection.ja
va:69)
        at
sun.net.www.protocol.file.FileURLConnection.getInputStream(FileURLConnec
tion.java:148)
        at java.net.URL.openStream(URL.java:955)[DEFAULT] FATAL:
C:\Documents and Settings\cp\jbproject\asterixs\repository.xml (The
system cannot find the file specified)

        at org.apache.xerces.impl.XMLEntityManager.startEntity(Unknown
Source)
        at
org.apache.xerces.impl.XMLEntityManager.startDocumentEntity(Unknown
Source)
        at
org.apache.xerces.impl.XMLDocumentScannerImpl.setInputSource(Unknown
Source)
        at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown
Source)
        at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown
Source)
        at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
        at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown
Source)
        at
org.apache.ojb.broker.metadata.RepositoryPersistor.buildRepository(Repos
itoryPersistor.java:285)
        at
org.apache.ojb.broker.metadata.RepositoryPersistor.readFromFile(Reposito
ryPersistor.java:150)
        at
org.apache.ojb.broker.metadata.DescriptorRepository.getInstance(Descript
orRepository.java:146)
        at
org.apache.ojb.broker.metadata.DescriptorRepository.getInstance(Descript
orRepository.java:192)
        at
org.apache.ojb.broker.metadata.DescriptorRepository.getDefaultInstance(D
escriptorRepository.java:179)
        at
org.apache.ojb.broker.query.QueryFactory.newQuery(QueryFactory.java:115)
        at
org.apache.ojb.broker.query.QueryFactory.newQuery(QueryFactory.java:127)
        at
org.apache.ojb.odmg.oql.OQLParser.selectQuery(OQLParser.java:168)
        at
org.apache.ojb.odmg.oql.OQLParser.buildQuery(OQLParser.java:95)
        at
org.apache.ojb.odmg.oql.OQLQueryImpl.create(OQLQueryImpl.java:235)
        at
org.apache.ojb.odmg.oql.OQLQueryImpl.create(OQLQueryImpl.java:207)
        at de.asterixs.dao.T.<init>(T.java:76)
        at de.asterixs.dao.T.main(T.java:104)

org.apache.ojb.broker.metadata.MetadataException
        at
org.apache.ojb.broker.metadata.DescriptorRepository.getInstance(Descript
orRepository.java:154)
        at
org.apache.ojb.broker.metadata.DescriptorRepository.getInstance(Descript
orRepository.java:192)
        at
org.apache.ojb.broker.metadata.DescriptorRepository.getDefaultInstance(D
escriptorRepository.java:179)
        at
org.apache.ojb.broker.query.QueryFactory.newQuery(QueryFactory.java:115)
        at
org.apache.ojb.broker.query.QueryFactory.newQuery(QueryFactory.java:127)
        at
org.apache.ojb.odmg.oql.OQLParser.selectQuery(OQLParser.java:168)
        at
org.apache.ojb.odmg.oql.OQLParser.buildQuery(OQLParser.java:95)
        at
org.apache.ojb.odmg.oql.OQLQueryImpl.create(OQLQueryImpl.java:235)
        at
org.apache.ojb.odmg.oql.OQLQueryImpl.create(OQLQueryImpl.java:207)
        at de.asterixs.dao.T.<init>(T.java:76)
        at de.asterixs.dao.T.main(T.java:104)
Exception in thread "main"



package de.asterixs.dao;

import org.apache.ojb.broker.PersistenceBrokerFactory;
import org.apache.ojb.broker.singlevm.PersistenceBrokerConfiguration;
import org.apache.ojb.broker.util.configuration.ConfigurationException;

import org.apache.ojb.odmg.OJB;

import org.odmg.Database;
import org.odmg.Implementation;
import org.odmg.ODMGException;
import org.odmg.DList;
import org.odmg.Implementation;
import org.odmg.OQLQuery;
import org.odmg.Transaction;

import org.apache.log4j.Logger;
import org.apache.log4j.BasicConfigurator;

public class T {
        private static String databaseName;
        private static Logger log = Logger.getLogger(T.class);

        static
        {
                BasicConfigurator.configure();
        
System.setProperty("OJB.properties","E:/cvs.root/asterixs/build/ojb/OJB.
properties");
                databaseName =
"E:/cvs.root/asterixs/build/ojb/repository.xml";
        }

    public T() {
        Implementation odmg = OJB.getInstance();
        Database db = odmg.newDatabase();

        try
        {
                db.open(databaseName, Database.OPEN_READ_WRITE);
        } catch (ODMGException ex) {
                ex.printStackTrace();
        }

        Transaction tx = odmg.newTransaction();
        tx.begin();
        OQLQuery query = odmg.newOQLQuery();            // <-- this
causes the error

        try {
                query.create("select allproducts from " +
org.apache.ojb.tutorial2.Product.class.getName());
        } catch (QueryInvalidException ex) {
                log.error(ex.getMessage());
        }

        try {
                DList allProducts = (DList) query.execute();
                log.info("Found products: " + allProducts.size());
        } catch (QueryException ex) {
                log.error(ex.getMessage());
        }
        tx.commit();
    }

    public static void main(String[] args) {
        T t1 = new T();
    }
}


--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to