Apache camel 带bean的测试用例

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

在我的java类中,我有如下内容:

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依赖项