我正在尝试从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中调用此服务。但我正在寻找一种直接的方法。
有什么想法吗?
谢谢!
答案 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" />;