Coldfusion消耗Dynamics NAV Webservice

时间:2012-06-08 18:45:57

标签: java web-services coldfusion coldfusion-9 dynamics-nav

我正在尝试从Coldfusion中使用Dynamics NAV Web服务。但是它失败了这条消息:

  

... {http://xml.apache.org/axis/} HttpErrorCode:401 ...

我在C#项目中测试过相同的Web服务,这就像魅力一样。所以它确实是一个安全问题。

互联网上有很多关于调用Dynamics NAV webservices的讨论,例如参见http://blogs.msdn.com/b/freddyk

问题似乎是如何使Coldfusion使用NTLM身份验证。在NTLM Authentication in ColdFusion上有关于此主题的帖子,但是在从Coldfusion调用webservices时我没有看到如何实现这一点。

可以使用C#创建中间服务,并从Coldfusion中调用此服务。但我正在寻找一种直接的方法。

有什么想法吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

默认情况下,Axis(ColdFusion中使用的Web服务器)仅支持基本身份验证,但NAV仅支持Windows身份验证(NTLM或协商,具体取决于服务器配置密钥WebServicesUseNTLMAuthentication的值)。

我找到了this页面,其中描述了一种解决方法。为了防止链接死亡,解决方法是将Axis配置为使用Jakarta Commons HTTPClient库。

您需要编辑client-config.wsdd Axis配置文件,并更改以下行:

<transport name="http" pivot="java:org.apache.axis.transport.http.HTTPSender" />;

到此:

<transport name="http" pivot="java:org.apache.axis.transport.http.CommonsHTTPSender" />;