![](/img/trans.png)
[英]Returning a list of javax.ws.rs.core.Response resulting in 500
[英]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.