簡體   English   中英

如何將我的java變量設置為具有xsi:type

[英]how to set my java variable to have xsi:type

我有一個Web應用程序,需要調用Web服務來處理某些事情。 像往常一樣,我從客戶端請求客戶端代碼,以便可以基於客戶端代碼進行編碼。

但是,給定的客戶端代碼為jar文件格式。 因此,我真的改變了它。 我可以打電話。

現在我有一些問題。 給出的客戶端代碼不是最新的,這意味着我使用的客戶端代碼實際上與實際的Web服務不匹配。

這是wsdl的一部分,我使用它通過SOAP UI觸發Web服務:

<attributeSet>
            <!--Zero or more repetitions:-->
            <attributes>
               <value>mmm</value>
               <attributeID>DP</attributeID>
            </attributes>
         </attributeSet>

當我使用SOAP UI在給定的wsdl上啟動到Web服務時,它將引發以下錯誤:

AttributeSet::validateFieldType (Field 'Password Format' (Field ID 30), data type 'STRING' (Type ID 1), Field value '0', Attribute set Credentials)

因此,我聯系Web服務人員,並告訴他們我想要最新的客戶端代碼。 但是,由於他們所在站點的技術問題,他們無法向我們提供最新的客戶代碼。 他們只是要求我自己更改wsdl,如下所示:

<attributeSet>
            <!--Zero or more repetitions:-->
            <attributes>
               <value xsi:type="xsd:string">m</value>
               <attributeID>DP</attributeID>
            </attributes>
         </attributeSet>

它在SOAP UI調用上的工作。

但是,現在我想用Java對其進行編碼,我只是使用給定的客戶端代碼來設置值:

ca1.setAttributeID("DP");
ca1.setValue("m");

當從應用程序調用Web服務時,我可以用Java代碼編寫什么以使其具有xsi:type="xsd:string"

如果您擁有WSDL,則可以生成Java代碼。 這種生成代碼的方法稱為自上而下的Web服務開發。

如果您使用的是Maven,請查看wsdl中有關Java代碼的問題

如果您使用的是Eclipse,則還可以通過選擇新的Web服務客戶端作為項目類型來從WSDL創建新的Web服務客戶端,請參見以下屏幕快照:

在此處輸入圖片說明

然后將WSDL添加到下一個對話框中,並按照步驟進行操作,請參見下面的屏幕快照:

在此處輸入圖片說明

Netbeans和其他IDE還將允許您從WSDL生成Java類。 Maven很不錯,因為它可以在所有IDE中使用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM