从 Tomcat 上部署的 OSGI Equinox 捆绑包进行 JNDI 查找(桥接模式)

2024-04-13

我在 tomcat\context.xml 中配置了数据源。我部署了Eclipse提供的bridge.war来获取servletbridge环境。

我开发了另一个 osgi 包,其中包含 servlet 注册代码,我的目标是通过 JNDI 从此 servlet 包中查找数据源。

不过我得到

javax.naming.NoInitialContextException:Cannot instantiate class: org.apache.naming.java.javaURLContextFactory (root cause classnotfound for org.apache.naming.java.javaURLContextFactory)

当我尝试在 OSGI 包中执行以下代码时

        Context initContext = new InitialContext();
        Context envContext = (Context) initContext.lookup("java:/comp/env");
        DataSource ds = (DataSource) envContext.lookup("jdbc/TestDB");

我已在我的 osgi 容器中添加了 catalina.jar,并且还作为我的 osgi 包中的依赖项。

我的bridge.war的launch.ini看起来像这样:

osgi.*=@null
org.osgi.*=@null
eclipse.*=@null

osgi.parentClassloader=ext
osgi.contextClassLoaderParent=ext
org.osgi.framework.system.packages.extra=org.apache.naming.java

有人可以帮我吗?


嵌入式 OSGi 容器的父容器是ext:Java扩展类加载器

为了能够看到Tomcat的类,必须在launch.ini中将父类加载器更改为fwk:OSGi 框架类加载器。

通过这样做,嵌入式 OSGi 容器的父类加载器将成为 Web 应用程序的类加载器。如果嵌入式 OSGi 容器中的包想要直接使用 web 应用程序或 Tomcat 中的类,您可能必须使用 org.osgi.system.packages.extra 设置列出该类的包。

有关嵌入式 Equinox 父类加载器的更多信息:http://wiki.eclipse.org/FAQ_How_do_I_add_a_library_to_the_classpath_of_a_plug-in%3F http://wiki.eclipse.org/FAQ_How_do_I_add_a_library_to_the_classpath_of_a_plug-in%3F

有关 Tomcat 类加载器层次结构的更多信息:http://tomcat.apache.org/tomcat-6.0-doc/class-loader-howto.html http://tomcat.apache.org/tomcat-6.0-doc/class-loader-howto.html

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

从 Tomcat 上部署的 OSGI Equinox 捆绑包进行 JNDI 查找(桥接模式) 的相关文章

  • Tomcat 连接池与准备好的语句缓存

    从 DBCP 连接池升级到 Tomcat 自己的实现 基于优秀的比较here http tomcat apache org tomcat 7 0 doc jdbc pool html Introduction 我有点困惑为什么他们放弃了这两
  • ServletContext 和 Session 对象

    我们从请求对象 HttpServletRequest 获得的 ServletContext 和 Session 对象的行为是否相同 会话是特定于用户的 Servlet 上下文本质上是全局的 在该 Servlet 的上下文内 这意味着访问该
  • 从 java servlet 运行长进程的最佳方法是什么?

    我想问从 java servlet 运行长进程的最佳方法是什么 我有一个网络应用程序 当客户端发出请求时 它会运行一个 servlet 该 servlet 应该从请求中获取一些参数 然后运行一个进程 这个过程可能需要很长时间 所以我需要单独
  • 从 Web 服务器异步调用应用程序

    我有一个用 Spring 制作的 在 Tomcat 上运行的 Web 应用程序 在同一台机器上有一个普通的 Java 应用程序 我想通过从Web服务器调用Java应用程序来执行它 但我想让应用程序不会使用服务器的资源 它涉及分类器的训练 因
  • 在JSP中获取Servlet转发的请求URL

    如何在JSP中获取Servlet转发的请求URL 如果我在 JSP 中运行以下代码 System out println servlet path request getServletPath System out println requ
  • HttpServletRequest.getRemotePort() 在同一台机器上收到的每个 http 请求返回不同的端口?

    我需要识别注册到我的服务的客户端的远程 IP 和端口 此外 当客户端 Web 应用程序出现故障时 它会从我的 Web 服务中取消注册 我在用HttpServletRequest getRemoteAddress and HttpServle
  • 是否值得清理 Filter 中的 ThreadLocals 来解决线程池相关问题?

    简而言之 tomcat 使用线程池 因此线程被重用 一些图书馆使用ThreadLocal变量 但不要清理它们 使用 remove 所以实际上它们将 脏 线程返回到池中 Tomcat 具有在关闭时检测这些事情并清理线程局部变量的新功能 但这意
  • java.lang.NoClassDefFoundError:HttpSessionListener

    我正在尝试部署一场我没有编写的战争 但我在日志中收到此错误 java lang NoClassDefFoundError HttpSessionListener 我知道 HttpSessionListener 位于servlet api j
  • maven 构建 OSGi 的问题(包括依赖项)

    我目前正在从 OSGi iPOJO 和 iPOJO Annotations 开始 并尝试构建一个要在 Felix 中部署的简单组件 不幸的是 我遇到了各种问题 这些问题需要我花几个小时才能解决 或者在浪费时间后我什至无法解决 如下所示 我想
  • Maven 多模块项目结构问题

    自从过去几周构建我的 Maven 多模块项目以来 这是我的一次有趣的经历 当我决定使用 Maven 进行构建生命周期管理时 我有几个原因希望选择 Maven A 大多数开发团队都是分开的 这样每个团队都可以在项目中的单独模块上工作 例如团队
  • tomcat 8 无法在自由端口上启动

    PROBLEM 通过 Windows 服务停止 gt 启动 tomcat 8 失败 因为 tomcat 关闭不知何故以 不可见 状态继续侦听端口 8080 并且 tomcat 无法启动 因为它无法绑定到端口 8080 背景 我们的一个构建脚
  • 会话过期后如何重定向到登录页面?

    我有三个 JSF 2 0 Web 模块 当会话过期时我需要重定向到登录页面 我已经尝试过使用HttpSessionListener 它正在调用sessionDestroyed 事件方法 但我无法在那里转发 重定向请求 我认为这是因为没有Ht
  • ant install 部署 Tomcat webapp 因权限问题失败

    我一直在关注非常好的Tomcat6应用程序开发人员指南 http tomcat apache org tomcat 6 0 doc appdev index html 我已经抓住了他们的build xml其中包含名为的方便的 Ant 任务i
  • 为什么我们在同一台服务器上使用多个应用程序服务器实例

    我想这是有充分理由的 但我不明白为什么有时我们会在同一物理服务器上放置例如 5 个具有相同 Web 应用程序的实例 这与多处理器架构的优化有关吗 JVM 或其他允许的最大内存限制 嗯 过了很长一段时间我又看到这个问题了 一台机器上的多个 J
  • 在 Tomcat 上部署 Java Web 项目,无需 WAR 或 EAR

    我有一个 Java Web 项目 Struts Spring 在我的本地主机上完美运行 我必须将其部署在我的网站上 但虚拟主机提供的 Tomcat Manager 界面显示 由于安全原因 它无法上传 WAR 文件 当联系技术支持时 我被告知
  • 如何区分浏览器选项卡中的会话?

    在使用 JSP 和 Servlet 以 java 实现的 Web 应用程序中 如果我在用户会话中存储信息 则同一浏览器的所有选项卡都会共享该信息 如何在浏览器选项卡中区分会话 在这个例子中
  • 如何为 Apache POI 3.8 创建工作 OSGI 包?

    我的目标是创建 Excel 2007 文档 XLSX 在 Eclipse RCP 环境中 Excel 2003 很简单 我不想将 POI jar 放在 lib 文件夹中 相反 我想使用目标定义中的工作 POI OSGI 包 到目前为止我所有
  • Spring Boot 中 application.properties 可用的属性列表?

    Spring Boot文档说我们可以在application properties文件中设置属性 但我找不到列出可以设置的可用属性的文档 我在哪里可以找到这样的文档 例如 我想为嵌入式servlet设置documentRoot 我发现set
  • windows关闭tomcat后保持端口锁定

    我遇到了一个问题 该问题发生在不同站点的 3 台不同服务器上 问题是 当我关闭 Windows 服务器上的 Tomcat 7 和 8 5 版本 服务并尝试重新启动该服务后 该服务将无法启动 因为 tomcat 认为端口仍在使用中 以下是错误
  • ServletContext getContextPath()

    我检查了我的 Netbeans 项目中包含的 Tomcat 库的 javadoc 当我部署代码时工作正常 但是当我对我的 Web 项目进行全新构建时 我在 getContextPath 上收到 找不到符号 ServletContext接口的

随机推荐

  • Delphi从ios/Android本地存储打开PDF

    我尝试在移动设备上从本地存储打开 PDF 文件 我已将文件放入 iOS 的启动 文档 Android 的资产 内部 用这个代码 filename TPath Combine TPath GetDocumentsPath file pdf W
  • 记忆 SQL 查询

    假设我有一个运行 SQL 查询并返回数据帧的函数 import pandas io sql as psql import sqlalchemy query string select a from table def run my quer
  • Groovy 字符串连接

    当前代码 row column each column gt println column attributes name println column value Column is a Node具有单个属性和单个值 我正在解析 xml
  • iOS13:如何检测状态栏点击事件?

    在我的 appDelegate 中 我覆盖touchesBegan检测何时单击状态栏 void touchesBegan NSSet touches withEvent UIEvent event super touchesBegan to
  • 将 PUT/POST/DELETE 与 JSONP 和 jQuery 结合使用

    我正在致力于创建一个支持跨域请求 JSON JSONP 支持和主要 HTTP 方法 PUT GET POST DELETE 的 RESTful API 现在 虽然通过服务器端代码可以轻松访问此 API 但最好将其公开给 JavaScript
  • Spring云任务-worker pod在kubernetes中没有被删除

    我们正在使用基于 spring cloud deployer kubernetes 的 Spring Batch 远程分区 由于某种原因 Worker pod 在 Worker 执行后没有被删除 想知道通过 TaskLauncher 启动清
  • #Meteor 中带有 blaze 的数组中的每个字符串

    我有一个用户名数组 在列表中呈现 如下所示 each contacts div class name this div each 这工作得很好 但后来我尝试从事件中获取用户名 click name function e t console
  • 随机化表格单元格

    我知道它听起来有点有线 但是有什么方法可以随机化表格内容吗 正是细胞 这样做的目的 我有一个由多个 xml 生成的表 每个 xml 至少包含 5 个项目 在主表中 我只能按原样订购它们 但我需要随机化这些项目 例如 jsfiddle net
  • 为什么我无法在 Firefox 中提交动态创建的表单

    我复制了我正在开发的一个更大项目的一部分 我没有编写代码 所以我希望有人能帮助我找出为什么用这种方式从 js 代码发送 post 请求在 IE 中有效 而在其他中无效浏览器 function f var container document
  • 生成两个浮点数之间的随机浮点数

    我知道这是一个相当简单的问题 但我的数学不太好 我知道如何生成 0 到 1 之间的随机浮点数 float random float rand float RAND MAX 但是 如果我想要一个给定两个浮点数范围的函数 返回该范围内的伪随机浮
  • Volley 以 utf-8 格式发送请求

    我正在通过以下方式向网络发送请求volleyandroid 上的库包含一些ArabicURL中的字符 但是在php文件中我得到了问号而不是阿拉伯字母 我尝试了人们在网上所说的解决方案 但所有这些都尝试从网络读取数据as UTF 8 不以 U
  • 如何在 grails 3 中运行单个集成测试?

    Grails 3 至少 3 1 10 在仅运行特定测试时不稳定 如何让它运行单个集成测试 这是运行单个集成测试的示例命令 grails test app LoginFunctional integration 如果将 integration
  • 使用 MongoMapper 查询不同值

    我该如何查询distinct与 MongoMapper 一起使用吗 我的查询是 subscribedToThread Comment where subscribe thread gt 1 all 但这会返回许多具有相同属性的对象user
  • iOS下逐帧读取视频

    我正在寻找一种使用 iOS API 检索视频各个帧的方法 我尝试使用 AVAssetImageGenerator 但它似乎只提供最接近秒的帧 这对我的使用来说有点太粗糙了 根据我对文档的理解 AVAssetReader AVAssetRea
  • 寻找 JS/JQuery 完全模态覆盖 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我需要一个模态叠加层 它将阻止与页面其余部分的交互 并且用户无法关闭 但似乎找不到一个不需要覆盖现有功
  • 为什么我能够访问java中没有对象的方法[重复]

    这个问题在这里已经有答案了 这是我的代码 public class MyProjectPage extends AbstractPage public boolean addDefaultProjectBymyProjects String
  • 当 var 应该有一个值时,“TypeError:无法将 'NoneType' 对象隐式转换为 str”

    import sys from tkinter import def print print Encoded message with offset gui Tk gui title Caesar Cypher Encoder Button
  • 如何在 IntelliJ IDEA 中使用 Scala(或者:为什么为 Scala 找到一个可用的 IDE 如此困难)?

    我最近放弃了在 Eclipse 中使用 Scala 的尝试 像完成这样的基本功能不起作用 所以现在我正在尝试 IntelliJ 我还没有走多远 我已经能够编辑程序 在语法突出显示和完成内 耶 但我什至无法运行最简单的 Hello World
  • 如何将依赖项注入到实现接口的类中?

    我知道接口不能定义构造函数 强制所有类实现接口并以统一契约接收其依赖项的最佳实践是什么 我知道整数可以通过属性将依赖项注入到对象中 但通过构造函数传递它们对我来说更有意义 那么如何DI呢 我知道你说过你想要一份稳定的合同 但有一个优势not
  • 从 Tomcat 上部署的 OSGI Equinox 捆绑包进行 JNDI 查找(桥接模式)

    我在 tomcat context xml 中配置了数据源 我部署了Eclipse提供的bridge war来获取servletbridge环境 我开发了另一个 osgi 包 其中包含 servlet 注册代码 我的目标是通过 JNDI 从