- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 Hibernate 制作一个简单的应用程序。我创建了 hibernate.cfg.xml 和映射文件 Personne.hbm.xml。一旦我启动它,我就会得到一个异常 javax.naming.NoInitialContextException:需要在环境或系统属性中指定类名...
详细:我收到的错误是这样的:
14 [main] INFO org.hibernate.cfg.Environment - Hibernate 3.3.2.GA
16 [main] INFO org.hibernate.cfg.Environment - hibernate.properties not found
20 [main] INFO org.hibernate.cfg.Environment - Bytecode provider name : javassist
25 [main] INFO org.hibernate.cfg.Environment - using JDK 1.4 java.sql.Timestamp handling
83 [main] INFO org.hibernate.cfg.Configuration - configuring from resource: /hibernate.cfg.xml
83 [main] INFO org.hibernate.cfg.Configuration - Configuration resource: /hibernate.cfg.xml
170 [main] INFO org.hibernate.cfg.Configuration - Reading mappings from resource : bean/Personne.hbm.xml
223 [main] INFO org.hibernate.cfg.HbmBinder - Mapping class: bean.Personne -> PERSONNES
238 [main] INFO org.hibernate.cfg.Configuration - Configured SessionFactory: java:hibernate/SessionFactory
292 [main] INFO org.hibernate.connection.DriverManagerConnectionProvider - Using Hibernate built-in connection pool (not for production use!)
292 [main] INFO org.hibernate.connection.DriverManagerConnectionProvider - Hibernate connection pool size: 1
292 [main] INFO org.hibernate.connection.DriverManagerConnectionProvider - autocommit mode: false
300 [main] INFO org.hibernate.connection.DriverManagerConnectionProvider - using driver: com.mysql.jdbc.Driver at URL: jdbc:mysql://localhost:3306/Gestion_BD_Personne
300 [main] INFO org.hibernate.connection.DriverManagerConnectionProvider - connection properties: {user=Gestion_user, password=****}
600 [main] INFO org.hibernate.cfg.SettingsFactory - RDBMS: MySQL, version: 5.1.32-community
600 [main] INFO org.hibernate.cfg.SettingsFactory - JDBC driver: MySQL Connector Java, version: mysql-connector-java-5.1.39 ( Revision: 3289a357af6d09ecc1a10fd3c26e95183e5790ad )
618 [main] INFO org.hibernate.dialect.Dialect - Using dialect: org.hibernate.dialect.MySQLDialect
621 [main] INFO org.hibernate.transaction.TransactionFactoryFactory - Using default transaction strategy (direct JDBC transactions)
623 [main] INFO org.hibernate.transaction.TransactionManagerLookupFactory - No TransactionManagerLookup configured (in JTA environment, use of read-write or transactional second-level cache is not recommended)
623 [main] INFO org.hibernate.cfg.SettingsFactory - Automatic flush during beforeCompletion(): disabled
623 [main] INFO org.hibernate.cfg.SettingsFactory - Automatic session close at end of transaction: disabled
623 [main] INFO org.hibernate.cfg.SettingsFactory - JDBC batch size: 15
623 [main] INFO org.hibernate.cfg.SettingsFactory - JDBC batch updates for versioned data: disabled
624 [main] INFO org.hibernate.cfg.SettingsFactory - Scrollable result sets: enabled
624 [main] INFO org.hibernate.cfg.SettingsFactory - JDBC3 getGeneratedKeys(): enabled
624 [main] INFO org.hibernate.cfg.SettingsFactory - Connection release mode: auto
625 [main] INFO org.hibernate.cfg.SettingsFactory - Maximum outer join fetch depth: 2
625 [main] INFO org.hibernate.cfg.SettingsFactory - Default batch fetch size: 1
625 [main] INFO org.hibernate.cfg.SettingsFactory - Generate SQL with comments: disabled
625 [main] INFO org.hibernate.cfg.SettingsFactory - Order SQL updates by primary key: disabled
625 [main] INFO org.hibernate.cfg.SettingsFactory - Order SQL inserts for batching: disabled
625 [main] INFO org.hibernate.cfg.SettingsFactory - Query translator: org.hibernate.hql.ast.ASTQueryTranslatorFactory
627 [main] INFO org.hibernate.hql.ast.ASTQueryTranslatorFactory - Using ASTQueryTranslatorFactory
627 [main] INFO org.hibernate.cfg.SettingsFactory - Query language substitutions: {}
627 [main] INFO org.hibernate.cfg.SettingsFactory - JPA-QL strict compliance: disabled
627 [main] INFO org.hibernate.cfg.SettingsFactory - Second-level cache: enabled
627 [main] INFO org.hibernate.cfg.SettingsFactory - Query cache: disabled
629 [main] INFO org.hibernate.cfg.SettingsFactory - Cache region factory : org.hibernate.cache.impl.bridge.RegionFactoryCacheProviderBridge
630 [main] INFO org.hibernate.cache.impl.bridge.RegionFactoryCacheProviderBridge - Cache provider: org.hibernate.cache.NoCacheProvider
630 [main] INFO org.hibernate.cfg.SettingsFactory - Optimize cache for minimal puts: disabled
630 [main] INFO org.hibernate.cfg.SettingsFactory - Structured second-level cache entries: disabled
632 [main] INFO org.hibernate.cfg.SettingsFactory - Echoing all SQL to stdout
633 [main] INFO org.hibernate.cfg.SettingsFactory - Statistics: disabled
633 [main] INFO org.hibernate.cfg.SettingsFactory - Deleted entity synthetic identifier rollback: disabled
633 [main] INFO org.hibernate.cfg.SettingsFactory - Default entity-mode: pojo
633 [main] INFO org.hibernate.cfg.SettingsFactory - Named query checking : enabled
680 [main] INFO org.hibernate.impl.SessionFactoryImpl - building session factory
831 [main] INFO org.hibernate.impl.SessionFactoryObjectFactory - Factory name: java:hibernate/SessionFactory
831 [main] INFO org.hibernate.util.NamingHelper - JNDI InitialContext properties:{}
833 [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(NamingManager.java:662)
at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:313)
at javax.naming.InitialContext.getURLOrDefaultInitCtx(InitialContext.java:350)
at javax.naming.InitialContext.getNameParser(InitialContext.java:505)
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:348)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1341)
at util.HibernateUtil.<clinit>(HibernateUtil.java:12)
at manager.PersonneManager.ajouterPersonne(PersonneManager.java:12)
at test.TestMain.main(TestMain.java:14)
840 [main] INFO org.hibernate.tool.hbm2ddl.SchemaExport - Running hbm2ddl schema export
840 [main] INFO org.hibernate.tool.hbm2ddl.SchemaExport - exporting generated schema to database
1564 [main] INFO org.hibernate.tool.hbm2ddl.SchemaExport - schema export complete
Hibernate: select max(id_personne) from PERSONNES
Hibernate: insert into PERSONNES (nom_personne, prenom_personne, tel_personne, email_personne, id_personne) values (?, ?, ?, ?, ?)
Hibernate: insert into PERSONNES (nom_personne, prenom_personne, tel_personne, email_personne, id_personne) values (?, ?, ?, ?, ?)
Hibernate: insert into PERSONNES (nom_personne, prenom_personne, tel_personne, email_personne, id_personne) values (?, ?, ?, ?, ?)
1683 [main] INFO org.hibernate.impl.SessionFactoryImpl - closing
1684 [main] INFO org.hibernate.connection.DriverManagerConnectionProvider - cleaning up connection pool: jdbc:mysql://localhost:3306/Gestion_BD_Personne
1685 [main] INFO org.hibernate.impl.SessionFactoryObjectFactory - Unbinding factory from JNDI name: java:hibernate/SessionFactory
1685 [main] INFO org.hibernate.util.NamingHelper - JNDI InitialContext properties:{}
1685 [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
at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:662)
at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:313)
at javax.naming.InitialContext.getURLOrDefaultInitCtx(InitialContext.java:350)
at javax.naming.InitialContext.unbind(InitialContext.java:441)
at org.hibernate.impl.SessionFactoryObjectFactory.removeInstance(SessionFactoryObjectFactory.java:139)
at org.hibernate.impl.SessionFactoryImpl.close(SessionFactoryImpl.java:894)
at test.TestMain.main(TestMain.java:18)
hibernate.cfg.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<!-- a SessionFactory instance listed as /jndi/name -->
<session-factory
name="java:hibernate/SessionFactory">
<!-- properties -->
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql://localhost:3306/Gestion_BD_Personne</property>
<property name="connection.username">Gestion_user</property>
<property name="connection.password">user</property>
<property name="connection.pool_size">1</property>
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="current_session_context_class">thread</property>
<property name="cache.provider_class">hibernate.cache.NoCacheProvider</property>
<property name="show_sql">true</property>
<property name="hbm2ddl.auto">create</property>
<!-- mapping files -->
<mapping resource="bean/Personne.hbm.xml"/>
</session-factory>
</hibernate-configuration>
人员.hbm.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="bean.Personne" table="PERSONNES">
<id name="id" column="id_personne" >
<generator class="increment" />
</id>
<property name="nom" column="nom_personne" />
<property name="prenom" column="prenom_personne" />
<property name="tel" column="tel_personne" />
<property name="email" column="email_personne" />
</class>
</hibernate-mapping>
HibernateUtil.java
package util;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
public class HibernateUtil {
public static final SessionFactory sessionFactory;
static {
try {
sessionFactory = new Configuration().configure().buildSessionFactory();
} catch (Throwable ex) {
System.out.println("Creation du sessionFactory a échoué"+ex);
throw new ExceptionInInitializerError(ex);
}
}
public static SessionFactory getSessionFactory() {
return sessionFactory;
}
}
TestMain.java
package test;
import manager.PersonneManager;
import util.HibernateUtil;
public class TestMain {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
PersonneManager personneManager = new PersonneManager();
personneManager.ajouterPersonne("nom1", "prenom1", "tel1", "email1");
personneManager.ajouterPersonne("nom2", "prenom2", "tel2", "email2");
personneManager.ajouterPersonne("nom3", "prenom3", "tel3", "email3");
HibernateUtil.sessionFactory.close();
}
}
最佳答案
既然你说你刚刚开始学习Hibernate,我想你并没有刻意尝试创建一个JNDI绑定(bind)的SessionFactory:
<session-factory
name="java:hibernate/SessionFactory">
我可以看到这是来自 Hibernate 官方文档的副本。作者在那里解释说,通过此命名,您将把 SessionFactory 绑定(bind)到 JNDI 上下文。这正是对你不起作用的,因为你还没有配置它。对您来说最简单的解决方案实际上只是删除名称参数并停止尝试进行绑定(bind)。
关于javax.naming.NoInitialContextException : Need to specify class name in environment or system property,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39808771/
getConnection 异常 javax.naming.NoInitialContextException:需要在环境或系统属性中指定类名,或者作为小程序参数,或者在应用程序资源文件中指定类名:j
我正在为我的 EJB 编写一个客户端,在尝试执行它时,我得到以下异常: javax.naming.NoInitialContextException: Need to specify class na
我一直试图在这里找到解决方案,但我不能...我有以下代码,但出现此错误。 我错过了什么吗?谢谢:) 代码 package src; import java.sql.DriverManager; imp
这个问题在这里已经有了答案: The meaning of NoInitialContextException error (13 个答案) 关闭 6 年前。 这是我的代码: import java
有人可以告诉我为什么会出现以下错误吗? javax.naming.NoInitialContextException: Need to specify class name in environmen
我们拥有在 Servicemix 5 上完美运行的 osgi 应用程序。但由于某些原因,我们必须迁移到 Servicemix 4.5。我尝试了一下,得到了这个 Error parsing SQL Ma
我需要将 java 应用程序连接到 MBean 服务器,但我在使 JMXConnector 工作时遇到问题。 当我尝试运行此命令时,出现 NoInitialContextException: try
对于学校,他们让我们通过普通的旧 dao 和 tomcat 连接到 postgresDB。但是,给定的代码无法正常工作,我现在已经被困在这里很长一段时间了。 就这样吧。 给定的connectionda
我有一个使用 JNDI 的应用程序,首先它可以工作,在我创建一个新项目后,由于与 SVN 冲突,它现在抛出 NoInitialContextException。 这是它抛出的异常: NoInitial
我在 Tomcat 服务器上有一个带有 Java Servlet 的网络服务。在我的 Servlet 中,我使用这样的数据库池: envContext = new InitialContext();
这个问题在这里已经有了答案: The meaning of NoInitialContextException error (13 个答案) 关闭 9 年前。 如标题所示,“javax.naming
我正在使用 Apache Commons 电子邮件 API 尝试以下代码,它在上下文中抛出错误。有什么帮助吗? 导入java.util.Properties; 导入 javax.mail.Passwo
我是 Hibernate 新手。使用 Eclipse indigo 中的 Hibernate 3.0。 这里讨论了这个话题,答案没有帮助,Hibernate: javax.naming.NoIniti
尝试连接到 MySQL 数据库 MysqlDataSource mysqlDs = new MysqlDataSource(); Properties prop = new Properties();
我正在尝试使用 JNDI 连接 mysql。但它显示异常 javax.naming.NoInitialContextException:需要在环境或系统属性中指定类名,或者作为小程序参数,或者在应用程
我想在 Jetty 6 中使用连接池,但到目前为止它给我带来了很多麻烦。 我愿意 InitialContext context = new InitialContext(); 它没有抛出异常,但是当我
我目前面临的问题是,我将 api 打包为 WAR(使用 eclipse + maven)后无法在 Jetty 上启动。从 Eclipse 启动时工作正常。 我查看了 Jetty 的日志并发现: org
我正在尝试编写一个 JMS 应用程序,我使用 glassFish 管理页面构建了一个 ConnectionFactory 和 Qeueu,我想知道如何让我的应用程序知道服务器上构建的 jndi 以便能
我正在使用 cargo maven 插件将我的 .war 部署到 Tomcat 8 实例以进行集成测试。该应用程序是一个基于 jersey 的 REST web 界面。我的问题出现在底层数据库连接池中
我有一个 JSF 网络应用程序,我想使用嵌入式 tomcat 运行它。到目前为止它一直在工作 [包括 JDBCRealm,在以下代码片段的 context.xml 中指定],除了登录后我的代码无法实际
我是一名优秀的程序员,十分优秀!