Исключение модульного тестирования OneToMany.orphanRemoval () Z - PullRequest
1 голос
/ 07 декабря 2011

У меня есть веб-приложение на основе Spring + Hibernate, и оно работает / работает хорошо. Но когда я пытаюсь проверить его с помощью модульного теста, я получаю:

Вызывается: java.lang.NoSuchMethodError: javax.persistence.OneToMany.orphanRemoval () Z "

Я много читал об этой проблеме, все люди говорят, что она возникла из-за JPA1 и поместила JPA2 на ваш путь к классам. Но на моем пути к классам пока нет jar-файлов, основанных на JPA1, но Hibernate предоставил JPA2, но все равно получаю исключение.

Мой стек Библиотеки следующий,

Hibernate 3.6.8

  • hibernate3.jar
  • зимуют-JPA-2,0-апи-1.0.1.Final.jar
  • зимуют-testing.jar
  • ANTLR-2.7.6.jar
  • Викисклад коллекция-3.1.jar
  • dom4j-1.6.1.jar
  • Javassist-3.12.0.GA.jar
  • JTA-1.1.jar
  • SLF4J-апи-1.6.1.jar
  • Обще-каротаж 1.1.1.jar

Spring Libraries 3.0.6

  • org.springframework.aop; version = "[3.0.6.RELEASE, 3.0.6.RELEASE]",
  • org.springframework.asm; version = "[3.0.6.RELEASE, 3.0.6.RELEASE]",
  • org.springframework.aspects; version = "[3.0.6.RELEASE, 3.0.6.RELEASE]",
  • org.springframework.beans; version = "[3.0.6.RELEASE, 3.0.6.RELEASE]",
  • org.springframework.context; version = "[3.0.6.RELEASE, 3.0.6.RELEASE]",
  • org.springframework.context.support; версия = "[3.0.6.RELEASE, 3.0.6.RELEASE]",
  • org.springframework.core; версия = "[3.0.6.RELEASE, 3.0.6.RELEASE]",
  • org.springframework.expression; версия = "[3.0.6.RELEASE, 3.0.6.RELEASE]",
  • org.springframework.jdbc; версия = "[3.0.6.RELEASE, 3.0.6.RELEASE]",
  • org.springframework.jms; версия = "[3.0.6.RELEASE, 3.0.6.RELEASE]",
  • org.springframework.orm; версия = "[3.0.6.RELEASE, 3.0.6.RELEASE]",
  • org.springframework.oxm; версия = "[3.0.6.RELEASE, 3.0.6.RELEASE]",
  • org.springframework.transaction; version = "[3.0.6.RELEASE, 3.0.6.RELEASE]",
  • org.springframework.web; version = "[3.0.6.RELEASE, 3.0.6.RELEASE]",
  • org.springframework.web.servlet; версия = "[3.0.6.RELEASE, 3.0.6.RELEASE]",
  • org.springframework.web.portlet; версия = "[3.0.6.RELEASE, 3.0.6.RELEASE]",
  • com.springsource.org.aopalliance; версия = "[1.0.0, 1.0.0]"

Код моего модульного теста, очень простой:

@ContextConfiguration( locations = {"classpath:spring/applicationContext.xml" } )
public class RegistrationServiceTest extends AbstractJUnit4SpringContextTests {

   @Autowired
   RegisterationSerivce serivce;

   @Test
   public void getRegistrationRefData() {
      List list =  serivce.getAllCustomers( );
      System.out.println(list.size( ));
   }
}

Буду очень признателен за любую помощь в этом отношении.

Ответы [ 2 ]

1 голос
/ 08 декабря 2011

Я только что решил проблему ... это произошло из-за "Библиотеки Java EE 5", которая содержит следующие библиотеки.

-javaee.jar
-jsf-impl.jar
-jsf-api.jar
-jstl-1.2.jar

Я использую MyEclipse Enterprise Workbench 9.0, который автоматически добавляет «Библиотеки Java EE 5» в каждый веб-проект. Так что в случае JPA & JSF вы хотите использовать пользовательские библиотеки, мы должны удалить их.

1 голос
/ 07 декабря 2011

Это определенно баночка JPA 1.0 где-то в пути к классам.Проверьте вывод следующего оператора, чтобы определить точное местоположение этой банки:

System.out.println(OneToMany.class.getProtectionDomain().getCodeSource().getLocation());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...