2012-12-21 22 views
8

मैं कुछ JAX-WS सेवाओं मैं उपभोग करने के लिए कोशिश कर रहा हूँ मिल गया है के लिए XML मान्यता पर ध्यान न दें, लेकिन XML सेवा (जिनमें से मैं नहीं बदल सकते) गलत DTD है (उत्पादन से लौटाए जाने XMLStreamReaderException के रूप में publicId और systemId के बीच कोई सफेद रिक्त स्थान नहीं हैं)। मैं ग्राहकों को खराब गठित डीटीडी को अनदेखा कैसे करूं?JAX-WS ग्राहकों

+2

आप किस जैक्स का उपयोग कर रहे हैं? मैं dtds में निपटा jaxws पता नहीं था। – jtahlborn

+1

[यह लिंक] (http://metro.1045641.n5.nabble.com/JAX-WS-RI-2-1-x-susceptible-to-DTD-entity-expansion-attack-td1062920.html) हो सकता है उपयोगी। विवरण डीटी हैंडलिंग के रूप में यह विभिन्न jaxws संस्करण से संबंधित है। – jtahlborn

+0

बहुत आम तौर पर, मैं डब्ल्यूएस को स्थानीय डीटीडी का उपयोग करने के लिए देखता हूं (पता नहीं है कि यह एक जेएक्स सुविधा है), या एक कस्टम हैंडलर में डालें: http://pic.dhe.ibm.com/infocenter/ wasinfo/v7r0/index.jsp? विषय =% 2Fcom.ibm.websphere.express.doc% 2Finfo% 2Fexp% 2Fae% 2Ftwbs_jaxwshandler.html –

उत्तर

1

एक WSDL की अवैध DTD हिस्सा है? यदि हां, तो आप स्थानीय स्तर पर XML को पढ़ने के लिए JAXWS catalog का उपयोग कर सकते हैं और फिर सेवा को ही आमंत्रित कर सकते हैं।

आप WSDL डाउनलोड, इसे ठीक करने और यह स्थानीय रूप से संग्रहीत की जरूरत है। फिर, Service उदाहरण बनाते समय अपने स्थानीय स्टोर से WSDL पढ़ें। endpoint संपत्ति अपडेट करें और सेवा का आह्वान करें।

+0

ऐसा करने की आवश्यकता थी, दुख की बात है। मुझे लगता है कि यह शर्म की बात है कि जेएक्स ऐसी छोटी सी समस्या के साथ डीटीडी को संभाल नहीं सकता है, खासकर जब यह _exactly_ क्या गलत है और खाली स्ट्रिंग मान के साथ ठीक है। – doctorless

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

  • कोई संबंधित समस्या नहीं^_^