使用 Camel,我将带有 CSV 的字符串发送到队列,在队列中将使用 BindyCsvDataFormat 将其解组为地图列表。我的问题很简单,为什么我会在这里收到 InstantiationException?CSV 格式或我设置绑定到哪个类的方式有问题?
路由看起来像这样:
@Override
public void setupRoutes() throws Exception {
BindyCsvDataFormat bindy = new BindyCsvDataFormat(Kostnadssted.class);
bindy.setClassType(Kostnadssted.class);
from("activemq:prk.kostnadssted.importer-kostnadssteder-fra-agresso")
.unmarshal(bindy)
.bean(kostnadsstedService)
.end();
}
Kostnadssted 看起来像这样:
import org.apache.camel.dataformat.bindy.annotation.CsvRecord;
import org.apache.camel.dataformat.bindy.annotation.DataField;
@CsvRecord(separator = ";", crlf = "UNIX", autospanLine = true)
public class Kostnadssted implements Comparable<Kostnadssted> {
@DataField( pos = 1)
private String AOR_KOSTSTED_ID;
@DataField( pos = 2)
private String AOR_KOSTSTED_NAVN;
@DataField( pos = 3)
private String AOR_FIRMA_ID;
@DataField( pos = 4)
private String AOR_FIRMA_NAVN;
@DataField( pos = 5)
private String AOR_FIRMA_ORGNR;
@DataField( pos = 6)
private String AOR_STATUS;
@DataField( pos = 7)
private String AOR_FRA_PERIODE;
@DataField( pos = 8)
private String AOR_TIL_PERIODE;
public Kostnadssted(String AOR_KOSTSTED_ID, String AOR_KOSTSTED_NAVN, String AOR_FIRMA_ID, String AOR_FIRMA_NAVN, String AOR_FIRMA_ORGNR, String AOR_STATUS, String AOR_FRA_PERIODE, String AOR_TIL_PERIODE) {
this.AOR_KOSTSTED_ID = AOR_KOSTSTED_ID;
this.AOR_KOSTSTED_NAVN = AOR_KOSTSTED_NAVN;
this.AOR_FIRMA_ID = AOR_FIRMA_ID;
this.AOR_FIRMA_NAVN = AOR_FIRMA_NAVN;
this.AOR_FIRMA_ORGNR = AOR_FIRMA_ORGNR;
this.AOR_STATUS = AOR_STATUS;
this.AOR_FRA_PERIODE = AOR_FRA_PERIODE;
this.AOR_TIL_PERIODE = AOR_TIL_PERIODE;
}
我像这样发送到队列:
公共类 KostnadsstedRoutingTest {
@Autowired
private KostnadsstedRouting kostnadsstedRoute;
private final String FAKE_BODY = "NO;937354521012;DEMO ASA;100;Administrasjon;N;0;209911"+System.getProperty("line.separator")+
"NO;983554321012;DEMO ASA;100;Administrasjon;N;0;206912";
@Produce(uri = "activemq:prk.kostnadssted.importer-kostnadssteder-fra-agresso")
ProducerTemplate producer;
@Test
public void firstTest() throws InterruptedException{
producer.sendBody(FAKE_BODY);
}
}
我得到:
org.apache.camel.RuntimeCamelException: java.lang.InstantiationException: no.ok.prk.kostnadssted.domene.modell.Kostnadssted