【发布时间】:2012-10-30 14:20:32
【问题描述】:
我正在尝试使用推土机从 CommonsMultipartFile 映射到 byte[]。
我知道我需要一个 customConverter 因为推土机对 CommonsMultipartFile 类型一无所知,所以我做到了:
public class FileJtfConverter extends DozerConverter<CommonsMultipartFile, byte[]> {
/**
* Constructor
*/
public FileJtfConverter() {
super(CommonsMultipartFile.class, byte[].class);
}
@Override
public final byte[] convertTo(CommonsMultipartFile a, byte[] b) {
if (a != null) {
return a.getBytes();
}
return null;
}
@Override
public final CommonsMultipartFile convertFrom(byte[] b, CommonsMultipartFile a) {
throw new UnsupportedOperationException("Not supported yet.");
}
}
还有我的推土机 xml 文件:
<mapping type="one-way">
<class-a>myPackage.ClassA
</class-a>
<class-b>myPackage.ClassB
</class-b>
...
<field custom-converter="es.xunta.formacion.sifo3.transporte.util.converter.FileJtfConverter">
<a>anexo</a>
<b>anexo</b>
</field>
</mapping>
A 类和 B 类在哪里:
public class ClassA{
...
private CommonsMultipartFile anexo;
...
public final CommonsMultipartFile getAnexo() {
return anexo;
}
public final void setAnexo(CommonsMultipartFile anexo) {
this.anexo = anexo;
}
}
public class ClassB{
...
protected byte[] anexo;
...
public void setAnexo(byte[] value) {
this.anexo = ((byte[]) value);
}
public byte[] getAnexoPago() {
return anexoPago;
}
}
一切似乎都很好,但它抛出了一个异常: org.dozer.MappingException: java.lang.NoClassDefFoundError: org/apache/commons/fileupload/FileUploadException
这很奇怪,因为我已经在 pom.xml 文件中定义了依赖项...
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
</dependency>
任何想法..?非常感谢!
【问题讨论】:
-
添加 commons-fileupload 到你的类路径。