2011-12-03 21 views
4

以下のdozerの例を実行しようとしています。私のxmlファイルは私のjavaファイルと同じ場所に位置していますが、私はそれが働いている完全なファイルパスを与えるかどうかは、ファイルが見つからない例外Dozerファイルが見つかりません例外

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})); 

答えて

0

あなたはString file = "C:/..."使用しているとエラーがそれのようにCを認識しない言及有効なプロトコル。

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

+0

私はこれを試してみましたが、上記の例外を取得しています – Rafi

+2

file:// URLを使用すると、 "unknown protocol:c"エラーが発生するのは本当に疑問です。 –

+1

バックスラッシュの代わりにスラッシュを少し修正して機能しました。 \t \t文字列ファイル= "ファイル:\\ C:\\ temp \\ mapping.xml"; \t \t DozerBeanMapperマッパー=新しいDozerBeanMapper(Arrays.asList(new String [] {file})); \t \t TargetEmployee destObject = mapper.map(sourceEmp、TargetEmployee.class); – Rafi

6

私はこれを解決..

私はresources/META-INF/dozerBeanMapping.xmlにファイルを入れて使用してファイルへのアクセス:私はこれは同様にあなたたちを助けることを願っています

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

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

を。

関連する問題