簡體   English   中英

Apache Axis:如何使用從wsdl2java生成的代碼設置調用屬性?

[英]Apache Axis: How to set call properties using code generated from wsdl2java?

我正在使用帶有wsdl2java的Apache Axis 1.4(是的,是舊版本)來生成Web服務的客戶端代碼。 在調用生成的存根上的方法之前,我想在Call對象上設置其他屬性。

例如,我想設置用戶名,密碼,或者添加或修改現有的標頭,並更改客戶端處理程序以使用不同的實現。

當前,我正在通過修改生成的Stub類並調用適當的setter來做到這一點。 但是,我想在不觸摸生成的文件的情況下實現這一目標。 不過,我感到困惑,因為Stub類具有:

createCall()

這將創建調用對象並設置一些屬性。 當前,這是我正在修改生成的源代碼的地方。 然后,存根包含:

clientMethod1(){
    blahblah
    Call _call = createCall();
    ......
    _call.invoke();
}

因此,我看不到可以使用serviceLocator獲取存根,修改要修改的屬性,然后使用存根調用要調用的方法的方法,因為存根方法調用createCall()然后調用invoke。 在調用新的Call對象之前,似乎沒有辦法攔截它。

因此:如何在不修改生成的Stub類的源代碼的情況下修改調用中的屬性?

感謝您提供信息或什至指向現有文檔的指針。

我也不想觸摸生成的代碼。 這樣做的風險是,我曾經不得不重新生成它並失去我的編輯。

在不知道軸詳細信息的情況下-不能繼承Stub並重寫'createCall'嗎? Axis不會觸摸此子類,您可以在覆蓋的createCall方法中設置屬性

暫無
暫無

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

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