javax.jms API不适用于JNLP推出的客户端

时间:2015-07-31 02:58:51

标签: java noclassdeffounderror jnlp

我有一个Java swing GUI客户端。 它通过JNLP传送到用户的PC以响应网页请求。 它有一个javax.jms.MessageListener,它监听远程互联网服务器(glassfish 4)上的jms.Queue,其消息监听器是MDB。

当我直接从eclipse启动客户端时,一切正常。

但是当我从浏览器启动时,单击指向JNLP文件的链接时,客户端无法使用NoClassFound为javax.jms.MessageListener进行部署。

经过几个小时后,我突然意识到这可能是因为Java JRE不包含JMS API。因此,我需要将客户端使用的JMS类打包在我的.ear包中。

所以我真的很感激有人在我开始之前告诉我他们是否认为我在正确的轨道上。如果这样确认我应该将MessageListener.class放在我的.ear / .war包中。

感谢您的帮助..

1 个答案:

答案 0 :(得分:0)

这是一个愚蠢的问题。当然,解决方法是将我需要的几个JMS .class文件打包到.jar文件中下载的JNLP文件。

放入整个Javax.jms.jar文件是不可想象的,因为它必须与客户端一起下载。

对于其他新手,只需将jms.jar更改为jms.zip即可以.class格式提取整个API。然后重新包装我需要的东西。