Простите, я пропустил первую строчку случайно ... должен был иметь
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" mlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
как первая строка ..
Проблема все еще остается, НО я проследил ошибку до чего-то, что выглядит действительно безобидным ..
В контроллере у меня есть ..
def result = myService.productListService()
if (result != "Error") {
def xml = new XmlSlurper().parseText(result)
, который выдает мою первоначальную ошибку. В моем распоряжении у меня есть ..
def productListService() {
....
def someList = processRequest(conn, msgBody, "Products")
return someList
....
}
и вспомогательный метод ..
// Helper routines ..
String processRequest(conn, dataString, serviceName) {
conn.setRequestMethod("POST")
conn.doOutput = true
Writer writer = new OutputStreamWriter(conn.outputStream)
writer.write(dataString)
writer.flush()
writer.close()
conn.connect()
if (conn.responseCode == 200 || conn.responseCode == 201){
println "Response .. "
println conn.content.text <--------- Remove this and problem goes away !!!
return conn.content.text
}
println serviceName + " FAILED .. "
println conn.responseCode
println conn.responseMessage
return "Error"
}
xml - это переменная conn.content.text, и моя вспомогательная процедура выводит ее на экран для тестирования. У этого также есть неприятный побочный эффект того, чтобы быть причиной моей проблемы! Без вывода строки все работает нормально, с этим я получаю вышеупомянутую ошибку xmlSlurper .. очень странно (по крайней мере для меня) .. я не понимаю этого