2011-04-26 61 views
0

我跑進了錯誤:爲web服務參數類的操作創建抽象複雜類型作爲一個輸入 - ColdFusion的

Unable to create web service argument class [Lcom.verticalresponse.api._1_0.VRAPI_xsd.NVPair;. Error: java.lang.InstantiationException: [Lcom.verticalresponse.api._1_0.VRAPI_xsd.NVPair;. Often this is because the web service defines an abstract complexType as an input to an operation. You must create an actual instance of this type in Java. 

,同時試圖調用一個WebService。我現在有了解決方案,我希望將它發佈給任何可能在我的情況下有一天的人。問題是你必須通過Coldfusion將一個複雜的結構傳遞給web服務,並且它並不總是喜歡打好。

這個難題的答案是如何將數據設置爲結構和數組的組合。

您必須以非常特殊的方式構建數據。

<cfscript> 
     var ELMResults = StructNew(); 
     var ELMArgs = StructNew(); 
     var MemberData = arrayNew(1); 
     var ListMember = StructNew(); 
        var session_id = 'the_session_id_provided' 
     var list_id = 'the_list_id_provided'; 
     var list_name = 'the_list_name_provided'; 
     var list_type = 'the_list_type_provided'; 



     /* set session id */ 
     ELMArgs.session_id = session_id; 

     /* set member data */ 
     MemberData[1] = StructNew(); 
     MemberData[1].name = "hash"; 
     MemberData[1].value = hash_value; 

     MemberData[2] = StructNew(); 
     MemberData[2].name = "optin_status"; 
     MemberData[2].value = "2"; 

     MemberData[3] = StructNew(); 
     MemberData[3].name = "first_name"; 
     MemberData[3].value = "Chewbacca"; 

     MemberData[4] = StructNew(); 
     MemberData[4].name = "fax"; 
     MemberData[4].value = "1112223333"; 

     MemberData[5] = StructNew(); 
     MemberData[5].name = "email_address"; 
     MemberData[5].value = email_address; 


     /* set list member details */ 
     ListMember.list_id = list_id; 
     ListMember.list_name = list_name; 
     ListMember.list_type = list_type; 
     ListMember.member_data = MemberData; 
     ELMArgs.list_member = ListMember; 
     ELMResults = VR.editListMember(ELMArgs); 
    </cfscript> 

我希望這可以幫助別人,因爲我一直在撓頭。

回答

1

我找到了解決我自己的問題,並在這裏發佈的問題,因爲我不能在提問的同一天發佈答案。我現在只是關閉線程。我希望這個答案可以幫助某人,因爲我正在用這個問題撓一段時間。

乾杯,JP

相關問題