Java addPackage方法的Hibernate NoSuchMethodError

Java addPackage方法的Hibernate NoSuchMethodError,java,hibernate,maven,configuration,Java,Hibernate,Maven,Configuration,我使用Hibernate连接到我的数据库,并在我的dbConnector类中配置我的数据库: public static SessionFactory connectingHibernate(){ Properties database=new Properties(); database.setProperty("hibernate.connection.driver_class",PROPERTY_NAME_DATABASE_DRIVER); database.s

我使用Hibernate连接到我的数据库,并在我的dbConnector类中配置我的数据库:

public static SessionFactory connectingHibernate(){
    Properties database=new Properties(); 

    database.setProperty("hibernate.connection.driver_class",PROPERTY_NAME_DATABASE_DRIVER);
    database.setProperty("hibernate.connection.username",USERNAME);
    database.setProperty("hibernate.connection.password",PASSWORD);
    database.setProperty("hibernate.connection.url",url);
    database.setProperty("hibernate.dialect",DIALECT);

    Configuration cfg=new Configuration()
            .setProperties(database)
            .addPackage("androidapi.model")
            .addAnnotatedClass(User.class)
            .addAnnotatedClass(Product.class)
            .addAnnotatedClass(PriceProduct.class)
            .addAnnotatedClass(CoinPrice.class)
            .addAnnotatedClass(SellPage.class)
            .addAnnotatedClass(Setting.class)
            .addAnnotatedClass(Message.class);



    StandardServiceRegistryBuilder ssrb=new StandardServiceRegistryBuilder()
            .applySettings(cfg.getProperties());
    sessionFactory=cfg.buildSessionFactory(ssrb.build());
    return sessionFactory;
}
当我从ide内部运行我的应用程序时,我的代码工作正常,但在使用maven生成war文件后,我在使用db的方法上遇到了这个异常!我怎样才能解决这个问题

例外情况:

  "error": "Internal Server Error",
  "exception": "java.lang.NoSuchMethodError",
  "message": "org.hibernate.cfg.Configuration.addPackage(Ljava/lang/String;)Lorg/hibernate/cfg/Configuration;",
"exception": "java.lang.NoSuchMethodError",
  "message": "org.hibernate.cfg.Configuration.addAnnotatedClass(Ljava/lang/Class;)Lorg/hibernate/cfg/Configuration;",
  "path": "/myinsta/admin_api/mGetAllUser"
删除这一行后:.
addPackage(“androidapi.model”)
我得到了这个异常:

  "error": "Internal Server Error",
  "exception": "java.lang.NoSuchMethodError",
  "message": "org.hibernate.cfg.Configuration.addPackage(Ljava/lang/String;)Lorg/hibernate/cfg/Configuration;",
"exception": "java.lang.NoSuchMethodError",
  "message": "org.hibernate.cfg.Configuration.addAnnotatedClass(Ljava/lang/Class;)Lorg/hibernate/cfg/Configuration;",
  "path": "/myinsta/admin_api/mGetAllUser"
my pom.xml Hibernate依赖项:

 <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.6</version>
    </dependency>

    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate</artifactId>
        <version>LATEST</version>
        <type>pom</type>
    </dependency>
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-core</artifactId>
        <version>LATEST</version>
    </dependency>
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-search</artifactId>
        <version>LATEST</version>
    </dependency>
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-entitymanager</artifactId>
        <version>LATEST</version>
    </dependency>
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-commons-annotations</artifactId>
        <version>LATEST</version>
    </dependency>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>LATEST</version>
    </dependency>

mysql

您的类路径上有多个版本的hibernate(在撰写本文时:很可能是
3.6.0.beta2
5.2.1.Final

删除:

<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate</artifactId>
    <version>LATEST</version>
    <type>pom</type>
</dependency>

org.hibernate
冬眠
最新的
聚甲醛

这是一个旧版本。

您的类路径上有多个版本的hibernate(在撰写本文时:很可能是
3.6.0.beta2
5.2.1.Final

删除:

<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate</artifactId>
    <version>LATEST</version>
    <type>pom</type>
</dependency>

org.hibernate
冬眠
最新的
聚甲醛

这是一个旧版本。

您不需要这一行

addPackage("androidapi.model")
方法
addPackage()
不会扫描包。它用于读取“包级元数据”(
.package info-
文件)

看起来,您使用了Hibernate 5。不能将Hibernate 4配置代码用于Hibernate 5

如果你想扫描软件包

要使用有效的Hibernate版本,只需使用Hibernate core检查此页面 版本:

并将其添加到
pom.xml
(如果使用Maven)。例如,对于Hibernate 5.2.1.Final(它使用Java 8):


org.hibernate

你不需要这条线

addPackage("androidapi.model")
方法
addPackage()
不会扫描包。它用于读取“包级元数据”(
.package info-
文件)

看起来,您使用了Hibernate 5。不能将Hibernate 4配置代码用于Hibernate 5

如果你想扫描软件包

要使用有效的Hibernate版本,只需使用Hibernate core检查此页面 版本:

并将其添加到
pom.xml
(如果使用Maven)。例如,对于Hibernate 5.2.1.Final(它使用Java 8):


org.hibernate


你真的需要这个
添加包(“androidapi.model”)
吗?是的,如果我删除这行,它就找不到我的数据库模型类,比如User&@v、 Ladynev您是否在
用户
上使用注释?旁注(与问题无关):通常您不想使用
最新版本
,因为这会使您的构建不确定。@raphaëλ您说得对!你真的需要这个
addPackage(“androidapi.model”)
?是的,如果我删除这一行,它就找不到像User&@v、 Ladynev您是否在
用户
上使用注释?旁注(与问题无关):通常您不想使用
最新版本
,因为这会使您的构建不确定。@raphaëλ您说得对!TnQFunny,看起来像,
hibernate
是hibernate旧版本的工件id:)有趣的是,
hibernate
是hibernate旧版本的工件id:)“异常”:“java.lang.NoSuchMethodError”,“消息”:“org.hibernate.cfg.Configuration.addAnnotatedClass(Ljava/lang/Class;)Lorg/hibernate/cfg/Configuration;”,“路径”:“/myinsta/admin_api/mGetAllUser”删除addpack()后,我删除了所有缓存的jar文件并下载了所有again@mehdiakbarian您需要修复您的
pom.xml
,这就是重点!怎样??当我使用ide运行和调试时,我的pom.xml工作得很好,但当我使war文件不工作时,idk如何修复它“异常”:“java.lang.NoSuchMethodError”,“消息”:“org.hibernate.cfg.Configuration.addAnnotatedClass(Ljava/lang/Class;)Lorg/hibernate/cfg/Configuration;”,“路径”:“/myinsta/admin_api/mGetAllUser”,在删除addpack()后我删除了所有缓存的jar文件并下载了所有again@mehdiakbarian您需要修复您的
pom.xml
,这就是重点!怎样??当我使用ide运行和调试时,我的pom.xml工作得很好,但当我制作war文件时,它不工作,idk如何修复它