当前位置: 首页 > 面试题库 >

解析Java中从.NET Web服务返回的.NET数据集

厍彭薄
2023-03-14
问题内容

我必须使用Java应用程序中的.NET托管Web服务。两者之间的互操作性通常非常好。我遇到的问题是.NET应用程序开发人员选择使用.NET
DataSet对象公开数据。有很多关于为什么不应该这样做以及如何使互操作性变得困难的文章:

  • http://www.hanselman.com/blog/ReturningDataSetsFromWebServicesIsTheSpawnOfSatanAndRepresentsAllThatIsTrulyEvilInTheWorld.aspx
  • http://www.lhotka.net/weblog/ThoughtsOnPassingDataSetObjectsViaWebServices.aspx
  • http://aspnet.4guysfromrolla.com/articles/051805-1.aspx
  • http://www.theserverside.net/tt/articles/showarticle.tss?id=Top5WSMistakes

我的问题是,尽管不推荐这样做,但我仍然不得不使用通过Java返回DataSet的Web服务。当您使用.NET以外的任何东西为类似的东西生成代理时,您基本上会得到一个看起来像这样的对象:

    @XmlElement(namespace = "http://www.w3.org/2001/XMLSchema", required = true)
    protected Schema schema;
    @XmlAnyElement(lax = true)
    protected Object any;

第一个字段是应描述数据集的实际架构。当我在Java中使用JAX-WS和JAXB处理此问题时,它会将所有XS-
Schema都作为Java对象引入此处表示。遍历JAXB的对象树是可能的,但不是很漂亮。any字段表示由模式指定的模式中DataSet的原始XML。

数据集的结构相当一致,但是数据类型确实发生了变化。我需要访问类型信息,并且该模式确实因调用而异。我虽然有一些选择,但似乎没有一个“好的”选择。

  • 尝试在运行时使用JAXB从架构生成Java对象似乎是一个坏主意。这太慢了,因为它每次都需要发生。
  • 蛮力使用JAX-WS引入的JAXB对象遍历架构树。
  • 也许与其使用JAXB解析架构,不如将其作为XML处理并使用XPath尝试查找所需的类型信息会更容易。

我还没有考虑其他选择吗?是否有Java库可以轻松解析DataSet对象?其他可能做过类似情况的人做了什么?


问题答案:

不幸的是,我认为这里没有一个简单的答案。我要做的是在.NET中创建一个代理Web服务,您可以从Java调用该服务,以接收数据集,将其转换为更易使用的内容,然后将其返回给Java代码。



 类似资料:
  • 问题内容: 我正在尝试通过JSONP获取一些数据。使用Firebug,我可以看到正确返回的数据,但是我很难思考如何解析它。数据返回真的是嵌套数组正确吗?是回调函数的名称。数据如下所示: 关于如何正确解析和输出只是有些困惑。 问题答案: 您不必解析数据。它已经是有效的JavaScript对象。例如,要在someFunction中打印第一个对象的description属性

  • 我想将正确格式的JSON从节点服务器发送回前端。 然后在前端,我使用jQuery发出一个请求 这是返回数据,但是,它是以字符串的形式返回数据。我尝试使用JSON. parse,但得到以下错误消息。节点端的数据是一个对象数组。也许这引起了一个问题。 未捕获的SyntaxError:意外的标记,在JSON中位于2847(…) 要填充轨道数组,我有以下代码 轨迹数组中的第一项是: "{↵ "专辑“:{↵

  • 问题内容: 我想解析网页http://dcsd.nutrislice.com/menu/meadow- view/lunch/ 以获取今天的午餐菜单。(我已经构建了Adafruit #IoT热敏打印机,并且希望每天自动打印菜单。) 我最初使用BeautifulSoup来解决这个问题,但事实证明,大多数数据都已加载到JavaScript中,并且我不确定BeautifulSoup是否可以处理它。如果您

  • 问题内容: 我对AngularJS相当陌生,并且从模态对话框服务返回数据时遇到问题。基本上,我复制了Dan Wahlin的服务http://weblogs.asp.net/dwahlin/archive/2013/09/18/building-an- angularjs-modal- service.aspx, 并从我的控制器调用它。 然后我有我的部分,像这样: 这个模态被这样调用: 所以我的问题

  • 问题内容: 我试图创建一个服务来获取json并将其传递给我homeCtrl我可以获取数据,但是当将其传递给我的homeCtrl时,它总是返回undefined。我卡住了。 我的服务: 我的家庭控制器: 问题答案: 您应该从函数返回promise ,当它被解析后,它应该从该函数返回。 厂 同样在控制器内部,您应该调用factory函数,并在service函数解析该调用并将其分配给 码

  • 我通过jQuery ajax调用一个Web服务。在浏览器中检查时,从服务返回的响应似乎很好,如下所示: 当我通过jQueryAjax调用得到相同的结果时,它显示为未定义。 此处“数据”显示为对象文档, “cont”显示为未定义 当我试图提醒“jqxhr”参数时,它显示了来自web服务的所有数据,并且状态为OK。我在大多数帖子和博客上都试过了,但都找不到哪里出了问题。请帮忙。