Интеграция с Axis2 и Hibernate (без Spring) - PullRequest
0 голосов
/ 02 июня 2011

Мы разрабатываем веб-сервисы на основе Axis2 (устаревшая система). С jdbc он работает нормально, но мне нужно использовать его с Hibernate. Я пробовал 2 подхода:

  1. (за пределами aar) я помещаю hibernate * .jars в EARContent / lib и hibernate.cfg.xml в WEB-ING / classes
  2. (внутри aar) Я поместил hibernate.cfg.xml в aar / META-INF / и добавил в параметр service.xml <parameter name="ServiceTCCL">composite</parameter>

В первом случае я не смог добраться до hibernate.cfg.xml java.lang.RuntimeException: java.lang.RuntimeException: org.hibernate.HibernateException: Could not parse configuration: /hibernate.cfg.xml

во 2-м случае, когда я потерял доступ к JNDII, похоже, теряется контейнер jndi в широком контейнере (jboss).
java.lang.RuntimeException: javax.naming.NameNotFoundException: UserTransaction not bound

Спасибо

1 Ответ

0 голосов
/ 02 июня 2011

На самом деле, я исправил эту проблему с помощью следующего кода из моего hibernate SessionFactoryUtils

 // Create the initial SessionFactory from the default configuration files
        log.debug("Initializing Hibernate");

        AxisService axisService = MessageContext.getCurrentMessageContext().getAxisService();
        ClassLoader serviceClassLoader = axisService.getClassLoader();

        URL configURL = serviceClassLoader.getResource("hibernate.cfg.xml");
        configuration = new AnnotationConfiguration();
        // Use annotations: configuration = new AnnotationConfiguration();

        // Read hibernate.cfg.xml (has to be present)
        configuration.configure(configURL);

        // Build and store (either in JNDI or static variable)
        rebuildSessionFactory(configuration);

Итак, я остановился на hibernate.cfg.xml в моих классах WebContent / WEB-INF / и на всех библиотеках в EAR.

...