EclipseLink MOXyを使用して一部のXMLをPOJOにアンマーシャリングしようとするとFileNotFoundException
、相対パスとしてドキュメントのDTDを検索する場所が表示されます。
Exception in thread "main" org.springframework.oxm.UnmarshallingFailureException: JAXB unmarshalling exception; nested exception is javax.xml.bind.UnmarshalException
- with linked exception:
[java.io.FileNotFoundException: C:\Users\deejay\Documents\workspace-sts-3.0.0.RELEASE\moxy-test\ieee_idams_exchange.dtd (The system cannot find the file specified)]
at org.springframework.oxm.jaxb.Jaxb2Marshaller.convertJaxbException(Jaxb2Marshaller.java:761)
at org.springframework.oxm.jaxb.Jaxb2Marshaller.unmarshal(Jaxb2Marshaller.java:682)
at org.springframework.oxm.jaxb.Jaxb2Marshaller.unmarshal(Jaxb2Marshaller.java:665)
at com.mendeley.services.utility.EclipseLinkMarshaller.load(EclipseLinkMarshaller.java:29)
at com.mendeley.MoxyTest.main(MoxyTest.java:31)
この例のように「外部化されたメタデータ」を提供しているので、なぜDTDが必要なのかわかりません。DTDを無視するか、解決しようとしないようにすることができれば、それは素晴らしいことです。