Apache camel 带bean的测试用例
在我的java类中,我有如下内容:Apache camel 带bean的测试用例,apache-camel,junit4,spring-batch,Apache Camel,Junit4,Spring Batch,在我的java类中,我有如下内容: from("direct:dcrm:input") .routeId("dcrm-route" .convertBodyTo(Message.class) .setHeader( "recipientListHeader", simple("activemq:"+rdvrQueueName+ ".${body.con
from("direct:dcrm:input")
.routeId("dcrm-route"
.convertBodyTo(Message.class)
.setHeader(
"recipientListHeader",
simple("activemq:"+rdvrQueueName+ ".${body.controllerID}?jmsMessageType=Text&timeToLive="
+ rdvrMessageTimeToLive
+ "&deliveryPersistent=" + deliveryPersistent))
.choice()
.when(simple("${body.messageType} == 'rdvr'"))
.bean(new DcrmMessageHandler(), "process")
.marshal(requestMessage)
.recipientList(header("recipientListHeader"))
.onPrepare(new MesssageProcessor()).parallelProcessing()
.end()
.setBody(constant(StatusCode.SUCCESS))
.otherwise()
.endChoice();
在写Junit时,我不是这样做的:
@Test
public void testSendMatchingMessage() throws Exception {
String expectedBody = "<matched/>";
resultEndpoint.expectedBodiesReceived(expectedBody);
template.sendBodyAndHeader(expectedBody, "recipientListHeader", 0);
resultEndpoint.assertIsSatisfied();
}
@Override
protected RouteBuilder createRouteBuilder() throws Exception {
//return new DcrmOutboundRoute();
return new RouteBuilder() {
@Override
public void configure() throws Exception {
// TODO Auto-generated method stub
from("direct:dcrm:input")
.filter(header("recipientListHeader").isEqualTo(constant(StatusCode.SUCCESS)))
.bean(new DcrmMessageHandler(), "process").to("mock:result");
}
};
}
但我得到了下面的错误:
java.lang.ClassFormatError:类文件javax/persistence/NoResultException中非本机或抽象的方法中缺少代码属性
在java.lang.ClassLoader.defineClass1Native方法中
位于java.lang.ClassLoader.DefineClassLoader.java:800
位于java.security.SecureClassLoader.defineClassSecureClassLoader.java:142
位于java.net.URLClassLoader.defineClassURLClassLoader.java:449
在java.net.URLClassLoader.access$100URLClassLoader.java:71
在java.net.URLClassLoader$1.runURLClassLoader.java:361
在java.net.URLClassLoader$1.runURLClassLoader.java:355
位于java.security.AccessController.doPrivilegeEdNative方法
位于java.net.URLClassLoader.findClassURLClassLoader.java:354
位于java.lang.ClassLoader.LoadClassLoader.java:425
位于sun.misc.Launcher$AppClassLoader.loadClassLauncher.java:308
在java.lang.ClassLoader.LoadClassLoader.java:358检查类路径或Maven依赖项,特别是引用JPA javax.persistence的依赖项。您应该有一个groupId javax.persistence的依赖项,可能还有artifactId persistence api,将其替换为org.hibernate.javax.persistence或org.eclipse.persistence依赖项