前面我们用三篇博客介绍了
-
OpenDDS在WIndows上的环境配置
Windows下的OpenDDS编译(超详细)_山中野竹的博客-CSDN博客_opendds windows
-
三种方式运行发布订阅示例程序
OpenDDS运行示例(Messenger)程序_山中野竹的博客-CSDN博客
-
创建自己的发布订阅程序
OpenDDS 创建自己的发布订阅程序_山中野竹的博客-CSDN博客
但上述都是OpenDDS自己的一个操作,那么如何在Java里面调用OpenDDS呢?
接下来介绍一下,如何使用Java来调用OpenDDS程序,介绍其准备工作和实例。
-
首先,你的OpenDDS配置环境要能支持Java,因此之前的环境配置则不能满足,需要重新配置
有了上述配置环境的基础,配置Java支持的环境就简单很多了,直接参考下面两篇博客即可
Windows下OpenDDS安装_hbyangland的博客-CSDN博客_opendds安装
OpenDDS Java开发(1)——基于Windows10的OpenDDS编译安装_二师兄1986的博客-CSDN博客_java opendds
-
通过一个实例,在IDEA开发工具上,进行Java调用OpenDDS服务
调用过程主要分为以下几步
-
生成要调用的发布订阅的 java程序和jar包文件
-
将 相应的jar包上传到本地maven仓库,并在Java项目中引用该Jar包
-
将生成的 Java程序放在项目中,并调用程序实现发布订阅服务
这一步和前面介绍过 创建自己的发布订阅程序有点像,因此就简要介绍了。主要步骤为:
-
创建一个 messenger文件夹,创建一个 UserMessenger.idl 文件
module UserManager {
#pragma DCPS_DATA_TYPE "UserManager::User"
#pragma DCPS_DATA_KEY "UserManager::User id"
struct User {
long id;
string name;
boolean sexual;
long age;
double height;
};
};
-
在cmd命令行窗口,在messenger路径下执行命令生成 UserManager_Export.h 文件
generate_export_file.pl UserManager>UserManager_Export.h
-
创建 UserManager.mpc 文件
project: dcps_test_java {
idlflags += -Wb,stub_export_include=UserManager_Export.h
-Wb,stub_export_macro=UserManager_Export
dcps_ts_flags+= -Wb,export_macro=UserManager_Export
idl2jniflags += -Wb,stub_export_include=UserManager_Export.h
-Wb,stub_export_macro=UserManager_Export
dynamicflags += USERMANAGER_BUILD_DLL
specific {
jarname = UserManager
}
TypeSupport_Files {
UserManager.idl
}
}
-
cmd命令窗口,在该路径下,使用mwc命令编译 mpc文件
perl E:SoftwareWorkOpenDDSACE_wrappersbinmwc.pl -type vc10
-
使用vc++ 编译 messenger.sln文件,先在vc++中打开文件,选择自己的运行环境(32位或者64位)然后生成解决方案即可
基本上配置完Java的环境都是64位的。
得到我们需要的 UserMessenger.jar包文件
第二步第三步参考了以下两篇博客,大家可以先学习一下
OpenDDS Java开发(一):理解Messenger示例_hbyangland的博客-CSDN博客_java opendds
OpenDDS Java开发(二):根据IDL进行代码生成_hbyangland的博客-CSDN博客_idl 代码生成
2. 上传 jar包文件到仓库,并在项目中引用未完待续......
持续更新中



