在JBOSS中,如何让EJB可以通过JNI调用DLL文件?

fancuixia 2007-11-27 04:13:30
我这里有个J2EE应用,所有业务功能都基于J2EE实现,但其中有一个加密解密的算法,必须使用第三方提供的dll文件。

此前使用Tomcat,我可以在Tomcat的系统lib中存放JNI Java Class,web应该通过访问该对象实现对DLL的调用。

但现在使用JBoss,而且调用方不是WEB层,是很多EJB组件。

我尝试过同样的解决方式:在JBoss系统lib中存放JNI Java Class,但EJB组件和JBoss不在同一个JVM中,无法访问。

查过EJB规范,貌似是不支持JNI的。这样就杜绝了EJB直接使用JNI访问DLL的途径。

目前我尝试用MBean JNI Class 访问DLL,JBoss启动没有问题,但通过EJB调用MBean还是报错,估计还是JVM的问题。

希望有过此类问题处理经验的,能够指点一二。
...全文
243 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
chenciitc 2008-05-09
  • 打赏
  • 举报
回复
高薪招聘高校计算机专业兼职教师
北京思源培训中心(http://www.ciitc.com)专业做软件开发技术的培训;由于课程培训需要,长年高薪诚聘兼职讲师,欢迎计算机及相关专业的高校老师、研究生、博士生应聘
基本要求如下:
l 本科以上学历,计算机或相关专业毕业。
2 具有实际相关工作经验,从事过软件开发或系统管理工作。
3 语言表达清楚、流畅、逻辑思维清晰,英语听说良好。
4 诲人不倦,有高度的责任感、敬业精神和团队意识。
5 注重仪表,具有随机应变的能力。
6 具有一定的教学经验,从事过教学/培训业务者优先考虑。

精通应聘职位的某一部分课程内容,如下述编程语言或系统的一种或几种:
1. 编程语言:C++, VC++,VB.NET,C#, PowerBuilder, Delphi, Java,
Matlab , C++Builder
2. 数据库系统:SQL Server2000, SQL Server2005, Oracle,DB2,MySql
3. 网站编程:Marcomedia, HTML, Altova XML Suite,ASP, JSP, J2EE, J2SE,
PHP,ASP.NET,VB.NET, ColdFusion,ajax
4. 操作系统:Unix, Linux,Linux环境下嵌入式开发技术,Sun Solaris,IBM AIX
5. 办公软件:OFFICE(EXCEL、WORD、POWERPOINT)
6. 多媒体制作:Authorware7.0 , Director MX 2004
7. 图形动画类:Photoshop, Illustrator, CorelDRAW, FreeHand,
Flash ActionScript高级编程,3DMAX,AutoCAD2007 ,Maya
具有下述任何一种或几种国际IT认证证书者优先考虑:
1. 微软认证证书MCP / MCSA / MCSE / MCDBA / MCSD
2. SUN Java认证证书
3. Oracle认证证书
4. Macromedia认证证书
5. Linux认证证书
6. CIW (Certified Internet Webmaster) Associate/Professional/Master认证证书

有意者请把简历发到如下地址:abc@ciitc.com QQ:174629429 MSN:bjcosun@hotmail.com
http://www.ciitc.com
knowledge_Is_Life 2008-05-01
  • 打赏
  • 举报
回复
好像没那么简单,呵呵.
JBossWeek 2007-11-30
  • 打赏
  • 举报
回复
应该是加载jni动态链接库的classloader和加载ejb组件的classloader不同造成的,你用的是ejb3还是ejb2?
fancuixia 2007-11-30
  • 打赏
  • 举报
回复
SORRY,本地只有一个JVM,但EJB和Native Code JNI Class 在不同的Class Loader中。

The programmer may use a single library to store all the native methods
needed by any number of classes, as long as these classes are to be
loaded with the same class loader. The VM internally maintains a list
of loaded native libraries for each class loader. Vendors should choose
native library names that minimize the chance of name clashes.

见:http://java.sun.com/j2se/1.5.0/docs/guide/jni/spec/design.html


JBossWeek 2007-11-28
  • 打赏
  • 举报
回复
ejb规范由于考虑到可移植性,确实没有提供对jni的支持。但是在具体应用中,为什么不能在web层调用而非要在ejb中调用jni呢?另外不太明白“但EJB组件和JBoss不在同一个JVM中”是什么意思?

6,787

社区成员

发帖
与我相关
我的任务
社区描述
JBoss技术交流
社区管理员
  • JBoss技术交流社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧