Mar*_*tin 4 ejb java-ee application-client maven
在对来自Sun的EJB进行原始培训时,我遇到了一个相当奇怪的企业应用程序客户端概念,它具有依赖注入和主类的概念:
@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;
}
Run Code Online (Sandbox Code Playgroud)
我只是找不到任何背景信息.喜欢:
是的我确实使用NetBeans - 但是如果我不能在命令行和/或Maven上执行相同的操作,我也不满意.
这应该是怎么回事.
这必须是Java EE 应用程序客户端(另一种类型的Java EE模块,允许包装Java SE应用程序,将其部署到应用程序服务器并使用已部署的EJB,平台服务和资源)和Java EE Application Client Main-Class确实支持在带注释的字段或方法中注入资源static.
如何在没有NetBeans的情况下启动这样的应用程序.
假设将Application Client打包并部署到应用程序服务器,则需要启动Application Client Container(ACC).该命令是特定于应用程序服务器
例如,使用GlassFish,您必须使用该appclient命令.使用JBoss,请参阅此Wiki页面以获取(huge)命令.对于其他应用服务器,请参阅各自的文档:)
如何在没有NetBeans(iE with Maven)的情况下构建此构造.
一个应用程序客户端是包含一个普通的JAR:
META-INF/application-client.xml- (可选)Java EE应用程序客户端部署描述符.META-INF/MANIFEST.MF文件引用主类,其中列明了Java客户端的完整的包前缀和类名.回答我自己的问题(再次)
这应该如何运作?
main() 类部署到应用程序服务器,应用程序服务器注入依赖项并调用 main()。在 glassfish 上,部署是通过特殊命令 ( appclient) 完成的。
如何在没有 NetBeans 的情况下启动这样的应用程序?
正如 glassfish 上所说,您可以使用 启动客户端appclient。例如:
appclient -enableassertions -mainclassuctionapp.TestClient -jar target/AuctionApp-ejb.jar
如何在没有 NetBeans 的情况下构建此构造(即使用 Maven)?
您创建一个普通的可执行 jar。仅当您的远程接口也位于库内(无论如何这是一个很好的实践)并且该库包含在可执行库内时,它才会起作用。您可以使用maven-assembly-plugin它来创建可执行文件。就像创建普通的可执行 jar 一样。
感谢您的所有帮助。如果没有这样我就不会发现细节。
| 归档时间: |
|
| 查看次数: |
2504 次 |
| 最近记录: |