web-services - 调用 Web 服务时 ColdFusion 对象覆盖其他对象
问题描述
与ColdFusion 2021 相关返回“对象不是声明类的实例”:
我们在不同的服务器上安装了 ColdFusion2021,并且在不同的代码部分中,一个 Web 服务对象似乎正在覆盖其他 Web 服务对象(或者至少,所有内容都被转换为该对象的实例)。
oWsdlArgs = structNew();
oWsdlArgs.refreshwsdl="yes"
objSoapHeader = XmlParse("<wsse:Security mustUnderstand=""true"" xmlns:wsse=""http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd""><wsse:UsernameToken><wsse:Username>#Application.Settings.ws_user#</wsse:Username><wsse:Password>#Application.Settings.ws_password#</wsse:Password></wsse:UsernameToken></wsse:Security>");
Application.ValidationWebService = CreateObject("webservice", Application.Settings.ws_url & "Validation/WSValidation.asmx?WSDL", oWsdlArgs);
addSOAPRequestHeader(Application.ValidationWebService,"","",objSoapHeader,true);
Application.ClientAccessWS = CreateObject("webservice", Application.Settings.ws_url & "Admin/ClientAccess/WSClientAccess.asmx?WSDL", oWsdlArgs);
addSOAPRequestHeader(Application.ClientAccessWS,"","",objSoapHeader,true);
Application.AdminWS = CreateObject("webservice", Application.Settings.ws_url & "Admin/AdminSite/WSAdminSite.asmx?WSDL", oWsdlArgs);
addSOAPRequestHeader(Application.AdminWS,"","",objSoapHeader,true);
Application.EmailService = CreateObject("webservice", Application.Settings.ws_url & "Requests/EmailService.asmx?WSDL", oWsdlArgs);
addSOAPRequestHeader(Application.EmailService, "", "", objSoapHeader, true);
Application.UserWebService = CreateObject("webservice", Application.Settings.ws_url & "Requests/UserService.asmx?WSDL", oWsdlArgs);
addSOAPRequestHeader(Application.UserWebService,"","",objSoapHeader,true);
// Get the .Net resources
Application.NetResources = Application.UserWebService.GetNetResources(Application.LanguageHeader);
Application.WhiteLabelService = CreateObject("webservice", Application.Settings.ws_url & "Requests/WhiteLabelService.asmx?WSDL", oWsdlArgs);
addSOAPRequestHeader(Application.WhiteLabelService,"","",objSoapHeader,true);
// Initialize resource manager
createObject("component", "#Application.GlobalComponentPath#ResourceManager").init(Application.Settings.defaultBaseCategory);
似乎每个创建的对象都被设置为 WhiteLabelServiceStub 的一个实例。例如,这里是一个应该是 AdminWS 的转储,但实际上被设置为 WhiteLabelServiceStub:
object of org.tempuri.WhiteLabelServiceStub
Class Name org.tempuri.WhiteLabelServiceStub
Methods
Method Return Type
getAllConfigs(org.tempuri.LanguageHeaderE) java.lang.String
getConfigId(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, org.tempuri.LanguageHeaderE) int
getDisclaimer(java.lang.String, java.lang.String, org.tempuri.LanguageHeaderE) java.lang.String
getPopup(java.lang.String, java.lang.String, org.tempuri.LanguageHeaderE) java.lang.String
getProgress(java.lang.String, org.tempuri.LanguageHeaderE) java.lang.String
getResourceManagerByCategory(java.lang.String, org.tempuri.LanguageHeaderE) org.tempuri.CfResourceManager
getText(java.lang.String, org.tempuri.LanguageHeaderE) java.lang.String
keepAlive(org.tempuri.LanguageHeaderE)
reloadKeys(java.lang.String) void
reportException(java.lang.String, java.lang.String, org.tempuri.LanguageHeaderE) java.lang.String
startgetAllConfigs(org.tempuri.LanguageHeaderE, org.tempuri.WhiteLabelServiceCallbackHandler) void
startgetConfigId(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, org.tempuri.LanguageHeaderE, org.tempuri.WhiteLabelServiceCallbackHandler) void
startgetDisclaimer(java.lang.String, java.lang.String, org.tempuri.LanguageHeaderE, org.tempuri.WhiteLabelServiceCallbackHandler) void
startgetPopup(java.lang.String, java.lang.String, org.tempuri.LanguageHeaderE, org.tempuri.WhiteLabelServiceCallbackHandler) void
startgetProgress(java.lang.String, org.tempuri.LanguageHeaderE, org.tempuri.WhiteLabelServiceCallbackHandler) void
startgetResourceManagerByCategory(java.lang.String, org.tempuri.LanguageHeaderE, org.tempuri.WhiteLabelServiceCallbackHandler) void
startgetText(java.lang.String, org.tempuri.LanguageHeaderE, org.tempuri.WhiteLabelServiceCallbackHandler) void
startkeepAlive(org.tempuri.LanguageHeaderE, org.tempuri.WhiteLabelServiceCallbackHandler) void
startreloadKeys(java.lang.String, org.tempuri.WhiteLabelServiceCallbackHandler) void
startreportException(java.lang.String, java.lang.String, org.tempuri.LanguageHeaderE, org.tempuri.WhiteLabelServiceCallbackHandler) void
Parent Class
任何想法为什么会发生这种情况?
谢谢!
解决方案
推荐阅读
- security - 了解在哪里生成 fullchain.pem 和 privkey.pem 适合此集群设置
- javascript - findByIdAndUpdate 在使用 $set 时更新错误的子对象
- dictionary - 映射到数组内对象内的数组
- javascript - 如何使用 jquery 每个函数为元素添加宽度?
- report - 谷歌数据工作室未能提供“搜索关键字与首页排名”的表格
- javascript - XMLHttpRequest 未定义
- python - 如何根据列表在 kivy 中生成 6 个彩色标签?
- php - 查询计算每个月的总工资
- ios - 调用 tableView.reloadData() 时 UITableView 不更新,是什么导致了这个问题?
- php - 执行后台外部程序