找不到端点:direct://DistributeOrderXML,请检查您的类路径是否包含所需的 Camel 组件 jar
No endpoint could be found for: direct://DistributeOrderXML, please check your classpath contains the needed Camel component jar
DistributeOrderXML.java
public static void main(String[] args) throws Exception{
ApplicationContext appContext = new ClassPathXmlApplicationContext("SpringRouteContext.xml");
CamelContext camelContext = SpringCamelContext.springCamelContext(appContext, false);
try {
camelContext.start();
ProducerTemplate orderProducerTemplate = camelContext.createProducerTemplate();
InputStream orderInputStream = new FileInputStream(ClassLoader.getSystemClassLoader().getResource("order.xml").getFile());
orderProducerTemplate.sendBody("direct:DistributeOrderXML", orderInputStream);
} finally {
camelContext.stop();
}
}
SpringRouteContext.xml
<camelContext
xmlns="http://camel.apache.org/schema/spring">
<route>
<from uri="direct:DistributeOrderXML" />
<log message="Split by Distribute Order" />
<split>
<xpath>//order[@product = 'Oil']/items</xpath>
<to uri="file:src/main/resources/order/" />
<to uri="stream:out" />
</split>
</route>
</camelContext>
错误控制台
线程 "main" org.apache.camel.FailedToCreateRouteException 中的异常:无法创建路由 route1:Route(route1)[From[direct:DistributeOrderXML] -> [To[stream:... 因为没有端点可以找到:direct://DistributeOrderXML,请检查您的类路径是否包含所需的 Camel 组件 jar。
在 org.apache.camel.reifier.RouteReifier.createRoute(RouteReifier.java:123)
在 org.apache.camel.impl.DefaultCamelContext.startRouteDefinitions(DefaultCamelContext.java:353)
在 org.apache.camel.impl.DefaultCamelContext.startRouteDefinitions(DefaultCamelContext.java:327)
在 org.apache.camel.impl.engine.AbstractCamelContext.doInit(AbstractCamelContext.java:2598)
在 org.apache.camel.support.service.BaseService.init(BaseService.java:83)
在 org.apache.camel.impl.engine.AbstractCamelContext.init(AbstractCamelContext.java:2431)
在 org.apache.camel.support.service.BaseService.start(BaseService.java:111)
在 org.apache.camel.impl.engine.AbstractCamelContext.start(AbstractCamelContext.java:2448)
在 org.apache.camel.spring.SpringCamelContext.start(SpringCamelContext.java:121)
在 org.apache.camel.spring.CamelContextFactoryBean.start(CamelContextFactoryBean.java:373)
在 org.apache.camel.spring.CamelContextFactoryBean.onApplicationEvent(CamelContextFactoryBean.java:420)
在 org.apache.camel.spring.CamelContextFactoryBean.onApplicationEvent(CamelContextFactoryBean.java:94)
在 org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:172)
在 org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:165)
在 org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:139)
在 org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:403)
在 org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:360)
在 org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:897)
在 org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:553)
在 org.springframework.context.support.ClassPathXmlApplicationContext.(ClassPathXmlApplicationContext.java:144)
在 org.springframework.context.support.ClassPathXmlApplicationContext.(ClassPathXmlApplicationContext.java:85)
在 DistributeOrderXML.main(DistributeOrderXML.java:16)
原因:org.apache.camel.NoSuchEndpointException:找不到端点:direct://DistributeOrderXML,请检查您的类路径是否包含所需的 Camel 组件 jar。
在 org.apache.camel.impl.engine.AbstractCamelContext.doGetEndpoint(AbstractCamelContext.java:880)
在 org.apache.camel.impl.engine.AbstractCamelContext.getEndpoint(AbstractCamelContext.java:764)
在 org.apache.camel.support.CamelContextHelper.getMandatoryEndpoint(CamelContextHelper.java:57)
在 org.apache.camel.reifier.AbstractReifier.resolveEndpoint(AbstractReifier.java:166)
在 org.apache.camel.reifier.RouteReifier.doCreateRoute(RouteReifier.java:259)
在 org.apache.camel.reifier.RouteReifier.createRoute(RouteReifier.java:117)
... 还有 21 个
您使用的是哪个版本的 Camel?如果它比 Camel 3 晚,你需要在你的 pom 文件中导入 camel-direct
,因为 direct 组件已经从 camel-core
模块中移出。
https://camel.apache.org/manual/latest/camel-3-migration-guide.html#_modularization_of_camel_core
DistributeOrderXML.java
public static void main(String[] args) throws Exception{
ApplicationContext appContext = new ClassPathXmlApplicationContext("SpringRouteContext.xml");
CamelContext camelContext = SpringCamelContext.springCamelContext(appContext, false);
try {
camelContext.start();
ProducerTemplate orderProducerTemplate = camelContext.createProducerTemplate();
InputStream orderInputStream = new FileInputStream(ClassLoader.getSystemClassLoader().getResource("order.xml").getFile());
orderProducerTemplate.sendBody("direct:DistributeOrderXML", orderInputStream);
} finally {
camelContext.stop();
}
}
SpringRouteContext.xml
<camelContext
xmlns="http://camel.apache.org/schema/spring">
<route>
<from uri="direct:DistributeOrderXML" />
<log message="Split by Distribute Order" />
<split>
<xpath>//order[@product = 'Oil']/items</xpath>
<to uri="file:src/main/resources/order/" />
<to uri="stream:out" />
</split>
</route>
</camelContext>
错误控制台
线程 "main" org.apache.camel.FailedToCreateRouteException 中的异常:无法创建路由 route1:Route(route1)[From[direct:DistributeOrderXML] -> [To[stream:... 因为没有端点可以找到:direct://DistributeOrderXML,请检查您的类路径是否包含所需的 Camel 组件 jar。 在 org.apache.camel.reifier.RouteReifier.createRoute(RouteReifier.java:123) 在 org.apache.camel.impl.DefaultCamelContext.startRouteDefinitions(DefaultCamelContext.java:353) 在 org.apache.camel.impl.DefaultCamelContext.startRouteDefinitions(DefaultCamelContext.java:327) 在 org.apache.camel.impl.engine.AbstractCamelContext.doInit(AbstractCamelContext.java:2598) 在 org.apache.camel.support.service.BaseService.init(BaseService.java:83) 在 org.apache.camel.impl.engine.AbstractCamelContext.init(AbstractCamelContext.java:2431) 在 org.apache.camel.support.service.BaseService.start(BaseService.java:111) 在 org.apache.camel.impl.engine.AbstractCamelContext.start(AbstractCamelContext.java:2448) 在 org.apache.camel.spring.SpringCamelContext.start(SpringCamelContext.java:121) 在 org.apache.camel.spring.CamelContextFactoryBean.start(CamelContextFactoryBean.java:373) 在 org.apache.camel.spring.CamelContextFactoryBean.onApplicationEvent(CamelContextFactoryBean.java:420) 在 org.apache.camel.spring.CamelContextFactoryBean.onApplicationEvent(CamelContextFactoryBean.java:94) 在 org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:172) 在 org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:165) 在 org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:139) 在 org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:403) 在 org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:360) 在 org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:897) 在 org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:553) 在 org.springframework.context.support.ClassPathXmlApplicationContext.(ClassPathXmlApplicationContext.java:144) 在 org.springframework.context.support.ClassPathXmlApplicationContext.(ClassPathXmlApplicationContext.java:85) 在 DistributeOrderXML.main(DistributeOrderXML.java:16)
原因:org.apache.camel.NoSuchEndpointException:找不到端点:direct://DistributeOrderXML,请检查您的类路径是否包含所需的 Camel 组件 jar。 在 org.apache.camel.impl.engine.AbstractCamelContext.doGetEndpoint(AbstractCamelContext.java:880) 在 org.apache.camel.impl.engine.AbstractCamelContext.getEndpoint(AbstractCamelContext.java:764) 在 org.apache.camel.support.CamelContextHelper.getMandatoryEndpoint(CamelContextHelper.java:57) 在 org.apache.camel.reifier.AbstractReifier.resolveEndpoint(AbstractReifier.java:166) 在 org.apache.camel.reifier.RouteReifier.doCreateRoute(RouteReifier.java:259) 在 org.apache.camel.reifier.RouteReifier.createRoute(RouteReifier.java:117) ... 还有 21 个
您使用的是哪个版本的 Camel?如果它比 Camel 3 晚,你需要在你的 pom 文件中导入 camel-direct
,因为 direct 组件已经从 camel-core
模块中移出。
https://camel.apache.org/manual/latest/camel-3-migration-guide.html#_modularization_of_camel_core