Требуется в коде активатора сервиса преобразовать xml в строку. Погуглил.
Самый распространенный вариант типа такого:
Код:
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import java.io.StringWriter;
Transformer docTransformer = TransformerFactory.newInstance().newTransformer();
StreamResult actionSR = new StreamResult(new StringWriter());
DOMSource actionDOM = new DOMSource(action);
docTransformer.transform(actionDOM, actionSR);
String actionData = actionSR.getWriter().toString();
в результате получаем такую беду:
Код:
mq 09-29/14:58:03 ERROR [inet-reload] InetDeviceRuntime - org/apache/xml/serializer/TreeWalker
java.lang.NoClassDefFoundError: org/apache/xml/serializer/TreeWalker
at org.apache.xalan.processor.TransformerFactoryImpl.newTransformer(TransformerFactoryImpl.java:823)
at ru.steccom.bgbilling.modules.inet.dyn.device.nbi.NBIServiceActivator.init(NBIServiceActivator.java:51)
at ru.bitel.bgbilling.modules.inet.runtime.device.InetDeviceRuntime.reloadScripts(InetDeviceRuntime.java:349)
at ru.bitel.bgbilling.modules.inet.runtime.device.InetDeviceRuntime.<init>(InetDeviceRuntime.java:232)
...
Это javax.xml.transform.* требует апачевый serializer? Это как то связанно с тем что mq работает под java 1.7?
Если тащить дополнительные библиотеки не хочется, то как конвертировать dom document в строку, через DOMImplementationLS или есть еще варианты?