【发布时间】:2019-01-11 12:55:23
【问题描述】:
我创建了几个 REST Web 服务,它们将从我的数据库中返回记录列表。
我以 XML 格式返回所有查询结果,并在我的 Web 服务方法中将其转换为 Java,以 JSON 格式将其发送到我的客户端应用程序(我知道,这不是最好的情况)。
我正在尝试减少我的方法中的代码,我开始使用的部分代码是 XML 到 Java 的转换。
现在我正在使用以下
String xml = xml.replaceFirst("ROWSET xmlns:xsi = " + "\"http://www.w3.org/2001/XMLSchema-instance\"", "invTrxXmlList");
String string = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";
xml = string.concat(xml);
xml = xml.replaceAll("ROWSET", "invTrxXmlList");
xml = xml.replaceAll("ROW", "invTrxXmlList");
xml = xml.replaceAll(" xsi:nil = \"true\"", "");
InputStream instr = new ByteArrayInputStream(xml.getBytes());
JAXBContext jaxbContext = JAXBContext.newInstance(InvTrxXmlList.class);
Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();
InvTrxXmlList invTrxXml = (InvTrxXmlList) jaxbUnmarshaller.unmarshal(instr);
inventoryTrx = new InventoryTrx(invTrxXml);
我想要的是创建一个单独的方法,该方法可以被该作业的所有方法调用,如果可能的话,可以使用几个不同的自定义对象,例如 InvTrxXmlList。
我在另一项任务中使用了反射,我正在考虑使用它来解决这个问题。
你能帮帮我吗?
还有其他方法吗?
谢谢
【问题讨论】:
-
您必须创建一个 http post 方法,并在其正文中传递列表。我不知道你是怎么弄得这么复杂的
-
感谢您的回复。我只使用 XML,因为我还没有使用 JSON 的数据库版本并且我无法更新它,并且我不想更改我的所有服务和客户端应用程序以使用 XML。我想要的是减少重复的代码量,并且这个块被重复了几次,因为我的 pkg 列表函数将始终返回 XML。现在,如果有一种方法可以(动态地)实例化一个对象,我有几个不同的对象,从调用者发送名称甚至实例化对象,然后用我的 XML 中的数据填充它,这会很棒。跨度>
-
创建一个java类 1.@Path("/product")
标签: java xml rest web-services reflection