简述:
在OSGI框架中开发JAVAFX的C/S应用,主要处理点为如果把javafx运行环境的相关jar与dll文件引入到OSGI的bundle中,
本次处理为把javafx的运行环境的相关文件以一个plug-in Project 的形式加入其中,在该project中把javafx的所在
jar文件中的包全部导出然后在javafx bundle的应用中引入这些包,就可以找到javafx的API了,其它是把dll放到plug-in Project
的根目录下,用于JNI的调用。具体步骤如下:
1:建立一个用于依赖的bundle,在myeclisep9.1中:New-->Other-->Plug-in Development-->Plug-in Project
然后点击 next,输入一个工程名如:fxLibBundle(后续都称为fxLibBundle),在 Target Platform项中选中 an OSGI framework:下拉框中选择 standard,
点击next,在Properties项中可根据情况输入,也可默认,在Options项中取消 Generate an activator,...复选框。
点击next,取消 Create a Plug-in using one of the templates复选框,点击Finish完成插件工程建立向导。
2:在fxLibBundle的根目录中新建一个lib目录,用于存放jar文件,复制JavaFX Runtime 2.0\lib\jfxrt.jar到刚建的lib目录中,
复制JavaFX Runtime 2.0\bin所有的*.dll文件到fxLibBundle的根目录中。打开fxLibBundle工程中/META-INF/MANIFEST.MF文件,
切换到Runtime选项卡中,在Classpath项中点击Add按钮,定位到刚建立的lib目录中的jfxrt.jar文件,选中它然后点击ok按钮完
成jar加到Classpath的操作,然后在Classpath左边的Exported Packages项中,点击Add按钮,在弹出来的对话框中,包括了javafx
所有的包,全选后点击OK完成包的导出。
3:在javafx bundle应用中,打开其META-INF/MANIFEST.MF文件,切换到Dependencies选项卡中,在Required Plug-ins项中点击
Add按钮,在Slect a Plug-in输入框中可输入fxLibBundle来查找,找到后,选中它点击ok即可,接下来在Dependencies选项卡中的
Imported Packages项中点击Add按钮,选择在你的javafx bundle中用到的javafx包,选择完后占击OK完成包的导入。
4:右键你的javafx bundle,Run As-->Run Configurations 在打开的运行对话框中的左侧,双击(或右键)OSGI Framework菜单
新建一个OSGI Framework运行项,在右边出现的Bundles树形中,选择fxLibBundle与自身,在bundles树形右边点击Add Required Bundles
按钮,然后点击Apply按钮,再点击Run按钮运行应用。到此,基于OSGI的javafx应用操作步骤已全部完成。
可能会出现的问题:
。。。。java.lang.UnsatisfiedLinkError。。。。异常:
由于javafx引用不到其需要的dll或版本不对的原因引起。
解决:确定所用的javafx版本与fxLibBundle用的一致,确定dll都在fxLibBundle工程的根目录中。
续
在javafxbundle开发配置完成后,目前如何启动javafx bundle应用与更新、停止却又出现了问题。这些问题会在后续进一步进行解决,目前已
有解决的思路,等待测试。
续解决办法:
在启动javafx时不能直接用application.launch,而需要用如下代码启动:
PlatformImpl.startup(new Runnable() {
public void run() {
Stage stage = new Stage();
stage.setTitle("OSGI javaFx bundle");
stage.centerOnScreen();
//Scene scene = makeScene();
//stage.setScene(scene);
FIX_OSGI fix_osgi = new FIX_OSGI();
fix_osgi.start(stage);
}});
其中 FIX_OSGI 是一个自定义类,其start 方法部分如下:
public void start(Stage st) {
...
Scene scene = new Scene(new Group, 500, 200);
...
stage.setScene(scene);
...
}
这样启动后,对于javafx的bundle就可即时的更新、停止与启动了。
更多处理,请搜索javafx与swing整合相关资料。
相关推荐
在基于 OSGi 和 Spring 的 Web 应用开发中,我们可以使用 Spring-DM 来实现模块化部署和管理。Spring-DM 是 Spring 开发组织在 2008 年发布的,将 OSGi 和 Spring 结合的第一个版本。dm Server 是一个完全模块化部署...
该Demo模拟了这样一个功能, 从OSGI命令行接收到一个命令: 服务名 参数1 参数2 就能将服务转发到对应的服务插件上去. 比如: AddService 12 34 这样就能将参数传递给AddService这样的服务, 并得到两个参数相加的结果
OSGi(Open Services Gateway Initiative)框架是一个用于Java应用程序模块化的开放标准。它的核心特性是将应用程序分解为可独立部署、动态组合的模块,这些模块称为服务。OSGi框架的引入,旨在解决Java应用程序的...
"基于osgi框架实战源码"的学习资料为开发者提供了一个宝贵的实践平台,通过实际操作可以加深对OSGi的理解,提升在大型复杂系统中的模块化开发能力。在深入学习源码的过程中,不仅要关注代码逻辑,还要理解其背后的...
Spring是一个全面的Java企业级应用开发框架,提供依赖注入(DI)、面向切面编程(AOP)、数据访问/集成、Web MVC等功能。在SSM组合中,Spring主要负责管理和协调各个组件,如数据库连接、事务管理等。 **3. ...
综上所述,基于OSGi和Spring开发Web应用不仅能够充分利用OSGi的模块化优势和Spring的依赖注入机制,还能借助dmServer和SpringSource应用平台等工具,实现更加高效、灵活和可靠的企业级应用开发。
Spring框架则是一个流行的轻量级Java企业级应用开发框架,它提倡面向接口编程和依赖注入(DI)原则,有助于减少代码耦合度和提高组件的可测试性。Spring-DM(现在称为Spring OSGi)是Spring框架的一个扩展,旨在将...
在实际开发过程中,我们通常会使用一些OSGi相关的工具,如Eclipse PDE或Apache Felix等,它们提供了友好的开发和管理环境,简化了基于OSGi的应用程序开发。 综上所述,基于OSGi框架的客户端接口设计是一项需要...
Spring框架则是一个全面的企业级应用开发框架,它简化了Java开发,特别是Web应用的开发。Spring提供了依赖注入(Dependency Injection, DI)和面向切面编程(Aspect-Oriented Programming, AOP)等核心功能,还包含...
### 基于OSGi和Spring开发企业级Web应用 #### OSGi与Spring结合的重要性 ...综上所述,将OSGi和Spring结合起来使用,可以有效地解决企业级应用开发中面临的许多挑战,是一种值得推广的技术方案。
基于 OSGi 和 Spring 开发 Web 应用
为了应对这一挑战,本文设计并实现了一套基于OSGi(Open Service Gateway Initiative)框架的网络操作工单管理系统。该系统旨在简化和优化网络操作管理流程,提高网络设备维护的效率和质量。 OSGi框架是一种先进的...
四大OSGI框架最新技术对比分析 一、Apache Felix ### 1.1 概述 Apache Felix 是一个致力于实现 OSGi R4 Service Platform 和其他与 OSGi 相关的技术的社区项目,遵循 Apache 许可。最初,OSGi 规范的目标是嵌入式...
【基于OSGi框架的网络操作工单管理系统设计与实现】 随着网络信息技术的飞速发展,网络规模持续扩大,网络设备的数量呈指数级增长,对网络操作管理的需求也随之提高。现有的网络管理系统虽然具备丰富的管理功能,但...
OSGi框架可以帮助开发者快速构建和部署基于C/S的应用程序。 OSGi框架提供了模块化、动态性和灵活性,解决了Java EE开发及部署模型的局限性。OSGi 4.2版本的发布标志着OSGi框架的成熟和完善。Spring DM是基于OSGi的 ...
OSGI(Open Services Gateway Initiative)是一个用于创建和管理动态模块化Java应用程序的框架,它允许在运行时安装、卸载和更新模块,提供了一种灵活且可扩展的软件架构。 基于OSGI的软构件实时数据处理子系统设计...