骆驼转换器无法加载类

时间:2018-08-01 09:36:29

标签: spring-boot apache-camel spring-camel

我有一条使用自定义转换器(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

感谢您的帮助。

0 个答案:

没有答案