Eclipse WTP中不同类型的Java EE项目之间有什么不同?
有:
正如标题所示,这与Java EE和Glassfish有关.
从我所学到的,应用程序客户端在一些能够与glassfish交谈的应用程序客户端中执行.但是关于注释似乎存在局限性.
有人能举例说明从两种不同的应用程序类型连接到glassfish应用程序服务器的区别吗?
应用程序客户端方法的好处是什么,以及在为Java EE开发应用程序客户端时最常用的方法是什么?
我在从应用程序客户端访问有状态会话bean(SFSB)时遇到了一些麻烦.我正在使用JBoss 5.0.1.GA. 应用程序客户端和EJB都打包在一个部署的EAR中,我有其他应用程序客户端可以正常工作.到目前为止,我只使用了无状态会话bean(SLSB),但据我所知,SLSB和SFSB之间的差异不应影响从应用程序客户端访问它们的方式.
类/接口的结构:
@Local public interface A {...}
@Stateless public class ABean implements A {...}
@Remote public interface B {...}
@Stateful public class BBean implements B {
@EJB private A anInstanceOfA;
@PostConstruct private void init() {
this.anInstanceOfA.someMethod();
}
}
Run Code Online (Sandbox Code Playgroud)
应用程序客户端通过"appclient-launcher"运行,如"如何在JBoss 5中使用应用程序客户端"中所述.执行"BBean"查找工作正常,直到在执行init()期间调用(本地)ABean上的someMethod().在该调用期间,容器抛出InvalidStateException("本地调用:安全上下文为空")(作为根本原因).当我将有状态bean更改为无状态bean时,一切正常(当然,除非保留状态).有趣的是,我可以使用Web应用程序(在JSF托管bean中)完全相同的SFSB.
难道我做错了什么?我应该如何从应用程序客户端使用SFSB?
到目前为止,我还没有找到任何关于这个特定问题的有用信 [#JBAS-4317]安全上下文中的类似上下文中提到了异常,但考虑到它被标记为已完成并在JBoss 5.0.0.Beta3中得到修复,似乎不是同一个问题.
在对来自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上执行相同的操作,我也不满意.