public Object readObject(MessageReader mreader, MessageContext context) throws XFireFault { StaxBuilder builder = new StaxBuilder(); try { XMLStreamReader reader = ((ElementReader) mreader).getXMLStreamReader(); if (reader instanceof JDOMStreamReader) { return ((JDOMStreamReader) reader).getCurrentElement(); } return builder.build(reader).getRootElement(); } catch (XMLStreamException e) { throw new XFireFault("Could not parse xml.", e, XFireFault.SENDER); } }
/** * @param service * @return */ protected Document loadDocument(ServiceInfo service) { Class clazz = service.getServiceClass(); // get class name w/o .java suffix int idx = clazz.getName().lastIndexOf("."); String className = clazz.getName().substring(idx + 1); String fileName = className + CONFIG_SUFIX; log.debug("Searching for " + fileName + " config.."); InputStream inStr = clazz.getResourceAsStream(fileName); if (inStr == null) { log.debug("Config " + fileName + " NOT found."); return null; } StaxBuilder builder = new StaxBuilder(); try { log.debug("Config " + fileName + " found."); return builder.build(inStr); } catch (XMLStreamException e) { throw new XFireRuntimeException(e.getMessage()); } }