简体   繁体   English

java.lang.NoSuchMethodError org.hibernate.cfg.Configuration.addAnnotatedClass

[英]java.lang.NoSuchMethodError org.hibernate.cfg.Configuration.addAnnotatedClass

i never used maven before. 我以前从未用过Maven。 But i always want to. 但是我一直想。 I update one eclipse project im working on to be all in maven. 我更新了一个正在工作的Eclipse项目,使其全部投入了Maven。

在此处输入图片说明

This was my WEB-INF/lib folder with all my jars. 这是我所有罐子的WEB-INF / lib文件夹。

Now i wanted to do the same in maven adding dependencies one by one but im having errors 现在我想在maven中做同样的事情,一个接一个地添加依赖项,但是我有错误

When i enter a servlet i get this: 当我输入一个servlet时,我得到了:

excepción

javax.servlet.ServletException: La ejecución del Servlet lanzó una excepción
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
causa raíz

java.lang.ExceptionInInitializerError
    util.HibernateUtil.<clinit>(HibernateUtil.java:38)
    app.Model.getProvincias(Model.java:74)
    servlet.FormS.doGet(FormS.java:22)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:620)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
causa raíz

java.lang.NoSuchMethodError: org.hibernate.cfg.Configuration.addAnnotatedClass(Ljava/lang/Class;)Lorg/hibernate/cfg/Configuration;
    util.HibernateUtil.<clinit>(HibernateUtil.java:25)
    app.Model.getProvincias(Model.java:74)
    servlet.FormS.doGet(FormS.java:22)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:620)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

Here is my hibernate Configure file hibernate.cfg.xml 这是我的休眠配置文件hibernate.cfg.xml

<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
          "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
          "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
  <property name="dialect">org.hibernate.dialect.MySQLDialect</property>
    <property name="connection.driver_class">com.mysql.jdbc.Driver</property>


    <property name="connection.password">pass</property>
  <property name="connection.url">jdbc:mysql://obram2.com/obram2_base</property>


    <!--  
      <property name="connection.url">jdbc:mysql://192.168.200.41/obram2_base</property>

    -->

    <property name="hibernate.c3p0.min_size">5</property>
    <property name="hibernate.c3p0.max_size">20</property>
    <property name="hibernate.c3p0.timeout">300</property>
    <property name="hibernate.c3p0.max_statements">50</property>
    <property name="hibernate.c3p0.idle_test_period">3000</property>

  <property name="connection.username">obram2_root</property>
    <property name="cache.provider_class">org.hibernate.cache.internal.NoCacheProvider</property>
  <property name="show_sql">false</property>
  <property name="hibernate.hbm2ddl.auto">update</property>

 </session-factory>
</hibernate-configuration>

And this my HibernateUtil 这是我的HibernateUtil

package util;


import org.hibernate.SessionFactory;
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry;

import bean.Business;
import bean.Client;
import bean.Form;
import bean.Pago;
public class HibernateUtil
{
    //private static final SessionFactory sessionFactory;
    private static SessionFactory sessionFactory;
    private static ServiceRegistry serviceRegistry;

    static
    {
        try
        {

            Configuration configuration = new Configuration().configure()
                .addAnnotatedClass(Localidad.class)
                .addAnnotatedClass(Form.class)
                .addAnnotatedClass(Client.class)
                .addAnnotatedClass(Business.class)
                .addAnnotatedClass(Provincia.class)
                .addAnnotatedClass(Pago.class);
            serviceRegistry = new StandardServiceRegistryBuilder().applySettings(configuration.getProperties()).build();
            sessionFactory = configuration.buildSessionFactory(serviceRegistry);

        }
        catch (Throwable ex)
        {
            System.err.println("Initial SessionFactory creation failed." + ex);
            throw new ExceptionInInitializerError(ex);
        }
    }

    public static SessionFactory getSessionFactory()
    {
        return sessionFactory;
    }
}

And Finally Here are all my new maven dependencies, which i tried to remain in same versions of all of them: 最后,这是我所有新的Maven依赖项,我尝试将它们保留在所有这些文件的相同版本中:

在此处输入图片说明

And my pom.xml 还有我的pom.xml

<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/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>OBRAM2</groupId>
  <artifactId>OBRAM2</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>war</packaging>
  <build>
    <sourceDirectory>src</sourceDirectory>
    <resources>
      <resource>
        <directory>src</directory>
        <excludes>
          <exclude>**/*.java</exclude>
        </excludes>
      </resource>
    </resources>
    <plugins>
      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.1</version>
        <configuration>
          <source>1.7</source>
          <target>1.7</target>
        </configuration>
      </plugin>
      <plugin>
        <artifactId>maven-war-plugin</artifactId>
        <version>2.3</version>
        <configuration>
          <warSourceDirectory>WebContent</warSourceDirectory>
          <failOnMissingWebXml>false</failOnMissingWebXml>
        </configuration>
      </plugin>
    </plugins>
  </build>
  <dependencies>
    <dependency>
        <groupId>javax.mail</groupId>
        <artifactId>javax.mail-api</artifactId>
        <version>1.5.3</version>
    </dependency>
    <dependency>
    <groupId>log4j</groupId>
    <artifactId>log4j</artifactId>
    <version>1.2.17</version>
    </dependency>
    <dependency>
        <groupId>org.apache.velocity</groupId>
        <artifactId>velocity</artifactId>
        <version>1.7</version>
    </dependency>
    <dependency>
        <groupId>com.google.code.gson</groupId>
        <artifactId>gson</artifactId>
        <version>2.3.1</version>
    </dependency>
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.17</version>
    </dependency>
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>jstl</artifactId>
        <version>1.2</version>
    </dependency>
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-core</artifactId>
        <version>4.3.8.Final</version>
    </dependency>
    <dependency>
        <groupId>org.hibernate.common</groupId>
        <artifactId>hibernate-commons-annotations</artifactId>
        <version>4.0.5.Final</version>
    </dependency>
    <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-lang3</artifactId>
        <version>3.4</version>
    </dependency>
  </dependencies>
</project>

Remember the exact same code was working before maven, i didnt make any changes. 请记住,在maven之前,完全相同的代码已经起作用,我没有进行任何更改。

Thanks! 谢谢!

I finally solved it by creating maven folders structure. 我终于通过创建Maven文件夹结构解决了它。 Its seems that eclipse Configure->Conver to Maven doesnt does that. 似乎eclipse Configure-> Conver to Maven并没有做到这一点。

src\main\java
      here my files
src\main\resources
src\main\webapp

When you define a maven it resolves all sub-dependencies of your artifacts and make decisions about versions of the artifacts. 定义Maven时,它将解析工件的所有子依赖关系,并做出有关工件版本的决策。 You can solve this conflicts by going to target/{yourapp}/WEB-INF/lib/ and see the exact jars that maven is packaging on the war. 您可以通过定位至target / {yourapp} / WEB-INF / lib /并查看maven在战争中打包的确切jar来解决此冲突。 If there are some than don't fit according to your initial /lib you can use the eclipse maven dependency manager (or use directly on the pom) to exclude those that you don't want. 如果根据您的初始/ lib存在一些不适合的内容,则可以使用Eclipse Maven依赖项管理器(或直接在pom上使用)来排除不需要的内容。

The error that you are getting is very usual when you use different versions of your artifacts. 当您使用不同版本的工件时,通常会遇到错误。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 java.lang.NoSuchMethodError: org.hibernate.cfg.Configuration.addAnnotatedClass 同时使用 Hibernate Annotation 和 Maven - java.lang.NoSuchMethodError: org.hibernate.cfg.Configuration.addAnnotatedClass while using Hibernate Annotation and Maven java.lang.NoSuchMethodError:org.hibernate.ogm.cfg.OgmConfiguration.addAnnotatedClass - java.lang.NoSuchMethodError: org.hibernate.ogm.cfg.OgmConfiguration.addAnnotatedClass Spring 3 + Hibernate 4 + C3P0:java.lang.NoSuchMethodError:org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.addAnnotatedClass - Spring 3 + Hibernate 4 + C3P0: java.lang.NoSuchMethodError: org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.addAnnotatedClass java.lang.NoSuchMethodError:org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.addAnnotatedClass(Ljava / lang / Class;) - java.lang.NoSuchMethodError: org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.addAnnotatedClass(Ljava/lang/Class;) Hibernate中的@Convert无法与Spring 4,java.lang.NoSuchMethodError一起使用:org.hibernate.cfg.Configuration.addAttributeConverter(Ljava / lang / Class;)V - @Convert in Hibernate not working with spring 4,java.lang.NoSuchMethodError: org.hibernate.cfg.Configuration.addAttributeConverter(Ljava/lang/Class;)V 线程“main”中的异常 java.lang.NoSuchMethodError: 'void org.hibernate.cfg.AnnotationBinder.bindDefaults(org.hibernate.boot.spi.MetadataBuilding - Exception in thread "main" java.lang.NoSuchMethodError: 'void org.hibernate.cfg.AnnotationBinder.bindDefaults(org.hibernate.boot.spi.MetadataBuilding 创建实体管理器中的休眠错误[java.lang.NoSuchMethodError:org.hibernate.cfg.Environment.verifyProperties(Ljava / util / Map;)V] - Hibernate error in create entity manger [ java.lang.NoSuchMethodError: org.hibernate.cfg.Environment.verifyProperties(Ljava/util/Map;)V ] 线程“主”中的异常java.lang.NoSuchMethodError:org.hibernate.cfg.Environment.verifyProperties(Ljava / util / Map;)V - Exception in thread “main” java.lang.NoSuchMethodError: org.hibernate.cfg.Environment.verifyProperties(Ljava/util/Map;)V Hibernate Configuration类的java.lang.NoSuchMethodError仅在Tomcat上出现 - java.lang.NoSuchMethodError for Hibernate Configuration class coming only on Tomcat java.lang.ClassNotFoundException:org.hibernate.cfg.Configuration - java.lang.ClassNotFoundException: org.hibernate.cfg.Configuration
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM