簡體   English   中英

Java JMX調用方法返回javax.ws.rs.core.Response對象不起作用(獲取NotSerializableException)

[英]Java JMX invoking method returning javax.ws.rs.core.Response object not working (get NotSerializableException)

這是JMX bean調用(失敗):

import javax.management.remote.JMXConnector;
import javax.management.remote.JMXConnectorFactory;
import javax.management.remote.JMXServiceURL;
import javax.ws.rs.core.Response;
MBeanServerConnection mbeanConn

//some code going on ...    
...

response = (Response) mbeanConn.invoke(myBean,"example", null, null);

它拋出異常:

java.rmi.UnmarshalException: error unmarshalling return; nested exception is: 
    java.io.WriteAbortedException: writing aborted; java.io.NotSerializableException: org.apache.cxf.jaxrs.impl.ResponseIm

在我的代碼中查找時,調用的函數是:

  import javax.ws.rs.core.Response;

   @ManagedOperation
   public Response example() throws GeneralException {
    //do some things with the response object
    ...
    return response.build();
   }

據我了解,我有一個問題,即抽象類javax.ws.rs.core.Response沒有序列化。

任何想法如何繞過這個問題?

JMX使用Java序列化來傳遞參數和運算結果。 即使該類是可Serializable您也需要在客戶端的類路徑上使用它。

除了添加將對象呈現為String的操作之外,沒有其他解決方案。 如果幸運的話,可以使用toString()但是如果對象沒有覆蓋Object.toString() ,則必須自己滾動。

暫無
暫無

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

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