我试图从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异常.我会感谢任何关于如何解决这个问题的建议.

非常感谢.

干杯,尼克

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

  1. java osgi web开发_在Tomcat中使用Java Web应用程序的OSGi软件包

    我试图从Java Web应用程序调用OSGi包的方法.两者都应该在Tomcat 7上运行. 我已经写了一个正常的Java应用程序,它调用OSGi软件包中的方法,如本站所述:http://drupal. ...

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

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

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

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

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

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

  5. Java 类在 Tomcat 中是如何加载的?

    说到本篇的Tomcat类加载机制,不得不说翻译学习Tomcat的初衷. 之前实习的时候学习JavaMelody的源码,但是它是一个Maven的项目,与我们自己的Web项目整合后无法直接断点调试. 后来 ...

  6. 多项目加载顺序修改_面试官:Java 类在 Tomcat 中是如何加载的?

    说到本篇的Tomcat类加载机制,不得不说翻译学习Tomcat的初衷. 之前实习的时候学习JavaMelody的源码,但是它是一个Maven的项目,与我们自己的Web项目整合后无法直接断点调试. 后来 ...

  7. 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,并创建了一个新的 ...

  8. tomcat 中部署java web项目

    1.静态部署(服务器启动之前部署) a.将项目放在webapps下,就可以了 b.更改$CATALINA_HOME\conf\server.xml文件,在<host>标签内添加<Co ...

  9. java面试题8 牛客:在Web应用程序中,( )负责将HTTP请求转换为HttpServletRequest对象

    在Web应用程序中,(    )负责将HTTP请求转换为HttpServletRequest对象 A Servlet对象 B HTTP服务器 C Web容器 D JSP网页 首先我们来看看web程序的 ...

  10. linux搭建java开发环境_linux中搭建java开发环境

    今天试着在Linux下面搭建java开发环境,现总结一下具体步骤. 1.JDK的安装1.6 版本 cd /opt mkdir java 执行下面命令安装JDK(首先创建/opt/java目录) tar ...

最新文章

  1. 微信小程序框架封装登录,网络请求等公共模块及调用示例
  2. Android输入系统(三)InputReader的加工类型和InputDispatcher的分发过程
  3. Null return value from advice does not match primitive return type for: public abstract boolean
  4. 【深度学习】你有哪些深度学习(RNN、CNN)调参的经验?
  5. 更新:让UpdatePanel支持上传文件
  6. B站这套教程火了,火速搬运!限时删除~
  7. Office编程(二)C#读取Excel并存入数据库,通过XML自定义表名,是否重建并插入数据...
  8. 网关在链路上什么意思_银行卡上的数字都什么意思
  9. 巧用FineReport搭建成本管控监测系统
  10. UIWebView背景透明的方法
  11. BackTrack 4 R2 发布
  12. access ea 可以联网吗_如何看待EA在STEAM上推出EA Play(原EA Access会员)?
  13. python开源bi_开源bi软件排名哪些最为靠谱
  14. java实现微信订阅消息(服务通知)
  15. 永恒之蓝--Windows7
  16. 如何在 LaTeX 中画一个树状图(使用tikz和tikz-qtree包中的宏绘制树、森林、二叉树)
  17. 数据脱敏(Data Masking)- 模块功能设计
  18. Http? Https?
  19. Java implement意思_详解JAVA中implement和extends的区别
  20. 数据库-差集交集并集

热门文章

  1. AngularJS支持的事件
  2. [bzoj3670] [NOI2014] [lg2375] 动物园
  3. tld 第二个函数tldInitFirstFrame
  4. 迷你sql profile,给缺少sql跟踪的朋友们
  5. hdu 5150 Sit sit sit
  6. docx文件怎样打开 - 转
  7. loopback-detection(环路检测)
  8. 计算机网络数据链路层之使用点对点信道
  9. Linux 命令执行流程
  10. Json字符串和Java对象互相转换