RequestFactoryの外部でAutoBeanFactoryを使用して、JSONとの間でオブジェクトを変換しています。非常にうまく機能していますが、NullPointerExceptionでコーデックスをクラッシュさせるタイプのオブジェクトを追加したばかりで、その理由はわかりません。
私はGWT2.2.0を使用しています。
オブジェクトクラス:
public interface Policy
{
public List<List<MyEnum>> getListsOfEnums();
public void setListsOfEnums(List<List<MyEnum>> listOfLists);
}
ファクトリークラス:
public interface MyAutoBeanFactory extends AutoBeanFactory
{
public AutoBean<Policy> policy();
}
を呼び出すとAutoBeanCodex.encode(anInstanceOfAnImplementationOfPolicy)
、NullPointerExceptionが発生します。
Caused by: java.lang.NullPointerException
at com.google.gwt.autobean.shared.AutoBeanCodex$Encoder.encodeToStringBuilder(AutoBeanCodex.java:407)
at com.google.gwt.autobean.shared.AutoBeanCodex$Encoder.visitCollectionProperty(AutoBeanCodex.java:310)
at com.activegrade.shared.data.overallgradingpolicy.OverallGradingPolicyAutoBean.traverseProperties(OverallGradingPolicyAutoBean.java:264)
at com.google.gwt.autobean.shared.impl.AbstractAutoBean.traverse(AbstractAutoBean.java:153)
at com.google.gwt.autobean.shared.impl.AbstractAutoBean.accept(AbstractAutoBean.java:112)
at com.google.gwt.autobean.shared.AutoBeanCodex.encodeForJsoPayload(AutoBeanCodex.java:546)
at com.google.gwt.autobean.shared.AutoBeanCodex.encode(AutoBeanCodex.java:537)
... (my code)
AutoBeanCodexはvisitCollectionPropertyをもう一度呼び出す必要があるようです。したがって、これはGoogleの問題に値するバグである可能性があります。一方で、私が何か間違ったことをしているのかもしれません。あるいは、これは明示的にサポートされていません。
私は誰かがこれについていくらかの経験を持っていること、またはBobVが提案を持っていることを望んでいます:)