[英]Modifying arguments in remote EJB method
有很多文章描述了如何不將對EJB方法參數的修改傳遞給調用方。 我通常通過將參數返回給調用方來解決此問題,以便可以將其重新分配給變量。
我的問題是,這些文章似乎都沒有描述我應該在更復雜的方法中執行的操作,這些方法需要修改參數並返回一些值。 我可以創建某種包裝器類,該包裝器類包含每個參數的屬性和實際的返回值,然后返回包裝器,但這對我來說似乎很笨拙。 是否有更好的方法可以做到這一點?
沒有其他辦法了。
想象一下以下方法:
Result doSomething(A arg1, B arg2, C arg3) {
...
}
因為您正在使用遠程連接來調用EJB,所以客戶端將序列化arg1
, arg2
和arg3
。 此時,它們是全新實例,例如arg1'
, arg2'
和arg3'
。
它們甚至可能不在同一個JVM上,如果是,則不應依賴於此(某些EJB容器在確定調用方和被調用方在同一JVM中時使用引用)。
返回Result
,更新這些argN'
是唯一的方法:
Result doSomething(A arg1, B arg2, C arg3) {
...
return new Result(arg1, arg2, arg3);
}
然后,容器將序列化Result
以及arg1'
, arg2'
和arg3'
,並且調用方將接收到Result'
其中包含arg1"
, arg2"
和arg3"
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.