- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试使用 JNDI 连接 mysql。但它显示异常
javax.naming.NoInitialContextException:需要在环境或系统属性中指定类名,或者作为小程序参数,或者在应用程序资源文件中指定类名:
查看我的代码:
VendorDataSource vds = new VendorDataSource();
vds.setServerName("localhost");
vds.setDatabaseName("jnditest");
vds.setDescription("The data source for inventory and personnel");
try {
ctx = new InitialContext();
ctx.bind("jdbc/myds", vds);
} catch (NamingException e1) {
e1.printStackTrace();
}
try {
ctx = new InitialContext();
DataSource ds = (DataSource)ctx.lookup("jdbc/myds");
Connection conn = ds.getConnection("root", "password");
} catch (NamingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
错误消息:
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.bind(Unknown Source)
at samplemariadb.DataSourceConnectivity.main(DataSourceConnectivity.java:33)
最佳答案
通常您需要指定从哪里获取InitialContext(以及您将使用的jndi树位于何处)
您可以通过两种方式做到这一点:
Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY,
"<initialContextFactory>");
env.put(Context.PROVIDER_URL, "<url>");
env.put(Context.SECURITY_PRINCIPAL, "<user>");
env.put(Context.SECURITY_CREDENTIALS, "<password>");
ctx = new InitialContext(env);
或者创建一个 jndi.properties 并将其放置在您的类路径中:
java.naming.factory.initial=<initialContextFactory>
java.naming.provider.url=<url>
java.naming.security.principal=<user>
java.naming.security.credentials=<password>
在您的情况下,它会提示,因为缺少 INITIAL_CONTEXT_FACTORY (这取决于您使用的 Java EE 服务器)。
希望对你有帮助
关于使用 JNDI 的 javax.naming.NoInitialContextException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13267891/
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 中指定],除了登录后我的代码无法实际
我是一名优秀的程序员,十分优秀!