首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

new InitialContext()上的无限递归

new InitialContext()上的无限递归是指在Java中使用InitialContext类的构造函数创建一个新的上下文对象时,可能会出现无限递归的情况。

InitialContext是Java中用于访问命名和目录服务的类,它提供了一种统一的方式来查找和访问各种资源,如数据库连接、消息队列等。在创建InitialContext对象时,它会根据配置文件或者系统属性来确定要使用的上下文工厂类,并通过该工厂类创建一个新的上下文对象。

然而,如果在配置文件或者系统属性中指定的上下文工厂类也使用了InitialContext类的构造函数来创建上下文对象,就会导致无限递归的问题。因为每次创建上下文对象时都会再次调用InitialContext类的构造函数,从而形成一个无限循环。

这种无限递归的问题可能会导致程序崩溃或者陷入死循环,严重影响系统的稳定性和性能。

为了避免这个问题,可以采取以下几种解决方案:

  1. 检查配置文件或者系统属性中指定的上下文工厂类是否正确,确保不会再次调用InitialContext类的构造函数。
  2. 使用其他方式来创建上下文对象,例如使用已经存在的上下文对象进行复制或者克隆。
  3. 使用线程局部变量(ThreadLocal)来保存上下文对象,确保每个线程都有自己独立的上下文对象,避免共享上下文对象导致的无限递归问题。

总结起来,无限递归是指在Java中使用InitialContext类的构造函数创建上下文对象时可能出现的问题,可以通过检查配置、使用其他方式创建上下文对象或者使用线程局部变量来解决。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

无限递归引发的堆栈溢出

今天在写strlen函数的递归实现,当执行以下代码时,会出现段错误。...分析 return 1 + my_strlen(p++),当程序进行递归调用的时候。由于传参为p++即传入p,相当于递归本身,并非移到指向当前字符串下一个字符的位置。...递归函数会陷入无限递归的状态,因为没有递归结束的条件。当操作系统为进程分配的虚拟地址空间当中的栈空间被耗尽时,此时会发生堆栈溢出。因而产生段错误。...在linux操作系统下查看栈空间的大小: ulimit -a可以查看所有默认空间的大小。...查看栈空间的默认大小 : 命令 ulimit -s 可以看到,在我的操作系统下栈空间的默认大小为10MB。 递归的开销实际上是比较大的,在使用时谨防堆栈溢出。注意递归调用结束的条件。

73910

不用递归生成无限层级的树

偶然间,在技术群里聊到生成无限层级树的老话题,故此记录下,n年前一次生成无限层级树的解决方案 业务场景 处理国家行政区域的树,省市区,最小颗粒到医院,后端回包平铺数据大小1M多,前端处理数据后再渲染...,卡顿明显 后端返回的数据结构 [ { "id": 1, "name": "中华人民共和国", "parentId": 0, }, {...常规处理方式 // 略,网上一抓一把 第二版:非递归处理树 改进版处理方式 const buildTree = (itemArray, { id = 'id', parentId = 'parentId...id', parentId = 'parentId', children = 'children', topLevelId = '0' } = {}) => { const parentMap = new...topLevelId)) { topLevelResult.push(item) } } return topLevelResult; } 时间复杂度:O(n) x下篇分享不用递归无限层级树取交集

1.1K20
  • 周而复始,往复循环,递归、尾递归算法与无限极层级结构的探究和使用(Golang1.18)

    ,用来跳出无限递归的循环: package main import ( "fmt" ) func story(n int) int { if n <= 0 { return 0 } return...,对于递归函数,栈上可能同时存在多个函数帧。...这也就是说函数调用出现在调用者函数的尾部,因为是尾部,所以其有一个优越于传统递归之处在于无需去保存任何局部变量,从内存消耗上,实现节约特性: package main import ( "fmt"...递归应用场景    在实际工作中,我们当然不会使用递归讲故事或者只是为了计算高斯求和,大部分时间,递归算法会出现在迭代未知高度的层级结构中,即所谓的“无限极”分类问题: package main import...:使用Python3.7+Django2.0.4配合vue.js2.0的组件递归来实现无限级分类(递归层级结构) 有异曲同工之处,但很显然,使用结构体的Golang代码可读性更高。

    1.3K60

    使用Python3.7+Django2.0.4配合vue.js2.0的组件递归来实现无限级分类(递归层级结构)

    所谓的无限极分类是啥?...其实简单点说就是一个人类可以繁衍出多个后代,然后一个后代又可以分另外多个后代这样无限繁衍下去(可以想象神奇动物在哪里2里面莱斯特兰奇的家族族谱),就好象linux系统你可以新建一个文件夹,然后在这个文件夹里又可以建一些个文件夹...json的形式返回前端,前端使用vue的组件递归来展示数据。    ...,所以我们提前写好一个用来递归的方法: def xTree(datas): lists=[] tree={} parent_id='' for i in datas:...:     当然了,vue组件也可以间接的调用自己实现递归,这涉及到组件之间的循环引用,这样比较麻烦,可读性也间接的降低了不少。

    68210

    设计博客系统的架构思考(上)——动态的无限可能性

    由我们的Front controller来处理由客户端(浏览器)发过来的请求,实际上这里的Front controller是DispatcherServlet。...2Django MTV 我使用Django差不多有四年了,主要是用在我的博客上。与MVC模式一对比,我发现Django在分层上还是很有鲜明特性的: ?...这样做可以从代码上直接减少逻辑的思考,让我们可以更加集中注意力于业务实现,同时也利于我们后期维护。 虽是如此,后来我意识到了这样的架构并没有在意识有太多的先进之处。...而这实际上是一个美好但是不现实的东西,因为我们还是使用同一个数据库。 4微服务与Reactive 在微服务架构中,它提倡将单一应用程序划分成一组小的服务,这些服务之间互相协调、互相配合。...每个服务运行在其独立的进程中,服务与服务间采用轻量级的通信机制互相沟通。每个服务都应该有自己独立的数据库来存储数据。 ? Django从某种意义上有点接近微服务的概念,只是实际上并没有。

    887100

    独家 | 综述:情感树库上语义组合的递归深层模型

    本文运用这个思想,计算短语的向量表示,然后将其用作情感分类的特征。从直觉上讲,这是有道理的,因为单词放在一起考虑时的意思可能是不同的,单词单独考虑时的意思也可能是不同的。...以递归的方式计算双亲节点的组合函数 c)模型的递归性质: 用于该任务的模型是以递归的方式进行应用的。首先,用向量表示叶子节点。...最终,这些特征被提供给softmax分类器,以获得每个标签的概率。 模型 作者为该任务提出了“递归张量神经网络”模型。...这个模型的主要动机来自于该领域的两项前期工作: a) 递归神经网络(RNN): 由于数据的计算顺序本质上的递归的(父向量取决于它们的子向量),因此,RNN是用于此目的的合适模型。...RNTN模型能够从结构上学习积极和消极的规则。 结论 因此,RNTN和情感树库允许在一系列单词上捕获细粒度情感。此外,与MV-RNN和biNB相比,它能很好地完成对比结合任务。 引用 哇!!

    58320

    递归神经网络不可思议的有效性(上)

    原文作者:Andrej Karpathy 递归神经网络(RNNs)有一些不可思议的地方。我仍然记得我训练的第一个用于 图片字幕的递归网络。...递归神经网络 序列。你可能会问:是什么让递归神经网络如此特殊?...从这个角度来看,RNNs本质上可以描述程序。事实上,众所周知, RNNs是图灵完备的,即它们可以模拟任意程序(使用恰当的权值向量)。但是,类似于通用逼近定理神经网络,你还不应该深入阅读。...在右边,一个递归网络通过学习在画布上序列化地添加颜色然后生成一张数字图像(Gregor等人 ): ? 左边:RNN学习阅读门牌号。右边:RNN学习学习绘制门牌号。...LSTM是一种特殊类型的递归网络,在实践中工作效果更佳,这归功于其强大的更新方程和一些吸引人的动态反向传播功能。

    79440

    Java安全之JNDI注入

    JNDI(Java Naming and Directory Interface)是一个应用程序设计的API,为开发人员提供了查找和访问各种命名和目录服务的通用、统一的接口,类似JDBC都是构建在抽象层上...代码: InitialContext initialContext = new InitialContext(); 在这JDK里面给的解释是构建初始上下文,其实通俗点来讲就是获取初始目录环境。...String getFactoryClassName() 检索此引用引用对象的工厂的类名。 Object remove(int posn) 从地址列表中删除索引posn上的地址。...initialContext = new InitialContext();//得到初始目录环境的一个引用 initialContext.lookup(uri);//获取指定的远程对象...initialContext = new InitialContext(); initialContext.lookup(url); } } 下面还需要一段执行命令的代码,挂载在

    99240

    关于 Java 中的 RMI-IIOP

    作者:Longofo@知道创宇404实验室 时间:2019年12月30日 在写完《Java中RMI、JNDI、LADP、JRMP、JMX、JMS那些事儿(上)》的时候,又看到一个包含RMI-IIOP的议题...环境说明 •文中的测试代码放到了github上•测试代码的JDK版本在文中会具体说明,有的代码会被重复使用,对应的JDK版本需要自己切换 RMI-IIOP 在阅读下面内容之前,可以先阅读下以下几个链接的内容...,即对象在网络上的不同平台上进行交互。...在客户端,应用程序包含远程对象的引用,对象引用具有存根方法,存根方法是远程调用该方法的替身。存根实际上是连接到ORB的,因此调用它会调用ORB的连接功能,该功能会将调用转发到服务器。...本质上,存储库ID是接口的唯一标识符。

    1.3K20

    Tomcat-9.JNDI资源

    1.介绍 Tomcat为每个在其上运行的web应用提供了一个JNDI的** InitialContext**实现实例,它与Java EE应用服务器提供的对应类完全兼容。...6.3.2 使用资源 典型的资源引用用例: Context initCtx = new InitialContext(); Context envCtx = (Context) initCtx.lookup...如果和实际情况不符合,需要编辑web应用的元素,将mail.smtp.host参数的值修改为你的网络上的SMTP服务器的主机名。...6.3.3 使用资源 资源的典型引用用例: Context initCtx = new InitialContext(); Context envCtx = (Context) initCtx.lookup...Default: -1 (infinite)在抛出异常前,连接池等待(没有可用连接)连接返回的最长等待毫秒数,默认为-1(无限长) 额外用来验证连接的属性: validationQuery - SQL

    1.2K30

    小技巧:通过 New-Ailas 指令在 Powershell 上启动多个不同版本的应用程序

    小技巧:通过 New-Ailas 指令在 Powershell 上启动多个不同版本的应用程序 如果你像我一样,电脑上安装有多个 Java 的话,你肯定会遇到这样的烦恼:当我们试图在命令行中调用其他非...classpath 上的 java.exe 时,需要费尽心思找到这些 Java 的路径,以全路径执行,这十分费时费力。...但是如果你正在使用 Powershell 的话,现在这些问题就可以得到解决了,解决的方法就是 New-Ailas 指令 New-Ailas 指令的完整用法如下: New-Alias [-Name]...(Microsoft.PowerShell.Utility) – PowerShell | Microsoft Docs 找到详细的信息 但是事实上,我们不需要他的完整功能,而是只需要使用其 -Name...-Name java16 -Value "D:\ProgramData\.jdks\openjdk-16.0.2\bin\java.exe" 这样,下次我们需要在 Powershell 上使用 Java

    1.1K30
    领券