2014-11-07 2 views
0

В моей Java классе у меня есть кое-что, как показано ниже:cameltest случай с боб

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 я doint как это:

@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.defineClass1 (Nativ Способ е) на java.lang.ClassLoader.defineClass (ClassLoader.java:800) на java.security.SecureClassLoader.defineClass (SecureClassLoader.java:142) в java.net.URLClassLoader.defineClass (URLClassLoader.java:449) at java.net.URLClassLoader.access $ 100 (URLClassLoader.java:71) at java.net.URLClassLoader $ 1.run (URLClassLoader.java:361) at java.net.URLClassLoader $ 1.run (URLClassLoader.java: 355) на java.security.AccessController.doPrivileged (нативный метод) на java.net.URLClassLoader.findClass (URLClassLoader.java:354) на java.lang.ClassLoader.loadClass (ClassLoader.java:425) на солнце .misc.Launcher $ AppClassLoader.loadClass (Launcher.java:308) at ja va.lang.ClassLoader.loadClass (ClassLoader.java:358)

ответ

0

Проверьте свой путь к классу или ваши зависимости от Maven, в частности, ссылку на JPA (javax.persistence). У вас должна быть зависимость от groupId javax.persistence и, вероятно, с артефактом persistence-api, замените его на org.hibernate.javax.persistence или org.eclipse.persistence.