无法实例化类:org.apache.naming.java.javaURLContextFactory

2023-11-25

我正在研究 Junit 测试文件,该文件加载 SQL 文件并将其加载到 Oracle 中:

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;
import oracle.jdbc.pool.OracleConnectionPoolDataSource;
import org.junit.BeforeClass;
import org.junit.Test;

public class OracleCreateScheme1
{

    public OracleCreateScheme1()
    {
    }

    @BeforeClass
    public static void setUpClass() throws Exception
    {
        // rcarver - setup the jndi context and the datasource
        try
        {
            // Create initial context
            System.setProperty(Context.INITIAL_CONTEXT_FACTORY,
                    "org.apache.naming.java.javaURLContextFactory");
            System.setProperty(Context.URL_PKG_PREFIXES,
                    "org.apache.naming");
            InitialContext ic = new InitialContext();

            ic.createSubcontext("java:");
            ic.createSubcontext("java:/comp");
            ic.createSubcontext("java:/comp/env");
            ic.createSubcontext("java:/comp/env/jdbc");

            // Construct DataSource
            OracleConnectionPoolDataSource ds = new OracleConnectionPoolDataSource();
            ds.setURL("jdbc:oracle:thin:@192.168.1.104:1521:oracle");
            ds.setUser("admin");
            ds.setPassword("qwerty");

            ic.bind("java:/comp/env/jdbc/oracle", ds);
        }
        catch (NamingException ex)
        {
            //Logger.getLogger(MyDAOTest.class.getName()).log(Level.SEVERE, null, ex);
        }

    }

    @Test
    public void createOracleScheme() throws SQLException, NamingException
    {

        Context initContext = new InitialContext();
        Context webContext = (Context) initContext.lookup("java:/comp/env");

        DataSource ds = (DataSource) webContext.lookup("jdbc/Oracle");

        // Read File ------------------------------------------------------------------

        String s = new String();
        StringBuffer sb = new StringBuffer();

        try
        {
            FileReader fr = new FileReader(new File("OracleScheme.sql"));

            BufferedReader br = new BufferedReader(fr);

            while ((s = br.readLine()) != null)
            {
                sb.append(s);
            }
            br.close();

            // here is our splitter ! We use ";" as a delimiter for each request
            // then we are sure to have well formed statements
            String[] inst = sb.toString().split(";");

            Connection c = ds.getConnection();
            Statement st = c.createStatement();

            for (int i = 0; i < inst.length; i++)
            {
                // we ensure that there is no spaces before or after the request string
                // in order to not execute empty statements
                if (!inst[i].trim().equals(""))
                {
                    st.executeUpdate(inst[i]);
                    System.out.println(">>" + inst[i]);
                }
            }

        }
        catch (Exception e)
        {
            System.out.println("*** Error : " + e.toString());
            System.out.println("*** ");
            System.out.println("*** Error : ");
            e.printStackTrace();
            System.out.println("################################################");
            System.out.println(sb.toString());
        }

    }
}

当我测试该文件时,我遇到这个问题:

Cannot instantiate class: org.apache.naming.java.javaURLContextFactory

你能告诉我如何解决这个问题吗?您还发现这段 Java 代码有什么问题吗?


我通过将 Apache Tomcat 中的库添加到运行时测试库来修复此问题。

在 Netbeans 中:

Project Properties -> Libraries -> Run Tests

Add JAR/Folder

我需要的两个库是catalina.jar and tomcat-juli.jar。您的里程可能会有所不同。

我在Tomcat的安装目录下找到了它们。例如:

apache-tomcat-7.0.34/bin/tomcat-juli.jar
apache-tomcat-7.0.34/lib/catalina.jar

注意其中一个罐子在bin目录中,另一个在lib目录

这可能不是解决您的问题的最佳方法。最好有不同的注入方式DataSource.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法实例化类:org.apache.naming.java.javaURLContextFactory 的相关文章

随机推荐

  • 如果文件名为 _ViewStart.cshtml,Razor 布局将不起作用

    我有一个 MVC3 Web 应用程序 我想开始使用整个 Razor 视图 该网站的大部分内容都可以与 Site Master 配合使用 因此我已将其大部分内容打包到部分视图中 并尝试添加具有相同内容的布局 阅读 Scott Gu 的博客后
  • 如何在运行时轻松地在 PyQt 或 PySide 之间进行选择?

    我想在一个源文件 QT py 中执行类似的操作 import sys import PyQt4 sys modules Qt PyQt4 然后将此文件导入到其他源文件中 并像这样使用它 import QT from Qt QtCore im
  • 没有外部“C”的动态加载

    我想一般使用 libdl 动态加载 C 问题是在运行时识别名称已被破坏的符号 如此处所述 一种解决方案是使用 extern C 删除名称修饰 http www tldp org HOWTO C dlopen theproblem html
  • 编辑模式下的自定义 UITableViewCell 不会移动我的 UILabels

    这让我很头疼 我有一个功能齐全的 CoreData PopulatedUITableView里面一个UIViewController我已经成功实现了 滑动删除选项 这很容易 我还可以使用出现红色圆圈的编辑按钮删除单个实例 我的问题是 我认为
  • CryptoJS AES 加密和 Java AES 解密

    我之所以问这个问题 是因为我这两天读了很多关于加密 AES 加密的文章 就在我以为我明白了的时候 我意识到我根本没有明白 这篇文章是与我的问题最接近的一篇 我有完全相同的问题 但尚未得到解答 CryptoJS AES 加密与 JAVA AE
  • 在 ASP.NET MVC Core 中显示/编辑货币,为什么这么复杂?

    在 ASP NET Core 2 0 应用程序中 我有一个Foo与 一起上课a lot经典字符串或数字成员以及int Budget field using Microsoft AspNetCore Http using System usi
  • jQuery-File-Upload 在 Internet Explorer (IE9) 中未触发完成回调

    我检查了有关同一问题的一些问题 blueimp jquery 文件上传 完成 完成 回调不适用于 IE 9 但即使将我的 Content Type 设置为 text html 作为响应 done 回调也不会被触发 另外 正如 jQuery
  • 在 Python 中嵌入 Matplotlib 动画(谷歌 colab 笔记本)

    我正在尝试在 google 的 colab research 中显示 gif 文件 我能够将文件保存在具有以下路径名的目录中 content BrowniamMotion gif但我不知道如何在我的笔记本中显示这个 GIF 来呈现 到目前为
  • 如何将 JCIFS 与 apache VFS 结合使用来访问 SMB URL?

    我正在尝试使用 smb URL 访问本地计算机上的文件夹 我的项目正在使用 jar commons vfs2 2 0 jar 和 jcifs 1 3 17 jar 以及所有其他所需的 jar 完整的代码是 public static voi
  • 谁能通俗地解释一下 JSONP 是什么? [复制]

    这个问题在这里已经有答案了 I know JSONP is JSON带衬垫 我了解 JSON 是什么以及如何使用它jQuery getJSON 不过我不太明白这个概念callback在引入JSONP时 谁能向我解释这是如何工作的 Prefa
  • 在连接的 iPhone 上启动已安装的应用程序

    我正在尝试为一些 iOS 应用程序推出自动化测试解决方案 我正在使用fruitstrap将编译的应用程序传输并安装到连接的iPhone上 但我正在努力寻找一种在安装完成后自动启动应用程序的方法 Fruitstrap 有一个在 GDB 调试器
  • 有谁知道好的ajax脚本加载器

    有谁知道ajax脚本加载器 它允许延迟加载js和css文件 并且还包含可以在外部脚本中定义的依赖项列表 为什么不使用http unwrongest com projects lazy
  • 从 Rails 的 HTML 页面生成 PDF [关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 我正在寻找一个将 HTML 视图页面从 Rails 转换为 PDF 的工具 我希望样式保持完整并且应该能够识别 CSS 样式 我听说过 Prince XML 和 Wicked PDF
  • 如何实现 ExecutorService 来轮流执行任务?

    我在用着java util concurrent ExecutorService with 固定线程池执行任务列表 我的任务列表通常约为 80 150 个 并且我将任何时间运行的线程数限制为 10 个 如下所示 ExecutorServic
  • 2个类可以共享一个好友功能吗?

    今天我对好友功能有疑问 两个类可以有相同的友元函数吗 说个例子friend void f1 在 A 类和 B 类中声明 这可能吗 如果是这样 函数 f1 可以访问两个类的成员吗 一个例子可以最好地解释这一点 class B defined
  • 如何使用 PHP GD 库向图像添加文本

    我在 image creator 中有图像创建代码 图像输出的文件是 image php 并具有以下代码
  • 在 github 存储库中搜索定义给定函数的文件

    我想搜索 github 上的公共存储库以查找软件定义给定函数的位置 使用高级搜索似乎应该很简单 不确定我是否不理解过滤器或者函数是否未定义 例如 假设我想找到 Hadley 的位置facet wrap函数在 ggplot2 存储库中定义 它
  • 防止 WinForm AcceptButton 处理 Return 键

    我有一个带有按钮的表单AcceptButton属性 以便在用户按 Return 键时发生逻辑并关闭表单 在该表单上 我显示一个动态创建的TextBox当用户双击某个区域时出现 然后当用户按回车键时隐藏 当用户按下 Return 键时 如何防
  • 在 OS X 上创建类似窗口的菜单

    我想创建一个相同类型的托盘菜单 例如这个应用程序 因为它在使用node webkit nw js的应用程序列表中 所以我认为这是可能的 我浏览了所有文档 但找不到任何有关如何实现这一目标的信息 谷歌搜索也没有什么结果 也许你们中的一个人以前
  • 无法实例化类:org.apache.naming.java.javaURLContextFactory

    我正在研究 Junit 测试文件 该文件加载 SQL 文件并将其加载到 Oracle 中 import java io BufferedReader import java io File import java io FileReader