【发布时间】:2011-04-20 10:49:02
【问题描述】:
我正在开始一个新的企业项目,并将Glassfish 3 用作应用程序服务器,将NetBeans 6.9 用作IDE。我有一些EJBs 想从桌面Swing 应用程序远程访问。 AFAIK 有两个选项 - 使用普通的 JNDI 查找或在应用程序客户端容器中运行 Swing 应用程序并使用 @EJB 注释。我成功地尝试了第一个选项,但我必须复制所有 glassfish 库以满足依赖项(大约 50MB,我觉得不正常)。现在我尝试第二个选项。在NetBeans 中,我创建了一个新的Enterprise Application Client 项目,将EJB 项目添加为依赖项并按运行。我收到以下异常:Sniffers with type [ejb] and type [appclient] should not claim the archive at the same time。现在,如果我在应用程序客户端的项目属性中删除 EJB 项目旁边的 package 复选框,我的远程接口会出现不同的 ClassNotFound 异常。
我觉得有点卡住了:( 有经验的人可以告诉我他们如何使用Glassfish 3 远程访问他们的 EJB?正如我上面所写的,我使用第一个选项成功了,但是 50MB 太多了我对一个简单的客户的看法。
编辑:如果您在远程服务器上的ejbs 中有业务逻辑,您会选择哪种方法进行客户端的部署和远程访问?
感谢您的任何建议!
祝你一切顺利,佩塔
【问题讨论】:
-
您下载的是完整版还是只下载了网页配置文件? “嗅探器”是 glassfish 容器的一部分,当您部署 jar 文件时,它会确定启动哪个容器。它自省 jar 文件以查找诸如 web.xml 等的告示文件。由于 sniffer 抱怨无法找到 ejb 容器,我猜你可能已经下载了 web 配置文件。尝试获得“全平台”
-
我下载了完整版,我认为客户端容器在抱怨,因为它找到了两个东西 - ejb 和应用程序客户端,但它不知道要运行哪个。但是我怎么能引用我的 ejb 项目呢?!!!
-
我不确定你的问题出在哪里,但如果你给我你的电子邮件,我会寄给你一个样本供你查看
-
@Chuk 非常感谢!在这里 - petar.minchev(at)gmail.com 只需确保您的示例保证客户端没有安装 Glassfish 服务器。如果您向我发送一个示例,包括应用程序客户端容器并且没有它(完全独立),我会很高兴。
-
@Chuk - 我现在感觉自己像个笨蛋:(问题是我在应用程序客户端上单击了运行,然后 Netbeans 给出了嗅探器异常。但是如果我在耳朵上单击运行,那么一切都很好:)
标签: java netbeans glassfish ejb application-client