Java heroku和hibernate 5-NoSuchMethodError:CoreMessageLogger.debug

Java heroku和hibernate 5-NoSuchMethodError:CoreMessageLogger.debug,java,hibernate,maven,heroku,Java,Hibernate,Maven,Heroku,编辑:问题未解决-行为是: 一旦应用程序因不活动而在heroku中脱机,它至少需要一个 heroku ps:scale web=0 heroku ps:scale web=1 把它修好 我在考虑一些初始问题-我确实: 类:POJO 类服务-@ApplicationScoped,注入Dao gehts和: @PostConstruct currentTransaction.commit(); currentSession.getSessionFactory().

编辑:问题未解决-行为是:

一旦应用程序因不活动而在heroku中脱机,它至少需要一个

heroku ps:scale web=0 
heroku ps:scale web=1
把它修好

我在考虑一些初始问题-我确实:

类:POJO

类服务-@ApplicationScoped,注入Dao gehts和:

@PostConstruct
        currentTransaction.commit();
        currentSession.getSessionFactory().close();

@PreDestroy
        currentTransaction.commit();
        currentSession.getSessionFactory().close();
bean类: @命名 @RequestScoped或@ViewScoped

服务被注入,并接收被调用方 逻辑是在:

@施工后

也许这与这个问题无关,但我想发布更多细节。 也许有人能给我指出正确的方向吗


旧职位:

我已经搜索了很长时间,但没有找到正确的解决方案

我的项目在TomEE 7.0.4上运行良好-但当我在heroku中访问.xhtml时,会出现以下堆栈跟踪:

org.jboss.weld.exceptions.WeldException: WELD-000049: Unable to invoke public void WEBPROJECT.ViewIndexManagedBean.init() on WEBPROJECT.ViewIndexManagedBean@5c2265d2
...
Caused by: java.lang.NoSuchMethodError: org.hibernate.internal.CoreMessageLogger.debugf(Ljava/lang/String;I)V
    at org.hibernate.engine.jdbc.connections.internal.PooledConnections.<init>(PooledConnections.java:36)
    at org.hibernate.engine.jdbc.connections.internal.PooledConnections.<init>(PooledConnections.java:20)
    at org.hibernate.engine.jdbc.connections.internal.PooledConnections$Builder.build(PooledConnections.java:161)
    at org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl.buildPool(DriverManagerConnectionProviderImpl.java:109)
    at org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl.configure(DriverManagerConnectionProviderImpl.java:72)
    at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:94)
    at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:242)
    at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:210)
    at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.buildJdbcConnectionAccess(JdbcEnvironmentInitiator.java:145)
    at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:66)
    at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:35)
    at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.initiateService(StandardServiceRegistryImpl.java:88)
    at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:259)
    at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:233)
    at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:210)
    at org.hibernate.engine.jdbc.internal.JdbcServicesImpl.configure(JdbcServicesImpl.java:51)
    at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:94)
    at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:242)
    at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:210)
    at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.handleTypes(MetadataBuildingProcess.java:352)
    at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.complete(MetadataBuildingProcess.java:111)
    at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.build(MetadataBuildingProcess.java:83)
    at org.hibernate.boot.internal.MetadataBuilderImpl.build(MetadataBuilderImpl.java:418)
    at org.hibernate.boot.internal.MetadataBuilderImpl.build(MetadataBuilderImpl.java:87)
    at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:691)
    at WEBPROJECT.dao.AbstractDao.getSessionFactory(AbstractDao.java:45)
    at WEBPROJECT.dao.AbstractDao.openCurrentSessionwithTransaction(AbstractDao.java:24)
    at WEBPROJECT.gui.service.Service.init(Service.java:50)
    ... 78 more
org.jboss.weld.exceptions.weldeexception:weld-000049:无法在WEBPROJECT上调用public void WEBPROJECT.ViewIndexManagedBean.init()。ViewIndexManagedBean@5c2265d2
...
原因:java.lang.NoSuchMethodError:org.hibernate.internal.CoreMessageLogger.debugf(Ljava/lang/String;I)V
位于org.hibernate.engine.jdbc.connections.internal.PooledConnections.(PooledConnections.java:36)
位于org.hibernate.engine.jdbc.connections.internal.PooledConnections.(PooledConnections.java:20)
位于org.hibernate.engine.jdbc.connections.internal.PooledConnections$Builder.build(PooledConnections.java:161)
位于org.hibernate.engine.jdbc.connections.internal.DriverManager连接ProviderImpl.buildPool(DriverManager连接ProviderImpl.java:109)
位于org.hibernate.engine.jdbc.connections.internal.DriverManager连接ProviderImpl.configure(DriverManager连接ProviderImpl.java:72)
位于org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:94)
位于org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:242)
位于org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:210)
位于org.hibernate.engine.jdbc.env.internal.jdbconvironmentinitiator.buildJdbcConnectionAccess(jdbconvironmentinitiator.java:145)
位于org.hibernate.engine.jdbc.env.internal.jdbconvironmentinitiator.initiateService(jdbconvironmentinitiator.java:66)
位于org.hibernate.engine.jdbc.env.internal.jdbconvironmentinitiator.initiateService(jdbconvironmentinitiator.java:35)
位于org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.initiateService(StandardServiceRegistryImpl.java:88)
位于org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:259)
位于org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:233)
位于org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:210)
位于org.hibernate.engine.jdbc.internal.jdbcservicesiml.configure(jdbcservicesiml.java:51)
位于org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:94)
位于org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:242)
位于org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:210)
位于org.hibernate.boot.model.process.spi.MetadataBuildingProcess.handleTypes(MetadataBuildingProcess.java:352)
位于org.hibernate.boot.model.process.spi.MetadataBuildingProcess.complete(MetadataBuildingProcess.java:111)
位于org.hibernate.boot.model.process.spi.MetadataBuildingProcess.build(MetadataBuildingProcess.java:83)
位于org.hibernate.boot.internal.MetadataBuilderImpl.build(MetadataBuilderImpl.java:418)
位于org.hibernate.boot.internal.MetadataBuilderImpl.build(MetadataBuilderImpl.java:87)
位于org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:691)
位于WEBPROJECT.dao.AbstractDao.getSessionFactory(AbstractDao.java:45)
位于WEBPROJECT.dao.AbstractDao.openCurrentSessionwithTransaction(AbstractDao.java:24)
位于WEBPROJECT.gui.service.service.init(service.java:50)
... 78多
pom的相关部分:

<plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <version>2.8</version>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>copy</goal>
                        </goals>
                        <configuration>
                            <artifactItems>
                                <artifactItem>
                                    <groupId>com.github.jsimone</groupId>
                                    <artifactId>webapp-runner</artifactId>
                                    <version>8.5.11.2</version>
                                    <destFileName>webapp-runner.jar</destFileName>
                                </artifactItem>
                            </artifactItems>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-core</artifactId>
               <version>2.8.2</version>
        </dependency>
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-core</artifactId>
            <version>5.2.10.Final</version>
        </dependency>
        <dependency>
            <groupId>javax</groupId>
            <artifactId>javaee-api</artifactId>
            <version>7.0</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.jboss.weld.servlet</groupId>
            <artifactId>weld-servlet</artifactId>
            <version>2.2.14.Final</version>
        </dependency>

        <!-- JSF api and impl -->
        <dependency>
            <groupId>com.sun.faces</groupId>
            <artifactId>jsf-api</artifactId>
            <version>2.2.12</version>
        </dependency>
        <dependency>
            <groupId>com.sun.faces</groupId>
            <artifactId>jsf-impl</artifactId>
            <version>2.2.12</version>
        </dependency>

        <!-- servlet provided by tomcat -->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>3.1.0</version>
            <scope>provided</scope>
        </dependency>

org.apache.maven.plugins

可能是版本冲突,但对于maven tree,我什么也看不到(例如双罐子)

也许heroku不支持Hibernate 5.x

谢谢你的帮助, 致以最诚挚的问候编辑:

正如在最初的帖子中编辑的那样,问题仍然存在,只是通过向下和向上缩放dynos得到临时修复

旧职位:

我自己“解决”了

当我通过heroku cli尝试使用maven插件时,我正在部署war

heroku war:deploy
它奏效了——我说不出原因,但也许它会帮助其他人