2009-09-23 19 views
5

साथ XML पार्सिंग मैं निम्नलिखित xml टुकड़ा है:कनेक्शन अस्वीकार कर दिया: कनेक्ट जबकि ग्रूवी

<?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> 

का उपयोग कर इस एक्सएमएल पार्स करने का प्रयास करते समय:

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

मैं निम्न त्रुटि:

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

अगर मैं xml स्निपेट से DOCTYPE को हटा देता हूं तो यह त्रुटि दूर हो जाती है। URL से कनेक्ट करने का प्रयास करने से ग्रोवी स्क्रिप्ट को रोकने का कोई तरीका है?

उत्तर

5

आप एक उपयुक्त पार्सर उपयोग कर रहे हैं बनाने के लिए सुविधा।

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

अन्यथा मुझे लगता है कि आप set एक EntityResolver कि कुछ नहीं करता होगा।

1

डीईएफ़ sqlMapOld = नए XmlParser (गलत, सही) .parse (फाइल) की कोशिश करो, load-external-dtd कोशिश

यह गैर मान्य

2

पार्सर DOCTYPE में संदर्भित बाह्य डीटीडी डाउनलोड करने का प्रयास कर रहा है।

आपके पास दो विकल्प हैं, बाहरी डीटीडी के उपयोग को अक्षम करें या डीटीडी की स्थानीय सूची का उपयोग करने के लिए अपने जावा/ग्रोवी एक्सएमएल पर्यावरण को स्थापित करें। http://www.sagehill.net/docbookxsl/WriteCatalog.html

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

:

आप को स्थापित करने और देखने के लिए एक स्थानीय सूची के प्रयोग पर

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

जानकारी के लिए के साथ बाहरी DTD लोड हो रहा है निष्क्रिय कर सकते हैं

संबंधित मुद्दे