Hibernate 无法将工厂绑定到JNDI。需要在环境或系统属性中指定类名
嗨 我正在尝试运行一个导入的开源软件,但运行之后我遇到了一个错误:它让我发疯了。这是一个巨大的项目,我不知道从哪里开始Hibernate 无法将工厂绑定到JNDI。需要在环境或系统属性中指定类名,hibernate,Hibernate,嗨 我正在尝试运行一个导入的开源软件,但运行之后我遇到了一个错误:它让我发疯了。这是一个巨大的项目,我不知道从哪里开始 Running test.hibernate.softdelete.jointablewhere.SoftDeleteAssociationTest main INFO [org.hibernate.cfg.Configuration] - configuring from resource: softdelete/softdelete-hibernate.cfg.xml m
Running test.hibernate.softdelete.jointablewhere.SoftDeleteAssociationTest
main INFO [org.hibernate.cfg.Configuration] - configuring from resource: softdelete/softdelete-hibernate.cfg.xml
main INFO [org.hibernate.cfg.Configuration] - Configuration resource: softdelete/softdelete-hibernate.cfg.xml
main INFO [org.hibernate.cfg.Configuration] - Configured SessionFactory: java:hibernate/SessionFactory
main INFO [org.hibernate.cfg.AnnotationBinder] - Binding entity from annotated class: test.hibernate.softdelete.jointablewhere.Parent
main INFO [org.hibernate.cfg.annotations.EntityBinder] - Bind entity test.hibernate.softdelete.jointablewhere.Parent on table Parent
main INFO [org.hibernate.cfg.AnnotationBinder] - Binding entity from annotated class: test.hibernate.softdelete.jointablewhere.Child
main INFO [org.hibernate.cfg.annotations.EntityBinder] - Bind entity test.hibernate.softdelete.jointablewhere.Child on table Child
main INFO [org.hibernate.cfg.search.HibernateSearchEventListenerRegister] - Unable to find org.hibernate.search.event.FullTextIndexEventListener on the classpath. Hibernate Search is not enabled.
main INFO [org.hibernate.connection.DriverManagerConnectionProvider] - Using Hibernate built-in connection pool (not for production use!)
main INFO [org.hibernate.connection.DriverManagerConnectionProvider] - Hibernate connection pool size: 20
main INFO [org.hibernate.connection.DriverManagerConnectionProvider] - autocommit mode: false
main INFO [org.hibernate.connection.DriverManagerConnectionProvider] - using driver: org.h2.Driver at URL: jdbc:h2:mem:softdelete
main INFO [org.hibernate.connection.DriverManagerConnectionProvider] - connection properties: {user=sa, password=****}
main INFO [org.hibernate.dialect.Dialect] - Using dialect: org.hibernate.dialect.H2Dialect
main INFO [org.hibernate.engine.jdbc.JdbcSupportLoader] - Disabling contextual LOB creation as JDBC driver reported JDBC version [3] less than 4
main INFO [org.hibernate.cfg.SettingsFactory] - Database ->
name : H2
version : 1.2.144 (2010-10-15)
major : 1
minor : 2
main INFO [org.hibernate.cfg.SettingsFactory] - Driver ->
name : H2 JDBC Driver
version : 1.2.144 (2010-10-15)
major : 1
minor : 2
main INFO [org.hibernate.transaction.TransactionFactoryFactory] - Using default transaction strategy (direct JDBC transactions)
main INFO [org.hibernate.transaction.TransactionManagerLookupFactory] - No TransactionManagerLookup configured (in JTA environment, use of read-write or transactional second-level cache is not recommended)
main INFO [org.hibernate.cfg.SettingsFactory] - Automatic flush during beforeCompletion(): disabled
main INFO [org.hibernate.cfg.SettingsFactory] - Automatic session close at end of transaction: disabled
main INFO [org.hibernate.cfg.SettingsFactory] - JDBC batch size: 15
main INFO [org.hibernate.cfg.SettingsFactory] - JDBC batch updates for versioned data: disabled
main INFO [org.hibernate.cfg.SettingsFactory] - Scrollable result sets: enabled
main INFO [org.hibernate.cfg.SettingsFactory] - JDBC3 getGeneratedKeys(): enabled
main INFO [org.hibernate.cfg.SettingsFactory] - Connection release mode: auto
main INFO [org.hibernate.cfg.SettingsFactory] - Default batch fetch size: 1
main INFO [org.hibernate.cfg.SettingsFactory] - Generate SQL with comments: disabled
main INFO [org.hibernate.cfg.SettingsFactory] - Order SQL updates by primary key: disabled
main INFO [org.hibernate.cfg.SettingsFactory] - Order SQL inserts for batching: disabled
main INFO [org.hibernate.cfg.SettingsFactory] - Query translator: org.hibernate.hql.ast.ASTQueryTranslatorFactory
main INFO [org.hibernate.hql.ast.ASTQueryTranslatorFactory] - Using ASTQueryTranslatorFactory
main INFO [org.hibernate.cfg.SettingsFactory] - Query language substitutions: {}
main INFO [org.hibernate.cfg.SettingsFactory] - JPA-QL strict compliance: disabled
main INFO [org.hibernate.cfg.SettingsFactory] - Second-level cache: enabled
main INFO [org.hibernate.cfg.SettingsFactory] - Query cache: disabled
main INFO [org.hibernate.cfg.SettingsFactory] - Cache region factory : org.hibernate.cache.impl.NoCachingRegionFactory
main INFO [org.hibernate.cfg.SettingsFactory] - Optimize cache for minimal puts: disabled
main INFO [org.hibernate.cfg.SettingsFactory] - Structured second-level cache entries: disabled
main INFO [org.hibernate.cfg.SettingsFactory] - Statistics: disabled
main INFO [org.hibernate.cfg.SettingsFactory] - Deleted entity synthetic identifier rollback: disabled
main INFO [org.hibernate.cfg.SettingsFactory] - Default entity-mode: pojo
main INFO [org.hibernate.cfg.SettingsFactory] - Named query checking : enabled
main INFO [org.hibernate.cfg.SettingsFactory] - Check Nullability in Core (should be disabled when Bean Validation is on): disabled
main INFO [org.hibernate.impl.SessionFactoryImpl] - building session factory
main INFO [org.hibernate.impl.SessionFactoryObjectFactory] - Factory name: java:hibernate/SessionFactory
main INFO [org.hibernate.util.NamingHelper] - JNDI InitialContext properties:{}
main WARN [org.hibernate.impl.SessionFactoryObjectFactory] - Could not bind factory to JNDI
javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial
at javax.naming.spi.NamingManager.getInitialContext(Unknown Source)
at javax.naming.InitialContext.getDefaultInitCtx(Unknown Source)
at javax.naming.InitialContext.getURLOrDefaultInitCtx(Unknown Source)
at javax.naming.InitialContext.getNameParser(Unknown Source)
at org.hibernate.util.NamingHelper.bind(NamingHelper.java:75)
at org.hibernate.impl.SessionFactoryObjectFactory.addInstance(SessionFactoryObjectFactory.java:113)
at org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:367)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1872)
at org.hibernate.cfg.Configuration$buildSessionFactory.call(Unknown Source)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:40)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:120)
at test.hibernate.softdelete.jointablewhere.SoftDeleteAssociationTest.setup(SoftDeleteAssociationTest.groovy:44)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.spockframework.runtime.BaseSpecRunner.invokeRaw(BaseSpecRunner.java:235)
at org.spockframework.runtime.BaseSpecRunner.invoke(BaseSpecRunner.java:217)
at org.spockframework.runtime.BaseSpecRunner.invokeSetup(BaseSpecRunner.java:198)
at org.spockframework.runtime.BaseSpecRunner.runSimpleFeature(BaseSpecRunner.java:181)
at org.spockframework.runtime.BaseSpecRunner.doRunFeature(BaseSpecRunner.java:174)
at sun.reflect.GeneratedMethodAccessor2.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.spockframework.runtime.BaseSpecRunner.invokeRaw(BaseSpecRunner.java:235)
at org.spockframework.runtime.BaseSpecRunner.invoke(BaseSpecRunner.java:217)
at org.spockframework.runtime.BaseSpecRunner.runFeature(BaseSpecRunner.java:152)
at org.spockframework.runtime.BaseSpecRunner.runFeatures(BaseSpecRunner.java:129)
at org.spockframework.runtime.BaseSpecRunner.doRun(BaseSpecRunner.java:96)
at sun.reflect.GeneratedMethodAccessor30.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.spockframework.runtime.BaseSpecRunner.invokeRaw(BaseSpecRunner.java:235)
at org.spockframework.runtime.BaseSpecRunner.invoke(BaseSpecRunner.java:217)
at org.spockframework.runtime.BaseSpecRunner.run(BaseSpecRunner.java:73)
at org.spockframework.runtime.Sputnik.run(Sputnik.java:57)
at org.junit.runners.Suite.runChild(Suite.java:128)
at org.junit.runners.Suite.runChild(Suite.java:24)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
at org.junit.runner.JUnitCore.run(JUnitCore.java:157)
at org.junit.runner.JUnitCore.run(JUnitCore.java:136)
at org.junit.runner.JUnitCore.run(JUnitCore.java:127)
at org.apache.maven.surefire.junitcore.JUnitCoreWrapper.execute(JUnitCoreWrapper.java:51)
at org.apache.maven.surefire.junitcore.JUnitCoreProvider.invoke(JUnitCoreProvider.java:103)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.maven.surefire.booter.ProviderFactory$ClassLoaderProxy.invoke(ProviderFactory.java:103)
at $Proxy0.invoke(Unknown Source)
at org.apache.maven.surefire.booter.SurefireStarter.invokeProvider(SurefireStarter.java:145)
at org.apache.maven.surefire.booter.SurefireStarter.runSuitesInProcess(SurefireStarter.java:87)
at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:69)
main INFO [org.hibernate.impl.SessionFactoryImpl] - closing
main INFO [org.hibernate.connection.DriverManagerConnectionProvider] - cleaning up connection pool: jdbc:h2:mem:softdelete
main INFO [org.hibernate.impl.SessionFactoryObjectFactory] - Unbinding factory from JNDI name: java:hibernate/SessionFactory
main INFO [org.hibernate.util.NamingHelper] - JNDI InitialContext properties:{}
main WARN [org.hibernate.impl.SessionFactoryObjectFactory] - Could not unbind factory from JNDI
javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial
运行test.hibernate.softdelete.jointablewhere.SoftDeleteAssociationTest
主信息[org.hibernate.cfg.Configuration]-从资源配置:softdelete/softdelete-hibernate.cfg.xml
主信息[org.hibernate.cfg.Configuration]-配置资源:softdelete/softdelete-hibernate.cfg.xml
主信息[org.hibernate.cfg.Configuration]-配置的SessionFactory:java:hibernate/SessionFactory
主信息[org.hibernate.cfg.AnnotationBinder]-来自注释类的绑定实体:test.hibernate.softdelete.jointablewhere.Parent
主信息[org.hibernate.cfg.annotations.EntityBinder]-表父上的绑定实体test.hibernate.softdelete.jointablewhere.Parent
主信息[org.hibernate.cfg.AnnotationBinder]-来自注释类的绑定实体:test.hibernate.softdelete.jointablewhere.Child
主信息[org.hibernate.cfg.annotations.EntityBinder]-绑定实体test.hibernate.softdelete.jointablewhere.Child在表Child上
主信息[org.hibernate.cfg.search.hibernateSarcheventListenerRegister]-在类路径上找不到org.hibernate.search.event.FullTextIndexEventListener。未启用休眠搜索。
主信息[org.hibernate.connection.driverManager ConnectionProvider]-使用hibernate内置连接池(不用于生产!)
主信息[org.hibernate.connection.driverManager连接提供程序]-hibernate连接池大小:20
主信息[org.hibernate.connection.driverManager连接提供程序]-自动提交模式:false
主信息[org.hibernate.connection.DriverManagerConnectionProvider]-在URL:jdbc:h2:mem:softdelete处使用驱动程序:org.h2.driver
主信息[org.hibernate.connection.driverManager ConnectionProvider]-连接属性:{user=sa,password=***}
主要信息[org.hibernate.dialen.dialen]-使用方言:org.hibernate.dialen.h2dialen
主信息[org.hibernate.engine.jdbc.JdbcSupportLoader]-禁用上下文LOB创建,因为jdbc驱动程序报告的jdbc版本[3]小于4
主要信息[org.hibernate.cfg.SettingsFactory]-数据库->
姓名:H2
版本:1.2.144(2010-10-15)
专业:1
小调:2
主信息[org.hibernate.cfg.SettingsFactory]-驱动程序->
名称:H2 JDBC驱动程序
版本:1.2.144(2010-10-15)
专业:1
小调:2
主信息[org.hibernate.transaction.TransactionFactoryFactory]-使用默认事务策略(直接JDBC事务)
主信息[org.hibernate.transaction.TransactionManagerLookupFactory]-未配置TransactionManagerLookup(在JTA环境中,不建议使用读写或事务二级缓存)
主信息[org.hibernate.cfg.SettingsFactory]-在完成前()期间自动刷新:禁用
主信息[org.hibernate.cfg.SettingsFactory]-事务结束时自动关闭会话:禁用
主信息[org.hibernate.cfg.SettingsFactory]-JDBC批量大小:15
主信息[org.hibernate.cfg.SettingsFactory]-版本化数据的JDBC批更新:已禁用
主信息[org.hibernate.cfg.SettingsFactory]-可滚动结果集:已启用
主信息[org.hibernate.cfg.SettingsFactory]-JDBC3 getGeneratedKeys():已启用
主信息[org.hibernate.cfg.SettingsFactory]-连接释放模式:自动
主信息[org.hibernate.cfg.SettingsFactory]-默认批量提取大小:1
主信息[org.hibernate.cfg.SettingsFactory]-生成带有注释的SQL:已禁用
主信息[org.hibernate.cfg.SettingsFactory]-按主键排序SQL更新:已禁用
主信息[org.hibernate.cfg.SettingsFactory]-批处理的顺序SQL插入:禁用
主信息[org.hibernate.cfg.SettingsFactory]-查询转换器:org.hibernate.hql.ast.ASTQueryTranslatorFactory
主信息[org.hibernate.hql.ast.ASTQueryTranslatorFactory]-使用ASTQueryTranslatorFactory
主信息[org.hibernate.cfg.SettingsFactory]-查询语言替换:{}
主信息[org.hibernate.cfg.SettingsFactory]-JPA-QL严格合规性:禁用
主信息[org.hibernate.cfg.SettingsFactory]-二级缓存:已启用
主信息[org.hibernate.cfg.SettingsFactory]-查询缓存:已禁用
主信息[org.hibernate.cfg.SettingsFactory]-缓存区域工厂:org.hibernate.Cache.impl.NoCacheRegionFactory
主信息[org.hibernate.cfg.SettingsFactory]-优化缓存以获得最小输入:已禁用
主信息[org.hibernate.cfg.SettingsFactory]-结构化二级缓存项:禁用
主信息[org.hibernate.cfg.SettingsFactory]-统计信息:已禁用
主信息[org.hibernate.cfg.SettingsFactory]-已删除的实体合成标识符回滚:已禁用
主信息[org.hibernate.cfg.SettingsFactory]-默认实体模式:pojo
主信息[org.hibernate.cfg.SettingsFactory]-命名查询检查:已启用
主信息[org.hibernate.cfg.SettingsFactory]-检查核心中的可空性(当Bean验证打开时应禁用):禁用
主信息[org.hibernate.impl.SessionFactoryImpl]-构建会话工厂
主信息[org.hibernate.impl.SessionFactoryObjectFactory]-工厂名称:java:hibernate/SessionFactory
主信息[org.hibernate.util.NamingHelper]-JNDI InitialContext属性:{}
主警告[org.hibernate.impl.SessionFactoryObjectFactory]-无法将工厂绑定到JNDI
javax.naming.NoInitialContextException:需要在环境或系统属性中指定类名,或作为小程序参数,或在应用程序资源文件中指定类名:java.naming.factory.initial
位于javax.naming.spi.NamingManager.getInitialContext(未知源)
位于javax.naming.InitialContext.getDefaultInitCtx(未知源)
位于javax.naming.InitialContext.getURLOrDefaultInitCtx(未知源)
位于javax.naming.InitialContext.getNameParser(未知源)
位于org.hibernate.util.NamingHelper.bind(NamingHelper.java:75)
在
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<!-- a SessionFactory instance listed as /jndi/name -->
<session-factory name="java:hibernate/SessionFactory">
<!-- properties -->
<property name="connection.url">jdbc:h2:mem:softdelete</property>
<property name="connection.driver">org.h2.Driver</property>
<property name="connection.username">sa</property>
<property name="connection.password">sa</property>
<property name="dialect">org.hibernate.dialect.H2Dialect</property>
<property name="hbm2ddl.auto">create</property>
<property name="hbm2ddl.import_files">softdelete/import.sql</property>
<property name="validator.apply_to_ddl">false</property>
<property name="javax.persistence.validation.mode">none</property>
</session-factory>
</hibernate-configuration>
<session-factory>
<!-- ... -->
</session-factory>