2009-09-23 10 views
5

Mam następujące xml fragment:Connection refused: connect podczas analizowania XML z porywające

<?xml version="1.0" encoding="UTF-8" ?> 

<!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN" 
    "http://ibatis.apache.org/dtd/sql-map-2.dtd"> 
<sqlMap namespace="reports"> 

    <typeAlias alias="Header" type="VerificationVO"/> 
    </sqlMap> 

Starając się przeanalizować ten xml przy użyciu:

def sqlMapOld = new XmlParser().parse(file) 

pojawia się następujący błąd:

Exception thrown: Connection refused: connect 
java.net.ConnectException: Connection refused: connect 

Ten błąd zniknie, jeśli usunę DOCTYPE z fragmentu kodu xml. Czy istnieje sposób na powstrzymanie groovy skrypt od próby połączenia z URL?

Odpowiedz

5

Jeśli używasz odpowiedniego parsera, spróbuj load-external-dtd cecha.

def parser= new XmlParser() 
parser.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd", false) 
def sqlMapOld= parser.parse(new FileInputStream(file)) 

przeciwnym razie myślę, że trzeba setEntityResolver że nic nie robi.

1

Spróbuj

def sqlMapOld = new XMLParser (false, true) .parse (plik)

aby niewalidujący

2

Analizator składni próbuje pobrać zewnętrzny DTD wymieniony w DOCTYPE.

Masz dwie opcje: wyłącz zewnętrzną definicję DTD lub skonfiguruj środowisko Java/Groovy XML, aby korzystać z lokalnego katalogu DTD.

Można wyłączyć zewnętrzny ładowanie DTD z

def p = new XmlParser() 
p.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd", false) 
p.parse(file) 

Aby uzyskać informacje na temat konfigurowania i korzystania z lokalnego katalogu patrz: http://www.sagehill.net/docbookxsl/WriteCatalog.html

http://www.sagehill.net/docbookxsl/UseCatalog.html

Powiązane problemy