4

以下のドーザーの例を実行しようとしています。XML ファイルは Java ファイルと同じ場所にありますが、ファイルが見つからないという例外が発生します。

Exception in thread "main" org.dozer.MappingException: Unable to locate dozer mapping file [dozerMapping.xml] in the classpath!
    at org.dozer.util.MappingUtils.throwMappingException(MappingUtils.java:87)
    at org.dozer.util.MappingValidator.validateURL(MappingValidator.java:63)
    at org.dozer.loader.CustomMappingsLoader.loadFromFiles(CustomMappingsLoader.java:101)
    at org.dozer.loader.CustomMappingsLoader.load(CustomMappingsLoader.java:56)
    at org.dozer.DozerBeanMapper.loadCustomMappings(DozerBeanMapper.java:213)
    at org.dozer.DozerBeanMapper.getMappingProcessor(DozerBeanMapper.java:186)
    at org.dozer.DozerBeanMapper.map(DozerBeanMapper.java:111)
    at com.mapping.CopyAttributes.main(CopyAttributes.java:28)

完全なファイルパスを指定すると動作しますが、以下の例外が発生します

Exception in thread "main" org.dozer.MappingException: java.net.MalformedURLException: unknown protocol: c
    at org.dozer.util.MappingUtils.throwMappingException(MappingUtils.java:82)
    at org.dozer.util.ResourceLoader.getResource(ResourceLoader.java:57)
    at org.dozer.util.DefaultClassLoader.loadResource(DefaultClassLoader.java:44)
    at org.dozer.util.MappingValidator.validateURL(MappingValidator.java:61)
    at org.dozer.loader.CustomMappingsLoader.loadFromFiles(CustomMappingsLoader.java:101)
    at org.dozer.loader.CustomMappingsLoader.load(CustomMappingsLoader.java:56)
    at org.dozer.DozerBeanMapper.loadCustomMappings(DozerBeanMapper.java:213)
    at org.dozer.DozerBeanMapper.getMappingProcessor(DozerBeanMapper.java:186)
    at org.dozer.DozerBeanMapper.map(DozerBeanMapper.java:111)
    at com.mapping.CopyAttributes.main(CopyAttributes.java:28)
Caused by: java.net.MalformedURLException: unknown protocol: c
    at java.net.URL.<init>(Unknown Source)
    at java.net.URL.<init>(Unknown Source)
    at java.net.URL.<init>(Unknown Source)
    at org.dozer.util.ResourceLoader.getResource(ResourceLoader.java:55)

ソースコード

    String file = "C:/UnitTest/Dozer/src/com/mapping/mapping.xml";
    DozerBeanMapper mapper = new DozerBeanMapper(Arrays.asList(new String[]{file}));
4

2 に答える 2

7

Ok。私はこれを解決しました..

ファイルを入れて、resources/META-INF/dozerBeanMapping.xml次を使用してファイルにアクセスしました。

String file = "META-INF/dozerBeanMapping.xml";

DozerBeanMapper mapper = new DozerBeanMapper(Arrays.asList(new String[]{file}));

これが皆さんにも役立つことを願っています。

于 2012-07-02T06:08:39.497 に答える
0

あなたが使用String file = "C:/..."していて、Cを有効なプロトコルとして認識しないというエラーが表示されます。

代わりに使用してみてくださいfile://C:/...-役立つ場合があります。そうでない場合は、二重のバックスラッシュ ( C:\\UnitTest\\...) を使用してみてください。それが機能しない場合は、ファイルをどこかにアップロードしてください。

于 2011-12-03T01:41:25.660 に答える