groovy 1.6.8でgrails 1.2.2を使用.. Webサービスを読み取り、応答を処理しようとしています..
応答は以下に示され、正しい xml として検証されます .. (長すぎてすみません) ..
<soap:Body>
<AddProductEventResponse xmlns="http://tempuri.org/">
<AddProductEventResult>
<xs:schema id="AddProductEventResult" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xs:element name="AddProductEventResult" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="AddProductEventResult">
<xs:complexType>
<xs:sequence>
<xs:element name="ErrorCode" type="xs:string" minOccurs="0"/>
<xs:element name="ErrorNumber" type="xs:int" minOccurs="0"/>
<xs:element name="ErrorDesc" type="xs:string" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
</xs:schema>
<diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
<AddProductEventResult xmlns="">
<AddProductEventResult diffgr:id="AddProductEventResult1" msdata:rowOrder="0" diffgr:hasChanges="inserted">
<ErrorCode>S</ErrorCode>
<ErrorNumber>0</ErrorNumber>
<ErrorDesc>Success</ErrorDesc>
</AddProductEventResult>
</AddProductEventResult>
</diffgr:diffgram>
</AddProductEventResult>
</AddProductEventResponse>
</soap:Body>
</soap:Envelope>
私はこれを使用して解析しようとします
def myXml = new XmlSlurper().parseText(result)
result は上記のメッセージで、エラーが発生します...
2010-06-19 06:08:03,665 [http-8080-2] ERROR エラー。GrailsExceptionResolver - ファイルの終わりが早すぎる。org.xml.sax.SAXParseException: ファイルの終わりが早すぎます。com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1231) com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java: 522)
上記のxmlSlurperステートメントです..
groovyConsole からコピーして実行する場合、問題はありません..必要最小限の Grails プロジェクトを作成し、そこから問題なく実行しました..これを整理するのに少し必死になっています (Grails に投稿しました)サイトへ)なので、誰か何か考えがありますか?