1

我正在从 Java (JaxB) 客户端连接到 .NET WebService。我试图在其中一个对象的字段中传递一个类似 SQL 的字符串。对象的其他字段似乎可以序列化。由于某种原因,此 SQL 查询导致服务器抛出异常。

这是通过网络发送的有效负载的内容...

uniquedata.name='2012' OR extract(epoch from (uniquedata.createdDate - to_timestamp('2012', 'YYYY/MM/DD HH/MI/SS')) < 24 * 60 * 60 OR extract(epoch from (uniquedata .modifiedDate - to_timestamp('2012', 'YYYY/MM/DD HH/MI/SS')) < 24 * 60 * 60

有趣的是 < 转义序列的存在。

javax.xml.ws.soap.SOAPFaultException:服务器无法读取请求。---> XML 文档中存在错误 (1, 1073)。---> 过滤字符串包含无效字符:uniquedata.name='2012' OR extract(epoch from (uniquedata.createdDate - to_timestamp('2012', 'YYYY/MM/DD HH/MI/SS')) < 24 * 60 * 60 或提取(从 (uniquedata.modifiedDate - to_timestamp('2012', 'YYYY/MM/DD HH/MI/SS')) < 24 * 60 * 60

异常表明这些已正确转义。不过,我希望这些是罪魁祸首。所以我尝试将 (1,1073) 索引与原始请求相关联,但它与原始数据包没有任何相似之处。我什至尝试取消转义 < 符号,删除 xml 标头,soap 信封等,但没有运气。

任何想法接下来要尝试什么?

4

1 回答 1

1

Turns out that the query was being sent correctly, and that it was code within the service that was throwing the error.

于 2012-06-22T10:52:20.000 回答