提高J2EE技术与.NET之间的互操作性,第3部分 - 编程入门网
(typeof(Product))]
public string RestockProducts(Product[] products)
{
int len = products.Length;
//add to the inventory
return "Total number of products added: " + len;
}
}
提高J2EE技术与.NET之间的互操作性,第3部分(4)时间:2011-03-14 IBM现在有三个命名空间:Product 类型的 http://catalog.warehouse.com、Order Web 服务的 http://order.warehouse.com/service 以及 Inventory Web 服务的 http://inventory.warehouse.com/service。乍一看,似乎没有潜在的命名冲突。依据前两部分:这三个 URI 有足够的资格,每个 Web 服务的域名都是唯一的,甚至 Web 服务类名也是不同的。 但仍然会发生问题。当在清单 6 及清单 7 中的两个 Web 方法中传递数组时会发生问题。 如果您创建 J2EE 项目集成定购服务及库存服务,并定购一些产品或重新进货某些产品,只有一个 Web 服务会正确执行。由于接收到产品的空数组,所以另一个服务会悄无声息的失败掉,即使 J2EE 客户端确实为两个服务都发送了填充了产品的数组也是如此。为什么会这样? 您应该研究 J2EE 客户端与 .NET Web 服务之间的 SOAP 通信来寻找答案。 清单 8. .NET 定购服务的 SOAP 请求
清单 9. .NET 库存服务的 SOAP 请求
比较清单 8 及清单 9 中的 orders 数组及 products 数组的 XML 表示。在 Inventory 服务请求中的数组元素由 Order 服务的命名空间 URI 所限定-http://order.warehouse.com/service,所以 Inventory Web 服务不会看到发送给他的任何产品。 那么,问题的根源在哪里呢?问题在于 Application Developer JAX-RPC 工具生成 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |