首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用JACORB maven编译器生成自定义IDL

使用JACORB maven编译器生成自定义IDL
EN

Stack Overflow用户
提问于 2011-06-09 19:37:55
回答 3查看 1.6K关注 0票数 1

我需要集成Java系统和遗留的C++系统。这两个系统通过CORBA进行通信。由于Java系统运行在JBoss上,所以我们使用JacORB。

为了从.idl文件生成java存根,我们使用maven-idl-编译器插件(使用JacORB)

提供了org.codehaus.mojo idlj-maven-plugin jacorb-idl- org.jacorb 2.2.3

一切正常,但我想修改生成存根的方式(更改方法、类的名称等)。有什么办法可以做到吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-10-04 11:31:33

一切正常,但我想修改生成存根的方式(更改方法、类的名称等)。有什么办法可以做到吗?

这是不可能的。

Server Skeleton和Client Stub由Corba在您选择的实现中生成。它们基本上包含Marshaller和Unmarshaller,用于在干扰分布式对象时处理ORB对象参数。

所有这些代码都与CORBA使用的IDL语言高度耦合,因为生成依赖于您提供的IDL。

因此,您不能直接修改存根或框架,这是没有意义的,因为IDL语言的存在是为了确保所有分布式对象之间的公共接口,而不管实现语言是什么。

但是,您始终可以修改IDL本身以使其适应您的需要。

票数 1
EN

Stack Overflow用户

发布于 2015-10-13 00:37:37

通常,人们在这种情况下会使用Façade模式。

https://en.wikipedia.org/wiki/Facade_pattern

像往常一样创建IDL,然后创建另一个类,该类有效地包装了IDL类,但只是将调用向下传递到IDL接口。使用此方法,您可以为可以在程序中使用的方法创建新名称。例如,如果您在某些情况下总是传递相同的参数,那么您也有机会简化方法。

另一个好处是,如果IDL作者决定重命名他们的方法之一或更改参数,您将获得一定程度的保护,因为您不会在程序中直接使用他们的接口。

票数 1
EN

Stack Overflow用户

发布于 2011-07-06 04:10:05

您可以修改$JACORB_HOME/src/org/jacorb/idl下的代码以生成所需的任何内容。请看一下OpDecl.java中的printStreamBody方法,以获得一个看起来易于理解和修改的生成代码示例。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6292178

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档