我有一条使用自定义转换器(RSSItemConverter)的路由,如下所示:
from(source).errorHandler(deadLetterChannel("file://"+errorFolder+"/"+year))
.routeId(""+year)
.split(new ZipSplitter()).streaming()
// .threads(2,5)
.split().tokenizeXML(token).streaming()
.convertBodyTo(Patent.class)
.convertBodyTo(RSSItem.class)
// .bean(new RSSItemConverter())
.aggregate(constant(true), new PatentAggregationStrategy())
.completionSize(100)
.convertBodyTo(String.class)
.bean(setFileName, "setHeaderRSS")
.to(to );
转换器使用来自第三方jar(作为maven依赖项)的RSSItem类,如下所示:
@Converter
public RSSItem toRSSItem(Patent patent) throws ClassNotFoundException {
RSSItem item = new RSSItem();
if (patent == null) return item;
String publicationNumber = getPublicationNumber(patent);
item.setTitle(publicationNumber);
item.addElement(new SimpleElement("emm_publicationNumber", publicationNumber));
item.addElement(new SimpleElement("guid", publicationNumber));
item.addElement(new SimpleElement("emm_publicationLatestDate", getPublicationLatestDate(patent)));
item.addElement(new SimpleElement("emm_applicationNumber", getApplicationNumber(patent)));
item.addElement(new SimpleElement("emm_applicationDate", getApplicationDate(patent)));
item.addElement(new SimpleElement("emm_classificationIPC", getclassificationIPC(patent)));
item.addElement(new SimpleElement("emm_author__name", getAuthorName(patent)));
item.addElement(new SimpleElement("emm_affiliation__name", getAffiliationName(patent)));
item.addElement(new SimpleElement("emm_affiliation__city", getAffiliationCity(patent)));
item.addElement(new SimpleElement("emm_affiliation__country", getAffiliationCountry(patent)));
item.addElement(new SimpleElement("emm_claims", getClaims(patent)));
item.addElement(new SimpleElement("emm_patentText", getPatentText(patent)));
return item;
}
但是,它无法创建带有错误NOClassDefFound Error的RSSItem实例。 我在无法加载RSSItem和来自第三方jar的其他类的聚合器类中遇到了相同的问题。 我正在使用spring-boot
感谢您的帮助。