problem:
in turbine-schema.xml there is
<!DOCTYPE database SYSTEM
"http://java.apache.org/turbine/dtd/database.dtd">
so you need to be online to use torque (as in tdk10a)
if you are behind a firewall with authentication you will never be able
to use it!!
solution:
use org.xml.sax.EntityResolver to get the dtd file.
now we can change the line to
<!DOCTYPE database SYSTEM "database.dtd">
and put the dtd file into the jar.
here is the code:
Index: ./src/java/org/apache/turbine/torque/transform/XmlToAppData.java
===================================================================
RCS file:
/products/cvs/turbine/turbine/src/java/org/apache/turbine/torque/transform/XmlToAppData.java,v
retrieving revision 1.5
diff -u -r1.5 XmlToAppData.java
--- ./src/java/org/apache/turbine/torque/transform/XmlToAppData.java
2000/12/14 23:49:55 1.5
+++ ./src/java/org/apache/turbine/torque/transform/XmlToAppData.java
2001/01/07 20:54:40
@@ -111,13 +111,16 @@
app = new AppData();
SAXParser parser = new SAXParser();
+ DTDResolver dtdResolver = new DTDResolver();
+ parser.setEntityResolver(dtdResolver);
+
// We don't use an external content handler - we use this
object
parser.setContentHandler(this);
and the Resolver:
package org.apache.turbine.torque.transform;
// JDK classes
import java.io.*;
import java.net.URL;
import java.util.*;
// Xerces classes
import org.xml.sax.*;
import org.xml.sax.helpers.*;
import org.apache.xerces.parsers.*;
// Turbine
import org.apache.turbine.services.db.*;
import org.apache.turbine.torque.model.*;
public class DTDResolver implements EntityResolver
{
InputSource databaseDTD;
public DTDResolver()
{
try
{
databaseDTD = new InputSource(getClass()
.getResource("database.dtd").openStream());
}
catch (Exception ex)
{
ex.printStackTrace();
}
} // DTDResolver()
public InputSource resolveEntity(String publicId, String systemId)
{
if ("database.dtd".equals(systemId))
{
System.out.println("Resolver: use database.dtd");
return databaseDTD;
}
else
{
System.out.println("Resolver: used " + systemId);
return getInputSource(systemId);
}
} // resolveEntity(String, String)
public InputSource getInputSource(String urlString)
{
try
{
URL url = new URL(urlString);
return new InputSource(url.openStream());
}
catch (IOException ex)
{
ex.printStackTrace();
}
return new InputSource();
} // getInputSource(String)
}
oh and database.dtd must be in the jar!!
org/apache/turbine/torque/transform/database.dtd
martin
------------------------------------------------------------
To subscribe: [EMAIL PROTECTED]
To unsubscribe: [EMAIL PROTECTED]
Search: <http://www.mail-archive.com/turbine%40list.working-dogs.com/>
Problems?: [EMAIL PROTECTED]