如何将枚举值传递给Genexus 15中使用的Web服务?

问题描述 投票:0回答:1

我在使用具有枚举属性和DateTime属性的C#中完成的Web服务时遇到了麻烦。在Genexus 15中,使用Java Generator,'JAX-Ws'用于生成'SOAP Native'Web服务。导入wsdl并没有失败。但是,在发送请求时,程序会给出以下错误消息:

request: 
  <Route xmlns="http://www.jfdkfjdkfjkd.com.br/">
  <Id>0</Id>
  <Name>fdfd 2387</Name>
  <IssuerId>434343</IssuerId>
  <OriginCityId>1302603</OriginCityId>
  <DestinationCityId>50308</DestinationCityId>
  <Modal>Road</Modal>
  </Route>

Modal属性是枚举类型:Road,Air,Train,Others

导入wsdl并没有失败。但是,在发送请求时,程序会给出以下错误消息:

No error.SOAP Fault: Error in client request.
Message: System.Web.Services.Protocols.SoapException: Server was unable to read request. ---> System.InvalidOperationException: There is an error in XML document (11, 13). ---> System.InvalidOperationException: Instance validation error: '' is not a valid value for ModalTypes.
at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReader1.Read7_ModalTypes(String s)
at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReader1.Read11_Route(Boolean isNullable, Boolean checkType)
at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReader1.Read35_CreateRoute()
at Microsoft.Xml.Serialization.GeneratedAssembly.ArrayOfObjectSerializer40.Deserialize(XmlSerializationReader reader)
at System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encodingStyle, XmlDeserializationEvents events)
--- End of inner exception stack trace ---
at System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encodingStyle, XmlDeserializationEvents events)
at System.Web.Services.Protocols.SoapServerProtocol.ReadParameters()
--- End of inner exception stack trace ---
at System.Web.Services.Protocols.SoapServerProtocol.ReadParameters()
at System.Web.Services.Protocols.WebServiceHandler.CoreProcessRequest()
Detail: (-20004)

在这种情况下,如何通过Web服务发送枚举属性?有没有办法在Genexus或wsdl中手动配置JaxB?

如果是DateTime属性,则错误如下:

Detail: SOAP Fault: Error in client request.
Message: System.Web.Services.Protocols.SoapException: Server was unable to read request. ---> System.InvalidOperationException: There is an error in XML document (12, 17). ---> System.FormatException: The string '
' is not a valid AllXsd value.
at System.Xml.Schema.XsdDateTime..ctor(String text, XsdDateTimeFlags kinds)
at System.Xml.XmlConvert.ToDateTime(String s, XmlDateTimeSerializationMode dateTimeOption)
at System.Xml.Serialization.XmlCustomFormatter.ToDateTime(String value)
at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReader1.Read14_Tracking(Boolean isNullable, Boolean checkType)
at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReader1.Read39_CreateTracking()
at Microsoft.Xml.Serialization.GeneratedAssembly.ArrayOfObjectSerializer48.Deserialize(XmlSerializationReader reader)
at System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encodingStyle, XmlDeserializationEvents events)
--- End of inner exception stack trace ---
at System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encodingStyle, XmlDeserializationEvents events)
at System.Web.Services.Protocols.SoapServerProtocol.ReadParameters()
--- End of inner exception stack trace ---
at System.Web.Services.Protocols.SoapServerProtocol.ReadParameters()
at System.Web.Services.Protocols.WebServiceHandler.CoreProcessRequest()
Detail: SOAP Fault: Error in client request.
Message: System.Web.Services.Protocols.SoapException: Server was unable to read request. ---> System.InvalidOperationException: There is an error in XML document (12, 17). ---> System.FormatException: The string '
' is not a valid AllXsd value.
at System.Xml.Schema.XsdDateTime..ctor(String text, XsdDateTimeFlags kinds)
at System.Xml.XmlConvert.ToDateTime(String s, XmlDateTimeSerializationMode dateTimeOption)
at System.Xml.Serialization.XmlCustomFormatter.ToDateTime(String value)
at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReader1.Read14_Tracking(Boolean isNullable, Boolean checkType)
at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReader1.Read39_CreateTracking()
at Microsoft.Xml.Serialization.GeneratedAssembly.ArrayOfObjectSerializer48.Deserialize(XmlSerializationReader reader)
at System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encodingStyle, XmlDeserializationEvents events)
--- End of inner exception stack trace ---
at System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encodingStyle, XmlDeserializationEvents events)
at System.Web.Services.Protocols.SoapServerProtocol.ReadParameters()
--- End of inner exception stack trace ---
at System.Web.Services.Protocols.SoapServerProtocol.ReadParameters()
at System.Web.Services.Protocols.WebServiceHandler.CoreProcessRequest()
Detail: (-20004)

提前谢谢你的帮助。

到现在为止

java jax-ws genexus
1个回答
-1
投票

你可以在Genexus中定义枚举值,但是我不知道这是否足够你知道如何以正确的方式传递模态值吗?这意味着:道路不正确。什么是正确的?你可以使用SOAP ui或类似的东西尝试web服务吗?

© www.soinside.com 2019 - 2024. All rights reserved.