我们正在使用Java从Cisco ips(SDEE服务器)提取数据。这是一个普通的Web请求,我们正在使用HttpsURLConnection。响应采用XML格式。
我们有一个UI(Web应用程序)可以触发作业来提取数据;我们还有一个独立的实用程序,它也可以触发作业来提取数据。因此,在两种情况下,从sdee服务器检索数据的代码都是相同的。使用Quartz来安排工作,虽然此信息与此无关。
现在的问题 - 当从UI触发作业时,我们得到了预期的xml,没有问题。但是当使用该实用程序触发作业时,我们会获得相同的xml,但在其标记中包含名称空间。
<['http://example.org/2003/08/sdee']:sd:evIdsAlert eventId='123' vendor='Cisco' severity='low'><['http://example.org/2003/08/sdee']:sd:originator>
['http://example.org/2003/08/sdee'] - 这是我们得到的额外的东西。我们不希望在XML中使用它。
由于代码相同,我怀疑可能是某些环境设置正在影响响应,但我不知道是什么。
代码的一部分(我们正在使用),仅供参考:
// get the connection
connection = (HttpsURLConnection) url.openConnection();
// get the reader
new BufferedReader(new InputStreamReader(connection.getInputStream()));
// read response line by line and dump it to the file
代码非常简单 - 使用HTTP提取数据的标准代码。
答案 0 :(得分:0)
问题是由于不同的xml解析器。现在修好了。