JIRA SOAP反序列化错误 [英] JIRA SOAP Deserialization Error

查看:169
本文介绍了JIRA SOAP反序列化错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述


我创建了一个非常简单的C#项目来显示错误.它应该很容易复制.
http://jira.atlassian.com/secure/attachment/30309/JIRA-13801_v2.zip

在JIRA中记录的问题在这里:

= " XML文档中存在错误(1、37981)." 来源 = " System.Xml" 中. Xml.Serialization.GeneratedAssembly .ArrayOfObjectSerializer64.Deserialize(XmlSerializationReader读取器)
StackTrace:
在System.Xml.Serialization.XmlSerializer.Deserialize(XmlReaderxmlReader,StringEncodingStyle, XmlDeserializationEvents事件)
在System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader,StringencodingStyle)
消息 = "无效的引用id ='id0'.无法将System.Xml.XmlNode []类型的对象存储在此类型的数组中.详细信息:数组index = 0.''
red>来源 " System.Xml" StackTrace:
在System.Xml.Serialization.XmlSerializationReader.FixupArrayRefs(Object fixup)
在Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderJiraSoapService.Read101_getWorklogsResponse()
xmlReader,StringencodingStyle,XmlDeserializationEvents事件)

第一个机会异常是从XmlSerializer.Deserialize()方法抛出的,因为XML序列化堆栈使用动态生成的XmlSerializer实现来进行序列化,这使得调试代码更加困难.我猜该服务是使用Java Web服务实现的,是否尝试过使用来自同一Web服务供应商的相同客户端产品来生成客户端代理以与该服务进行通信,以验证Java客户端代理是否可以成功连接JIRA服务,这可以验证返回的SOAP消息是否格式正确.

T感动



I created a very simple C# project to show the error.  It should be easy to reproduce.
http://jira.atlassian.com/secure/attachment/30309/JIRA-13801_v2.zip

The issue logged in JIRA is here:
http://jira.atlassian.com/browse/JRA-13801

Here is part of the exception:

       Message="There is an error in XML document (1, 37981)." 
       Source="System.Xml" 
       StackTrace: 
            at System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encodingStyle, XmlDeserializationEvents events) 
            at System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encodingStyle) 
            at System.ServiceModel.Dispatcher.XmlSerializerOperationFormatter.DeserializeBody(XmlDictionaryReader reader, MessageVersion version, XmlSerializer serializer, MessagePartDescription returnPart, MessagePartDescriptionCollection bodyParts, Object[] parameters, Boolean isRequest) 
       InnerException: System.InvalidOperationException 
            Message="Invalid reference id='id0'. Object of type System.Xml.XmlNode[] cannot be stored in an array of this type. Details: array index=0." 
            Source="System.Xml" 
            StackTrace: 
                 at System.Xml.Serialization.XmlSerializationReader.FixupArrayRefs(Object fixup) 
                 at System.Xml.Serialization.XmlSerializationReader.DoFixups() 
                 at System.Xml.Serialization.XmlSerializationReader.ReadReferencedElements() 
                 at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderJiraSoapService.Read101_getWorklogsResponse() 
                 at Microsoft.Xml.Serialization.GeneratedAssembly.ArrayOfObjectSerializer64.Deserialize(XmlSerializationReader reader) 
                 at System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encodingStyle, XmlDeserializationEvents events) 
            InnerException:  

解决方案

The first chance exception is thrown from the XmlSerializer.Deserialize() method, since the XML serialization stack uses dynamically generated XmlSerializer implementation to do the serialization which makes it harder to debug code.

I guess the service is implemented using Java web service, have you tried using the same client offerings from the same web service vendor to generate the client proxy to communicate with the service to verify if the Java client proxy could successfully connect with the JIRA service, this could verify if the returning SOAP message is well formed or not.

Thanks


这篇关于JIRA SOAP反序列化错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆