什么时候使用哪个?当我想要JSF+无状态Bean+JPA实体应用程序时,我需要EJB项目和DynamicWeb项目集成到EAR项目中? 最佳答案 EJB项目是专注于企业JavaBeans开发的项目。通常,EJB依赖于使用JPA技术实现的实体Bean(将JPA视为EJB的依赖项)。您可以选择独立于EJB创建JPA项目的原因是有些人可能不想使用(或不需要)EJB,但他们仍然需要使用ORM框架,例如JPA。这种情况可能是一个Web项目(即JSF),它会直接使用JPA来实现持久性(没有EJB)。要点是,虽然EJB3使用JPA来实现持久性,但
考虑一下我正在使用的一些代码的简化View:@Stateless(...)@Remote(...)@TransactionAttribute(TransactionAttributeType.MANDATORY)publicclassFirstEjbType{@EJB(...)privateSecondEjbTypesecondEjb;@EJB(...)privateThirdEjbTypethirdEjb;publicvoiddoSomething(){secondEjb.doSomething();//WRITESSOMETHINGTOTHEDATABASEthirdEjb.doS
我正在尝试以企业“业务”方式重写我的旧应用程序。所以,我有一个带有登录模块的Swing客户端和我自己从头开始创建的服务器。客户端使用ssl证书加密到服务器的TCP连接(我检查服务器上的客户端证书和客户端上的服务器证书),然后服务器使用数据库对用户进行身份验证和授权。现在我正试图让它与由WildFly8CR1托管的ejb一起工作。我想使用相同的客户端-服务器key对将Swing客户端连接到WildFly服务器,然后使用存储在MySQL数据源中的名称和凭据对用户进行身份验证。我还在数据库中存储了角色,我想用它们来配置客户端主体。我有简单、基本的EJB调用:Contextctx=newIni
我正在尝试在同一个Glassfish中使用本地EJB,但耳朵不同。但是Glassfish找不到本地EJB或者不能消费我读了这个:根据JavaEE教程,@Localbean的客户端“必须在与其访问的企业bean相同的JVM中运行。”第一耳,我在jar中有本地接口(interface)@LocalpublicinterfaceMyLocalBean{intgetNumber(intnum3);}在另一个jar里,我有实现@Stateless@LocalBeanpublicclassMyLocalBeanImplimplementsMyLocalBean,Serializable{publi
我正在编写一个企业Java应用程序,它使用异步EJB3.1方法并行执行多个任务。为了支持取消长时间运行的任务,我一直在尝试使用Future接口(interface)。不幸的是,尽管取消调用正在返回,但从客户端应用程序调用future.cancel(true)似乎对执行任务的bean的session上下文没有影响是的。我有一个简单的界面:publicinterfaceAsyncInterface{Futurerun()throwsException;}使用bean实现如下:@Stateless@Remote(AsyncInterface.class)publicclassAsyncBea
我正在尝试设置Jboss服务器“客户端”(版本5.1.0)以使用来自另一个Jboss服务器(10.90.0.91)的远程EJB,但我无法使用Jboss客户端。我可以在我的客户端上使用这个简单的代码获取远程EJB:InitialContextctx=null;try{HashtablejndiProps=newHashtable();jndiProps.put(InitialContext.INITIAL_CONTEXT_FACTORY,"org.jnp.interfaces.NamingContextFactory");jndiProps.put(InitialContext.PROV
我想使用@Inject@CurrentUser跨所有层(即web层、EJB层)注入(inject)当前用户。为此,我有以下CDIProducer方法:@Named@SessionScopedpublicclassUserController{@ResourceSessionContextsessionContext;@EJBUserDaouserDao;@Produces@CurrentpublicUsergetCurrentUser(){Stringusername=sessionContext.getCallerPrincipal().getName();Useruser=user
我编写了一个小型网络服务,当我尝试将其部署到glassfish时出现此错误:部署期间发生错误:加载应用程序时出现异常:EJB容器初始化错误。有关详细信息,请参阅server.log。@WebService(serviceName="Mathematics")publicclassMathematics{@WebMethod(operationName="add")publicdoubleadd(@WebParam(name="a")doublea,@WebParam(name="b")doubleb){returnNovusMath.add(a,b);}}server.log的相关部分
EJBbean能否实现多个用户定义的接口(interface),业务接口(interface)(@Local、@Remote)或无接口(interface)View(@LocalBean)除外?例如定义两个接口(interface)UserInterface1,UserInterface2,没有注释。这是否合法实现:@StatelesspublicclassMyBeanimplementsUserInterface1,UserInterface2{...那我还有一个困惑:@StatelesspublicclassMyBeanimplementsRunnable{...//insideI
这更多是我目前遇到的架构问题。我需要有关在项目中集成EJB和JPA的最佳实践的帮助。我想要EJB来完成服务层的工作,其中包含我的应用程序的业务逻辑。就在那之下,我想要一个DAO层,我的EJB将有一个句柄,使用DAO工厂尽可能地分离这两个层。知道了这一点,我显然也不能将我的DAO作为EJB,因为我不希望它们自动注入(inject),因为我希望它们通过工厂创建。这导致我使用手动创建实体管理器Persistence.createEntityManagerFactory("PortalEJB").createEntityManager();现在...这个调用位于我的抽象JPADAO中:publ