Jakarta ee 带有main()的EJB-这是怎么回事?
在对Sun的EJB进行最初的培训时,我遇到了一个相当奇怪的概念,即企业应用程序客户端,它具有依赖注入的概念和一个主类:Jakarta ee 带有main()的EJB-这是怎么回事?,jakarta-ee,ejb,maven,application-client,Jakarta Ee,Ejb,Maven,Application Client,在对Sun的EJB进行最初的培训时,我遇到了一个相当奇怪的概念,即企业应用程序客户端,它具有依赖注入的概念和一个主类: @javax.ejb.EJB private static auctionsystem.ejb.AuctionManagerRemote auctionManager; public static void main (String[] args) { TestClient.logger.entering (TestClient.TAG, "main");
@javax.ejb.EJB
private static auctionsystem.ejb.AuctionManagerRemote auctionManager;
public static void main (String[] args)
{
TestClient.logger.entering (TestClient.TAG, "main");
final String message = "hello";
TestClient.logger.log (Level.INFO, "Sending {0}", message);
final String reply = auctionManager.communicationTest (message);
TestClient.logger.log (Level.INFO, "Received {0}", reply);
TestClient.logger.exiting (TestClient.TAG, "main");
return;
}
我就是找不到这方面的背景资料。比如:
静态
注释字段或方法中提供支持
如果没有NetBeans,如何启动这样的应用程序
假设应用程序客户端已打包并部署到应用程序服务器,则需要启动应用程序客户端容器(ACC)。该命令特定于应用程序服务器
例如,对于GlassFish,您必须使用命令。对于JBoss,请参见(巨大的)命令。有关其他应用程序服务器,请参阅其各自的文档:)
如何在没有NetBeans(即使用Maven)的情况下构建此构造
应用程序客户端是一个普通的JAR,包含:
- 访问bean的Java类
- 一个
-(可选)JavaEE应用程序客户端部署描述符META-INF/application client.xml
- 引用主类的
文件,该文件说明Java客户端的完整包前缀和类名META-INF/MANIFEST.MF
- 特定于应用服务器的部署描述符-(可选)
- JavaEE教程
- NetBeans教程
- 使用WebLogic Server开发应用程序
- 玻璃鱼发展指南
- 这是怎么回事
main()类部署到应用程序服务器,该服务器注入依赖项并调用main()。在glassfish上,使用特殊命令(
)完成部署appclient
- 如果没有NetBeans,您如何启动这样的应用程序
如glassfish上所述,您可以使用
启动客户端。例如: appclient-enableassertions-mainclass auctionapp.TestClient-jar目标/auctionapp-ejb.jarappclient
- 如何在没有NetBeans的情况下(即使用Maven)构建此构造
您可以创建一个普通的可执行jar。只有当您的远程接口也在库中(这是一个很好的实践)并且该库包含在您的可执行库中时,它才会起作用。您可以使用
创建可执行文件。与创建普通可执行jar的方法相同maven汇编插件
- 回答我自己的问题(再次)
谢谢你的帮助。如果没有它,我就不会知道细节。对于与Sun的工具无关的基本介绍(是否有人讨厌他关于J2EE教程的介绍):@Tom Yeah,这有点烦人。实际上,除了Java EE教程之外,我根本找不到Java EE 5+(即使用DI)的好的在线资源。似乎没有办法用JBoss 4运行客户端,但下面是如何用JBoss 5实现的:如果将应用程序客户端和web模块打包到
ear
package中,如何将应用程序客户端注入web模块以访问它?你们知道我们是如何使用web模块中的@EJB
注入EJB的,我该如何使用应用程序客户机呢?