1

I got error when trying this code The error log on the line

docBuilder = DocumentBuilderFactory.newInstance().newDocumentBuilder();

Code:

public static Object simpleDeserFromXml(InputStream in) {
    DocumentBuilder docBuilder;
    try {
        docBuilder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
        Document document = docBuilder.parse(in);

        Element root = document.getDocumentElement();
        Element elemBean = null;
        Map<String, Class<?>> clsIdMap = new HashMap<String, Class<?>>();
        for (Node node = root.getFirstChild(); node != null; node = node.getNextSibling()) {
            if (node instanceof Element) {
                Element elem = (Element) node;
                if ("b".equalsIgnoreCase(elem.getTagName())) {
                    elemBean = elem;
                } else if ("c".equals(elem.getTagName())) {
                    try {
                        String clsName = elem.getAttribute("v");
                        Class<?> cls = null;
                        if ("boolean".equals(clsName)) {
                            cls = boolean.class;
                        } else if ("byte".equals(clsName)) {
                            cls = byte.class;
                        } else if ("short".equals(clsName)) {
                            cls = short.class;
                        } else if ("char".equals(clsName)) {
                            cls = char.class;
                        } else if ("int".equals(clsName)) {
                            cls = int.class;
                        } else if ("long".equals(clsName)) {
                            cls = long.class;
                        } else if ("float".equals(clsName)) {
                            cls = float.class;
                        } else if ("double".equals(clsName)) {
                            cls = double.class;
                        } else {
                            cls = Class.forName(clsName);
                        }
                        clsIdMap.put(elem.getAttribute("id"), cls);
                    } catch (ClassNotFoundException cnfe) {
                        // TODO must process class not found
                        logger.error("", cnfe);
                    }
                }
            }
        }

        if (elemBean != null) {
            return buildBeanFromXml(elemBean, clsIdMap);
        }
    } catch (ParserConfigurationException e) {
        logger.error("", e);
    } catch (SAXException e) {
        logger.error("", e);
    } catch (IOException e) {
        logger.error("", e);
    }

    return null;
}

I read some thread about this and found this one but in this code i can't under stand what is 'cond' so I can solve my issue

InputSource is = new InputSource(new ByteArrayInputStream(cond.getBytes()));

This is my err log for this issue:

[Fatal Error] :3293:36: Invalid byte 1 of 1-byte UTF-8 sequence.
[http-nio-8080-exec-3] ERROR - 18 Jul 2018 15:21:50,721:com.integrosys.base.hs.techinfra.model.CasCompareUtil -
org.xml.sax.SAXParseException; lineNumber: 3293; columnNumber: 36; Invalid byte 1 of 1-byte UTF-8 sequence.
        at org.apache.xerces.parsers.DOMParser.parse(Unknown Source)
        at org.apache.xerces.jaxp.DocumentBuilderImpl.parse(Unknown Source)
        at javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:121)
        at com.integrosys.base.hs.techinfra.model.CasCompareUtil.simpleDeserFromXml(CasCompareUtil.java:1217)

Can u guys help me, thanks you!

1 Answers1

1

oh, I found a way to solve this issue Like this

Reader reader = new InputStreamReader(in,"UTF-8");
InputSource is = new InputSource(reader);
is.setEncoding("UTF-8");

docBuilder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
Document document = docBuilder.parse(is);

U guys can reference if u need. Thanks u all!