首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >“无本机到消息转换器集”是什么意思?

“无本机到消息转换器集”是什么意思?
EN

Stack Overflow用户
提问于 2010-11-10 15:46:44
回答 1查看 1K关注 0票数 3

我需要与一些web服务交谈,因此我导入了WSDL。我现在尝试调用它,但是它报告了这个异常:No Native to Message converter set

非常,非常烦人,特别是因为我没有权限在这里发布这个服务的代码片段。不过,还是得试试..。有人对如何修正这个错误有一些建议吗?

错误是在rio.pas中在函数TRIO.Generic中生成的。这一行:

代码语言:javascript
复制
  if not Assigned(FConverter) then
    raise Exception.Create(SNoMessageConverter);

由于未知的原因,FConverter被设置为零,因此会生成异常。甚至在发送请求之前就会发生这种情况。没有任何东西被发送到服务,因为Delphi甚至在调用服务之前就崩溃了。

WSDL导入选项,选中选项:

params

  • Generate destructors

  • Warning绑定的类型和interfaces

  • Ignore端口类型的详细信息--
  • One Outparam是返回
  • 解压文字注释
  • 映射字符串的,
  • 不释放未使用的types
  • Validate枚举类型

H 121导入错误类型<代码>H 222<代码>H 123导入标题types

  • Process,包括并导入schemas
  • Generate类别名为类types
  • Process nillable和可选元素H 230 as 231

实际上,我的系统是新的,Delphi是3天前安装的,导入这个WSDL是我做的第一件事,基本上使用了这些默认设置。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-11-10 16:34:43

使用SoapUI,使用WSDL并创建一个模拟服务。将应用程序指向您的SoapUI mockservice,您就可以捕获您的出站请求。现在您可以回过头来,将这些请求提交给服务并查看响应。这应该让你知道信息是从哪里来的。也就是说,它是来自Delphi的SOAP库,是由于它不理解的东西,还是来自web服务本身,因为您的请求中有一些it不理解的东西?

或者,您可以在Delphi中这样做:利用HttpRIO对象的RIO_BeforeExecute/RIO_AfterExecute事件拦截入站/出站XML。

如果您的流量是http (使用SSL更难,但可能),您也可以使用Fiddler2拦截。

获得原始XML后,使用SoapUI提交请求,并查看您得到了什么。您可能会发现您的请求需要“调整”,或者如果在SoapUI中一切看起来都很好,那么您可能需要在反序列化之前调整响应。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4146245

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档