当前位置: 首页 > 知识库问答 >
问题:

配置Spring MVC和Hibernate时sessionFactory出错

郎弘壮
2023-03-14

我有这个例外。我换了版本,但想不通。我在哪里犯错误?Tomcat版本8.5

org.springframework.beans.factory.BeanCreationExcture:错误创建在ServletContext资源[/WEB-INF/Spring/appServlet/servlet-context.xml]中定义的名称为“会话工厂”的bean:调用init方法失败;嵌套异常java.lang.NoClassDefFoundError: javax/xml/bind/JAXBExcture

servlet上下文。xml

<?xml version="1.0" encoding="UTF-8"?>
<beans:beans xmlns="http://www.springframework.org/schema/mvc"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:beans="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/mvc 
http://www.springframework.org/schema/mvc/spring-mvc.xsd
    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/tx 
http://www.springframework.org/schema/tx/spring-tx-4.2.xsd">

<context:component-scan base-package="com.sefamertkaya.notalma" />

<annotation-driven />


<resources mapping="/resources/**" location="/resources/" />


<beans:bean 
 class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <beans:property name="prefix" value="/WEB-INF/views/" />
    <beans:property name="suffix" value=".jsp" />
</beans:bean>


<beans:bean id="dataSource" 
class="com.mchange.v2.c3p0.ComboPooledDataSource">
    <beans:property name="driverClass" value="com.mysql.jdbc.Driver"/>
    <beans:property name="jdbcUrl" value="jdbc:mysql://localhost/javaee"/>
    <beans:property name="user" value="root"/>
    <beans:property name="password" value="" />
</beans:bean>

<beans:bean id="sessionFactory" 
class="org.springframework.orm.hibernate5.LocalSessionFactoryBean">
        <beans:property name="dataSource" ref="dataSource"/>
        <beans:property name="hibernateProperties">
                <beans:props>

                    <beans:prop 
key="hiberante.dialect">org.hibernate.dialect.MySQLDialect</beans:prop>
                    <beans:prop 
key="hibernate.hbm2ddl.auto">update</beans:prop>
                    <beans:prop key="hibernate.show_sql">true</beans:prop>
                    <beans:prop key="hibernate.format_sql">true</beans:prop>
                </beans:props>



        </beans:property>

    <beans:property name="packagesToScan" value="com.sefamertkaya.entity"/>

</beans:bean>

<beans:bean id="hibernateTransactionManager" 
class="org.springframework.orm.hibernate5.HibernateTransactionManager">

    <beans:property name="sessionFactory" ref="sessionFactory"/>
</beans:bean>

<tx:annotation-driven transaction-manager="hibernateTransactionManager"/>   

</beans:beans>

pom.xml

 <?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.sefamertkaya</groupId>
<artifactId>notalma</artifactId>
<name>NotAlma</name>
<packaging>war</packaging>
<version>1.0.0-BUILD-SNAPSHOT</version>
<properties>
    <java-version>1.8</java-version>
    <org.springframework-version>4.2.2.RELEASE</org.springframework-version>
    <org.aspectj-version>1.6.10</org.aspectj-version>
    <org.slf4j-version>1.6.6</org.slf4j-version>
</properties>
<dependencies>
    <!-- Spring -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>${org.springframework-version}</version>
        <exclusions>
            <!-- Exclude Commons Logging in favor of SLF4j -->
            <exclusion>
                <groupId>commons-logging</groupId>
                <artifactId>commons-logging</artifactId>
             </exclusion>
        </exclusions>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
        <version>${org.springframework-version}</version>
    </dependency>

    <!-- AspectJ -->
    <dependency>
        <groupId>org.aspectj</groupId>
        <artifactId>aspectjrt</artifactId>
        <version>${org.aspectj-version}</version>
    </dependency>   

    <!-- Logging -->
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>${org.slf4j-version}</version>
    </dependency>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>jcl-over-slf4j</artifactId>
        <version>${org.slf4j-version}</version>
        <scope>runtime</scope>
    </dependency>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-log4j12</artifactId>
        <version>${org.slf4j-version}</version>
        <scope>runtime</scope>
    </dependency>
    <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>1.2.15</version>
        <exclusions>
            <exclusion>
                <groupId>javax.mail</groupId>
                <artifactId>mail</artifactId>
            </exclusion>
            <exclusion>
                <groupId>javax.jms</groupId>
                <artifactId>jms</artifactId>
            </exclusion>
            <exclusion>
                <groupId>com.sun.jdmk</groupId>
                <artifactId>jmxtools</artifactId>
            </exclusion>
            <exclusion>
                <groupId>com.sun.jmx</groupId>
                <artifactId>jmxri</artifactId>
            </exclusion>
        </exclusions>
        <scope>runtime</scope>
    </dependency>

    <!-- @Inject -->
    <dependency>
        <groupId>javax.inject</groupId>
        <artifactId>javax.inject</artifactId>
        <version>1</version>
    </dependency>

    <!-- Servlet -->
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>3.1.0</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>javax.servlet.jsp</groupId>
        <artifactId>jsp-api</artifactId>
        <version>2.1</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>jstl</artifactId>
        <version>1.2</version>
    </dependency>

    <!-- Test -->
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.7</version>
        <scope>test</scope>
    </dependency>       

    <!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-core -->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>5.2.5.Final</version>
</dependency>

    <!-- https://mvnrepository.com/artifact/org.springframework/spring-tx -- 
>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>${org.springframework-version}</version>
</dependency>


    <!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-c3p0 -->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-c3p0</artifactId>
<version>5.2.5.Final</version>
</dependency>

<!-- https://mvnrepository.com/artifact/org.springframework/spring-orm -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
<version>4.3.8.RELEASE</version>
</dependency>

<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.11</version>
</dependency>

<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson- 
databind -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.8.8</version>
</dependency>



</dependencies>
<build>
    <plugins>
        <plugin>
            <artifactId>maven-eclipse-plugin</artifactId>
            <version>2.9</version>
            <configuration>
                <additionalProjectnatures>
                    <projectnature>org.springframework.ide.eclipse.core.springnature</projectnature>
                </additionalProjectnatures>
                <additionalBuildcommands>
                    <buildcommand>org.springframework.ide.eclipse.core.springbuilder</buildcommand>
                </additionalBuildcommands>
                <downloadSources>true</downloadSources>
                <downloadJavadocs>true</downloadJavadocs>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>2.5.1</version>
            <configuration>
                <source>${java-version}</source>
                <target>${java-version}</target>
                <compilerArgument>-Xlint:all</compilerArgument>
                <showWarnings>true</showWarnings>
                <showDeprecation>true</showDeprecation>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>exec-maven-plugin</artifactId>
            <version>1.2.1</version>
            <configuration>
                <mainClass>org.test.int1.Main</mainClass>
            </configuration>
        </plugin>
    </plugins>
</build>

共有1个答案

国胤
2023-03-14

尝试添加以下依赖项:

<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-core</artifactId>
    <version>4.1.4.Final</version>
</dependency>

<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-entitymanager</artifactId>
    <version>5.2.3.Final</version>
</dependency>

或者简单地添加以下依赖项。

<dependency>
        <groupId>javax.xml.bind</groupId>
        <artifactId>jaxb-api</artifactId>
        <version>2.3.0</version>
</dependency>
 类似资料:
  • 问题内容: 我正在尝试使用spring 3.2和hibernate 4 创建bean。为此,我使用了以下代码。但问题是 过时 和建议,而不是使用的javadoc。但是,我无法理解什么是 ServiceRegistry 以及如何使用。 问题答案: 接口与服务的概念有关(对于Hibernate 4是新的)。服务是为Hibernate提供各种功能的类,用户可以为它们插入替代的实现。有关详细信息,请参见此

  • 我刚穿春靴。我想用mysql、hibernate、jpa和JSP配置spring boot。当我想启动它时,我出现了一个错误:“Error creating bean with name'session factory'等”,更多信息请参见StackTrace: pom.xml`4.0.0 `

  • 应用Context.ml 包it.davidefruci.casadiscografica2.dao 把它打包。davidefruci。卡萨迪斯科格拉菲卡2。daoImpl; Tomcat没有部署应用程序。上面说 FAIL-在上下文路径 /CasaDiscografica2部署应用程序,但上下文无法启动 给我一个错误: 组织。springframework。豆。工厂BeanCreationExce

  • 我试图创建一个springmvc项目配置与Hibernate使用web.xml 我的问题是,当我运行时,它不会自动创建用户表。 这是我的代码: 文件spring-config.xml 文件web.xml: 文件UserDAO: 文件UserDaoImpl: 文件用户: 这是我的日志:

  • 问题内容: 我在使用MySQL配置hibernate 5.0.1时遇到问题,我在这里看到一些问题,指出版本4中存在错误,我不确定这是否是相同的错误,或者我做错了什么。 这是我的配置文件hibernate.cfg.xml 这是我的sessionfactory代码 这是错误日志。 谢谢。 问题答案: 所以这是解决方案。 更换 与 并在文件顶部添加以下代码。 同样在配置文件中替换为

  • 所以, hibernate可用。 现在,在上有一个方法。 现在,您可以从sessionFactory中或 从那里,我们可以做到: 然而,我的记忆告诉我这已经太晚了。 实际上需要在创建之前执行。 这不是真的吗? 此外,具有相同的要求。 现在,要在创建会话之前获得连接,有以下答案: https://stackoverflow.com/A/29844998/961018 但这需要。 那么有没有一个,可以