如何使用轴 1.4 将 java 对象转换为 XML?
How to transform java object to XML with axis 1.4?
我们正在使用 axis 1.4 来实现我们的 WS。
每当 WS 请求失败时,我们希望将已发送的实际请求的 XML 添加到我们的日志记录中。
为此,我们当然需要能够将请求对象转换为它的 XML 表示,就像稍后将其发送到服务器一样。
在大多数情况下,这是为了稍后能够将其复制粘贴到其他工具,以进行调试,因此 XML 字符串与发送到服务器的字符串完全相同非常重要。
希望这已经足够清楚了。
谢谢。
好的,回答我自己的问题:
要为 Axis-1.4 这样做,根据 NJSC 发布的 example,需要将 SerializationContextImpl 替换为 org.apache.axis.encoding.SerializationContext.
qname = removeNamespaces ? new QName(lname) : new QName(qname.getNamespaceURI(), lname);
final AxisServer server = new AxisServer();
final BeanSerializer ser = new BeanSerializer(obj.getClass(), qname, typeDesc);
final SerializationContext ctx = new SerializationContext(outStr, new MessageContext(server));
ctx.setSendDecl(false);
ctx.setDoMultiRefs(false);
ctx.setPretty(prettyPrint);
我们正在使用 axis 1.4 来实现我们的 WS。 每当 WS 请求失败时,我们希望将已发送的实际请求的 XML 添加到我们的日志记录中。 为此,我们当然需要能够将请求对象转换为它的 XML 表示,就像稍后将其发送到服务器一样。 在大多数情况下,这是为了稍后能够将其复制粘贴到其他工具,以进行调试,因此 XML 字符串与发送到服务器的字符串完全相同非常重要。 希望这已经足够清楚了。 谢谢。
好的,回答我自己的问题: 要为 Axis-1.4 这样做,根据 NJSC 发布的 example,需要将 SerializationContextImpl 替换为 org.apache.axis.encoding.SerializationContext.
qname = removeNamespaces ? new QName(lname) : new QName(qname.getNamespaceURI(), lname);
final AxisServer server = new AxisServer();
final BeanSerializer ser = new BeanSerializer(obj.getClass(), qname, typeDesc);
final SerializationContext ctx = new SerializationContext(outStr, new MessageContext(server));
ctx.setSendDecl(false);
ctx.setDoMultiRefs(false);
ctx.setPretty(prettyPrint);