我试图从Java Web应用程序调用OSGi包的方法.两者都应该在Tomcat 7上运行.

我已经写了一个正常的Java应用程序,它调用OSGi软件包中的方法,如本站所述:http://drupal.osgibook.org/node/37.

为了获得Equinox环境的上下文,我从应用程序启动它,并从里面安装了bundle.此外,上下文用于检索运行的bundle的服务引用并获取其服务.

EquinoxRunner类的runEquinox方法:

import org.osgi.framework.Bundle;

import org.osgi.framework.BundleContext;

public BundleContext runEquinox([...]) throws Exception {

[...]

BundleContext bundleContext = EclipseStarter.startup(new String[]{"-console"}, null);

bundleContext.installBundle("file:C:/.../plugins/myosgiclass.interface_1.0.0.201108301327.jar");

Bundle bundleTranslationImpl = bundleContext.installBundle("file:C:/.../plugins/myosgiclass.impl_1.0.0.201108301327.jar");

bundleTranslationImpl.start();

[...]

return bundleContext;

}

和ServiceRunner类的invokeMethod:

import org.osgi.framework.BundleContext;

import org.osgi.framework.ServiceReference;

[...]

public Object invokeMethod(BundleContext bundleContext, Object value, [...]){

ServiceReference serviceReference = bundleContext.getServiceReference(MyOSGiClass.class.getName());

Object result = null;

if (serviceReference != null) {

MyOSGiClass myOSGiClass = (MyOSGiClass) bundleContext.getService(serviceReference);

if (myOSGiClass != null) result = myOSGiClass.method(value);

bundleContext.ungetService(serviceReference);

}

return result;

}

现在,在Tomcat上使用eclipse bridge,我不知道如何检索Equinox环境的正确上下文.当我尝试运行它在Tomcat与Equinox我得到NoClassDefFound异常.我会感谢任何关于如何解决这个问题的建议.

非常感谢.

干杯,尼克

java osgi web开发_在Tomcat中使用Java Web应用程序的OSGi软件包相关推荐

  1. 零基础学java web开发_从零基础学Java成为一个专业的java web 开发者

    原标题:从零基础学Java成为一个专业的java web 开发者 "我怎么才能成为一个Java Web开发者?"对于这个问题,答案其实并不简单.成为一个Java Web开发人员包括 ...

  2. endorsed java_使用Java 9和Java 10在Eclipse上从Tomcat中删除java.endorsed.dirs

    我在IDE中将Eclipse 4.7.3a与Tomcat 9.0.4结合使用.我从Java 8升级到Java10.我更改JAVA_HOME为指向JDK 10安装.我进入Eclipse,并创建了一个新的 ...

  3. java GUI怎么输入_在Swing中创建Java GUI以进行表单输入

    好吧,我已经浏览了整个互联网,但却未能找到这个问题的答案,所以也许有人可以提供一些见解. 我正在开发一个相对简单的Java应用程序,它将取代目前用于系统访问请求的Word文档.它旨在允许表单输入新的员 ...

  4. java applet 嵌入网页_在网页中插入Java Applet

    Java Applet 是一种允许开发并可以嵌入Web页面的编程语言.Java Applet 小程序是在Java 的基础上演变而成的应用程序,可以嵌入到网页中用来执行一定的任务. 语法: 举例: 插入 ...

  5. java微信红包开发_微信红包算法(java)

    package com.example.ant.common.tools; import java.util.LinkedList; import java.util.List; /** * 描述:红 ...

  6. java 获取 邮箱联系人_在android中读取联系人信息的程序,包括读取联系人姓名、手机号码和邮箱...

    /** 读取联系人的信息*/ public voidtestReadAllContacts() { Cursor cursor= this.getContext().getContentResolve ...

  7. 在Tomcat中部署Java Web应用程序几种方式

    在Tomcat中部署Java Web应用程序有两种方式:静态部署和动态部署.在下文中$CATALINA_HOME指的是Tomcat根目录.  一.静态部署       静态部署指的是我们在服务器启动之 ...

  8. 【转】Tomcat中部署java web应用程序

    http://www.blogjava.net/jiafang83/archive/2009/06/02/279644.html 转载: 今天给大家介绍怎样在Tomcat5.5.9中部署Java We ...

  9. 在 Tomcat 中部署 Java Web 程序 ( jar cvf *.war */. ) war 包

    本文基本转自:http://www.blogjava.net/ocean07000814/articles/331694.html 主要讲的是在 Tomcat 中部署 Java Web 应用程序.因为 ...

最新文章

  1. 团队分数分配方法——BY 李栋
  2. python requests post 中文乱码问题
  3. 求职及学习心情文章收集
  4. sass使用相关报错
  5. php mysql 统计_PHP和MySQL实现优化统计每天数据
  6. Ubuntu系统常用命令
  7. 音视频开发(36)---麦克风阵列声音定位解决方案
  8. 哪个相机可以拍gif动图_入门级微单相机哪家强?索尼微单A6400评测来了!
  9. 关于jquery中html()、text()、val()的区别
  10. CSS选择器、优先级与匹配原理
  11. Python12/10--前端之display/overflow使用/清浮动的方式
  12. 全球前十大证券交易所在区块链领域的探索和布局
  13. 手机如何登录企业邮箱,公司电子邮箱登录页面
  14. 图像处理中的二阶矩矩阵(结构张量)
  15. 校园网显示dns服务器解析出错,天翼校园网dns解析出错怎么办
  16. 文华财经期货指标公式,期货交易用什么指标信号简单,准确率高,
  17. ESP8266的FATAL EXCEPTION 28 29问题原因
  18. 第一章 公共政策学的学科要素
  19. 计算机c盘突然少了几个G,做系统时c盘显示0容量-关于Windows系统c盘突然没了十几个g...
  20. MATLAB基础图像处理算法

热门文章

  1. android ndk 文件管理,Android NDK开发指南(二)Android.mk文件
  2. python从tushare获取数据_python调用tushare获取股票月线数据
  3. mac查看mysql+utf8_Mac上修改MySQL默认字符集为utf8
  4. python function terminated un_绕过 RestrictedUnpickler
  5. java加载js_Java加载js
  6. 华北科技学院计算机科学与技术分数线,2019年华北科技学院优势专业排名及分数线...
  7. java支付宝rsa2签名_sign_tools_RSA256_win
  8. mysql 用户密码md5_使用MD5编码实现数据库用户密码字段的加密
  9. Git - git tag - 查看当前分支 tag 版本说明
  10. Java Selenium - 处理页面弹出窗