【问题标题】:.Net Webservice Data Type.Net Web 服务数据类型
【发布时间】:2012-06-27 16:49:58
【问题描述】:

我创建了一个 SOAP Java Web 服务和一个 Java WebService 客户端来调用 Web 服务。 WebService 的参数是 String 和 Double。当我使用带有 String 和 Double 参数的 java WebService 客户端调用 Web 服务时,我从 Web 服务中获得了所需的响应。但是,当我使用字符串值和 1.0 值从 .Net Web 服务客户端调用相同的 Web 服务时,

ordConf[0].slNo = "1234"; <br/>
ordConf[0].qty = (Double)1.0; <br/><br/>

此 WebService 无法理解 Double 值,并为 double 值抛出 NullPointerException。

如何确保将 Double 值从 .Net WebService 客户端传递到 Java WebService。我的 wsdl complexType sn-p 是

xsd:element minOccurs="0" name="slno" nillable="true" type="xsd:string"  
xsd:element minOccurs="0" name="qty" nillable="true" type="xsd:double" 

这里是客户端代码sn-p。

WebReference.InterWareHouseService IwConf = new WebReference.InterWareHouseService();

WebReference.IwOutboundOrder[] ordConf;
WebReference.Response[] ordRespConf;

    ordConf = new WebReference.IwOutboundOrder[1];<br/><br/>

    ordConf[0] = new WebReference.IwOutboundOrder();<br/>
    ordConf[0].custOrderNo = "13337097";<br/>
    ordConf[0].itemNo = "DS-SFP-FC8G-SW";<br/>
    ordConf[0].slNo = "1234";<br/>
    ordConf[0].qty = 1.0;<br/>
    ordConf[0].weight = 0.5;<br/>
    ordRespConf = IwConf.confirmShipment(ordConf);<br/>

【问题讨论】:

  • 您使用的是哪种 .NET Web 服务客户端?您是否使用“添加服务参考”?你能显示你用来调用服务的代码吗?
  • 将代码附加到上述问题

标签: .net web-services soap


【解决方案1】:

尝试在您的 java 代码中使用值类型 double 而不是引用类型 Double

【讨论】:

  • 谢谢乔尼。我在 Web 服务中将数据类型更改为加倍。现在它没有抛出 NullPointerException 但我在 Web 服务中得到的值是 0.0。如果我在 WebService 中将 QTY 值从 double 更改为 String,那么我会将这些值放入 Web Service,但理想情况下我只想将 double 接收到 Web Service 中。有什么帮助吗?
  • 可能有一个qtySpecified 布尔值可供检查。另一种选择是让您的 C# 类的 qty 属性为 double? 类型。
  • 谢谢乔尼。最初我不了解 qtySpecified 可用性检查。后来我下载了一个名为 Wizdl 的工具来测试 Java WS。在那个工具中,他们有一个配置 qtySpecified 布尔值。当我将该值设置为 true 时,数据正在从 .net 传递到 Java
  • 时髦。我更喜欢 [SOAP UI](soapui.org),但任何有效的工具都可以。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-05
  • 1970-01-01
  • 2019-08-09
  • 1970-01-01
相关资源
最近更新 更多