与older post类似,我尝试使用以下命令通过JAX-WS访问Web服务:
Dispatch<Source> sourceDispatch = null;
sourceDispatch = service.createDispatch(portQName, Source.class, Service.Mode.PAYLOAD);
Source result = sourceDispatch.invoke(new StreamSource(new StringReader(req)));
System.out.println(sourceToXML(result));
哪里:
private static String sourceToXML(Source result) {
Node rootNode= null;
try {
TransformerFactory factory = TransformerFactory.newInstance();
Transformer transformer = factory.newTransformer();
DOMResult domResult = new DOMResult();
transformer.transform(result, domResult );
rootNode = (Node) domResult.getNode();
} catch (TransformerException e) {
e.getMessage();
}
return rootNode.getFirstChild().getNodeValue();
}
但出现错误“当前事件不是START_ELEMENT空而是2”(我认为是在变压器上)
我究竟做错了什么 :(
最佳答案
大概是从解析器开始的。我想说堆栈跟踪会有所帮助,但是Xerces / Xalan倾向于将其搞乱。
显而易见的步骤:
尝试将结果看成一个字符串。
尝试使用解析器进行解析,暂时忽略转换器。
尝试找出错误的确切原因。