使用我们编写和维护的基于CF Web服务的API,我们遇到了令人难以置信的令人沮丧的情况.我们已经有一个多年的API,它可以稳定地与Ruby,PHP和ColdFusion客户一起工作.然后今年出现了一个.NET客户端,我们发现由于我们广泛使用结构,我们的Web服务无法与静态类型语言互操作.
我们最终意识到我们必须重新编写没有结构的API,我们已经这样做了.它现在使用缩放器值,数组和CFC(转换为SOAP complexTypes)..NET客户端很高兴,我们用大约6种不同的语言编写了概念验证客户端,以确保我们这次可以互操作.
令我们非常沮丧的是,我们的ColdFusion 7服务器似乎无法可靠地为新API提供服务.重启后大约一天左右工作,然后客户端开始出现如下错误:
错误:coldfusion.xml.rpc.CFCInvocationException [java.lang.ClassNotFoundException:tafkan.remote_api.pfapi.v.trunk.rsp_pf_survey_status_array]
和
java.lang.NoClassDefFoundError:tafkan/remote_api/pfapi/v/trunk/pf_unit
重新启动CF实例是解决问题的唯一方法.重建API需要花费大量的时间和金钱,所以每个人都真的对此有所了解.
我们已经注意到,我们的CF实例的WEB-INF/cfc-skeletons目录最终似乎为API使用的每个CFC提供了两个类的副本.例如:
-rw-r--r-- Feb 17 09:15 remote_api.pfapi.v.trunk.pf_datum.class
-rw-r--r-- Feb 3 12:20 tafkan.remote_api.pfapi.v.trunk.pf_datum.class
Run Code Online (Sandbox Code Playgroud)
似乎错误来自命名空间或类搜索路径问题,因此我们尝试将所有CFC引用切换为完全限定(点映射以映射开头),而不是仅仅对当前目录中的CFC进行简单引用.这似乎很有希望,但问题在24小时内回来了.
环境:
也许升级这些令人尊敬的软件之一会有所帮助吗?也许只升级AXIS?
Adobe支持似乎不是一种选择,因为CF7已经过EOL并且在扩展扩展支持(并且仅仅持续了几天).
更新:
感谢所有加入此讨论的人!这是目前事态发展的最新进展.
这项服务今天第一次被淘汰出局.其中一个集群实例仍然能够生成WSDL,而另一个实例则说:
AXIS error
Sorry, something seems to have gone wrong... here are the details:
Exception - java.lang.NoClassDefFoundError: tafkan/remote_api/pfapi/v/trunk/rsp_pf_numeric_array
Run Code Online (Sandbox Code Playgroud)
cfc-skeletons目录都包含一个名为tafkan.remote_api.pfapi.v.trunk.rsp_pf_numeric_array.class的文件,并且似乎不包含我们有时看到的其他命名文件(remote_api.pfapi.v.trunk.rsp_pf_numeric_array.类).自昨天启动服务器以来,cfc-skeleton中的文件似乎没有被修改过.
两个实例的正常运行时间约为21.5小时.我在没有JIT(-Xint)的情况下运行.
我现在重启了两个实例.它们现在运行在Sun Java 1.4.2_19(而不是_13)上,并且JIT已经重新启用,因为它显然没有导致这个错误,如果没有它,情况会大大减慢.我还清除了"保存类文件"复选框.
现在,我们再等一下......
更新2 问题仍然存在.我不确定在这一点上还有什么可以尝试的.精氨酸!
仅供参考,发布于http://www.houseoffusion.com/groups/cf-talk/thread.cfm/threadid:60922
I've been trying for a couple of days now to get a .NET client working fully with a Web Server provided by my Coldfusion-based web app. I'm not a .NET developer, per se, but I happen to have a copy of VS 2003, which seems like it should do the trick.
I can use a simple multiplier() method in my web service that takes two numbers and returns a number, so simple types are working fine. It's the complex types …
我对Facebook有一个奇怪的问题.当我在MSIE 9中共享我的内容时,它在我第一次共享URL时成功加载缩略图,但如果我再次共享它,则缩略图不会加载(并且永远不会再次加载).它只是显示他们的动画"加载"图像几秒钟,然后消失,缩略图选项也是如此.
您可以通过单击MSIE 9中的这些Facebook共享链接来自行查看.
相同的共享功能在其他浏览器中工作正常,并且从同一个MSIE 9共享其他页面(例如Youtube视频)每次都能正常工作.
运行Facebook的调试器无法解决问题,也无法报告我页面上的OpenGraph标记有任何问题.它甚至可以显示有问题的缩略图.
查看Facebook中的开发人员工具的"网络"选项卡,显示每次共享内容时都会加载缩略图图像.
更新
我发现MSIE 9将在以下条件下显示图像: - 如果我已经在我的缓存中有图像 - 如果浏览器没有向服务器请求safe_image.php URL,其中图像来自.
我一直在搞乱这个测试页面:http://www.facebook.com/sharer/sharer.php? u = http://c2a-v3-staging.s3.amazonaws.com/sparks%2Fspark_5079%2Findex_test html的
如果我刷新页面,则无法加载图像,因为它向服务器请求safe_image.php.无论响应是200还是304,图像都不会显示.但是,如果我然后转到位置栏并按Enter键,这是一个"导航"事件而不是"刷新",则不会对图像发出请求,并且会显示(从缓存加载后).
我已尝试从其他域提供图像,添加og:image:secure_url标记,让Facebook在不同的域上抓取HTML,这是我迄今为止所做的最好的.不幸的是,它毫无用处,因为它意味着来自任何用户的第一份分享将无法正常工作.
coldfusion ×2
soap ×2
.net ×1
angularjs ×1
axis ×1
c# ×1
facebook ×1
javascript ×1
web-services ×1