Spring 5.0.7 с Hibernate 5.4.1 на сервере смолы - PullRequest
1 голос
/ 18 марта 2019

Этот пример отлично работает в Tomcat9 с тем же jar, но не работает в веб-сервере Resin 4.0.61. Конфигурация Spring MVC в файле смолы.xml -

<servlet>
<servlet-name>springportfolio</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/springportfolio-servlet.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup></servlet>

<servlet-mapping>
<servlet-name>springportfolio</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>

файл конфигурации springportfolio-servlet.xml-

<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="
    http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans.xsd
    http://www.springframework.org/schema/context
    http://www.springframework.org/schema/context/spring-context.xsd
    http://www.springframework.org/schema/mvc
    http://www.springframework.org/schema/mvc/spring-mvc.xsd
    http://www.springframework.org/schema/tx 
    http://www.springframework.org/schema/tx/spring-tx.xsd">

<!-- Add support for conversion, formatting and validation support -->
<mvc:annotation-driven />

<!-- Add support for component scanning -->
<context:component-scan
    base-package="com.example.portfolio" />

<!-- Define Spring MVC view resolver -->
<bean
    class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="prefix"
        value="/web-inf/views/" />
    <property name="suffix" value=".jsp" />
</bean>

<!-- Step 1: Define Database DataSource / connection pool -->
<bean id="myDataSource"
    class="com.mchange.v2.c3p0.ComboPooledDataSource"
    destroy-method="close">
    <property name="driverClass"
        value="oracle.jdbc.driver.OracleDriver" />
    <property name="jdbcUrl"
        value="xxxxxx" />
    <property name="user" value="xxxx" />
    <property name="password" value="xxx" />

    <!-- these are connection pool properties for C3P0 -->
    <property name="minPoolSize" value="5" />
    <property name="maxPoolSize" value="20" />
    <property name="maxIdleTime" value="30000" />
</bean>

<!-- Step 2: Setup Hibernate session factory -->
<bean id="sessionFactory"
    class="org.springframework.orm.hibernate5.LocalSessionFactoryBean">
    <property name="dataSource" ref="myDataSource" />
    <property name="packagesToScan"
        value="com.example.portfolio.entity" />
    <property name="hibernateProperties">
        <props>
            <prop key="hibernate.dialect">org.hibernate.dialect.Oracle12cDialect</prop>
            <prop key="hibernate.show_sql">true</prop>
        </props>
    </property>
</bean>

<!-- Step 3: Setup Hibernate transaction manager -->
<bean id="myTransactionManager"
    class="org.springframework.orm.hibernate5.HibernateTransactionManager">
    <property name="sessionFactory" ref="sessionFactory" />
</bean>

<!-- Step 4: Enable configuration of transactional behavior based on annotations -->
<tx:annotation-driven
    transaction-manager="myTransactionManager" />

Получение исключения - ОШИБКА | Сбой инициализации контекста

org.springframework.beans.factory.UnsatisfiedDependencyException: Ошибка создания бина с именем customerController: неудовлетворен зависимость выражается через поле 'userService'; вложенное исключение org.springframework.beans.factory.UnsatisfiedDependencyException: Ошибка создания бина с именем 'userServiceImp': неудовлетворенная зависимость выражается через поле 'userDao'; вложенное исключение org.springframework.beans.factory.UnsatisfiedDependencyException: Ошибка создания компонента с именем customerDAOImpl: неудовлетворен зависимость выражается через поле 'sessionFactory'; вложенное исключение isg.springframework.beans.factory.BeanCreationException: ошибка создание компонента с именем 'sessionFactory', определенным в ServletContext ресурс [/WEB-INF/springportfolio-servlet.xml]: вызов init метод не удался; Вложенным исключением является java.lang.NoSuchMethodError: javax.persistence.Table.indexes () [Ljavax / сохранение / Индекс;

1 Ответ

0 голосов
/ 18 марта 2019

Смола 4.0.61 соответствует спецификации JEE 6.0. JEE 6.0 включает JPA в версии 2.0. Согласно сообщению об ошибке, в версии 2.1 ожидается приложение JPA. Либо обновите приложение до JPA 2.0, либо обновите сервер до JPA 2.1, как описано в этом форуме

...