メソッドを含むXMLファイルを逆シリアル化しようとしています。 XMLファイルは、すべてのobject.ItはないNoSuchMethodException @ readObjectメソッドをスローするための方法が含まれていない場合はNoSuchMethodExceptionをキャッチする方法
XMLDecoder decoder = new XMLDecoder(os);
deSerializedObject = decoder.readObject();
decoder.close();
return deSerializedObject;
: スニペットは次のようになります。
java.lang.NoSuchMethodException:名前のアドオンではありません方法はjava.beans.Statement.invokeMethodImpl(Statement.java:247でjava.beans.Statement.findMethod(Statement.java:454) で を発見されました) at java.beans.Statement.access $ 000(Statement.java:46) at java.beans.Statement $ 1.run(Statement.java:130)at java.security.AccessController.doPrivileged(AccessController.java:284) java.beans.XMLDecoder $ SAXHandler.executeCommon(XMLDecoder.java:392)でjava.beans.Expression.getValue(Expression.java:67)でjava.beans.Statement.invokeMethod(Statement.java:127) で java.beans.XMLDecoder $ SAXHandler.execute(XMLD $ SAXHandler.endElement(XMLDecoder.java:286)at org.apache.xerces.parsers.AbstractSAXParser.endElement(不明なソース) (org.apache.xerces.impl) 組織でorg.apache.xerces.impl.XMLDocumentFragmentScannerImpl $ FragmentContentDispatcher.dispatch(不明 出典)org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(不明 出所) で で.XMLDocumentFragmentScannerImpl.scanEndElement(不明 出所) .apache.xerces.parsers.XML11Configuration.parse(不明なソース) org.apache.xerces.parsers.XML11Configuration.parse(不明なソース) org.apache.xerces.parsers.XMLParser.parse(不明なソース)a org.apache.xerces.jaxp.SAXParserImpl.parseでorg.apache.xerces.jaxp.SAXParserImpl $ JAXPSAXParser.parse(不明 出典)でトン org.apache.xerces.parsers.AbstractSAXParser.parse(不明なソース)
(不明なソース)java.beans.XMLDecoder.readObject(XMLDecoder.java:662)でjavax.xml.parsers.SAXParser.parse(不明なソース)で
問題は、私はこの例外をキャッチすることはできませんです。それを処理する適切な方法は何ですか?
try{
deSerializedObject = decoder.readObject();
System.out.println("We are after read object");
}
catch (NoSuchMethodException e)
{
System.out.println("We are in catch block !!");
e.printStackTrace();
}
decoder.close();
return deSerializedObject;
ここでエラーがある "ないNoSuchMethodExceptionのための到達不能catchブロック。この例外はtry文本体からスローされることはありません"
XMLが
<?xml version="1.0" encoding="UTF-8"?>
<java version="1.6.0" class="java.beans.XMLDecoder">
<object class="java.util.ArrayList">
<void method="add">
<object class="InfoParameters">
<void property="Name">
<string>Jay</string>
</void>
<void property="Level">
<string>10</string>
</void>
</object>
<object class="InfoParameters">
<void property="Name">
<string>Hir</string>
</void>
<void property="Level">
<string>10</string>
</void>
</object>
</void>
</object>
</java>
'readObject()'が 'NoSuchMethodException'をスローすると宣言されていないので、Javaはそのようなことが起こりそうでないと考えていないので、' NoSuchMethodException'の後にデフォルトの例外ブロックを追加してみてください。私はそれを私のポストに追加します。 –
投稿していないコードで何か他のことが起こっている必要があります。エラーメッセージ 'readObject()は例外の根本的な原因ではないので、別のステートメントから来ている必要があります –
シリアル化されたオブジェクトのXMLバージョンを投稿できますか?そこに何か起こっている必要があります。 –