簡體   English   中英

修改遠程EJB方法中的參數

[英]Modifying arguments in remote EJB method

有很多文章描述了如何不將對EJB方法參數的修改傳遞給調用方。 我通常通過將參數返回給調用方來解決此問題,以便可以將其重新分配給變量。

我的問題是,這些文章似乎都沒有描述我應該在更復雜的方法中執行的操作,這些方法需要修改參數並返回一些值。 我可以創建某種包裝器類,該包裝器類包含每個參數的屬性和實際的返回值,然后返回包裝器,但這對我來說似乎很笨拙。 是否有更好的方法可以做到這一點?

沒有其他辦法了。

想象一下以下方法:

Result doSomething(A arg1, B arg2, C arg3) { 
  ...
}

因為您正在使用遠程連接來調用EJB,所以客戶端將序列化arg1arg2arg3 此時,它們是全新實例,例如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.

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