EJB3核心规范解读:深入J2EE架构

需积分: 10 0 下载量 128 浏览量 更新于2024-07-28 收藏 2.07MB PDF 举报
"EJB3核心规范的中文翻译,由卫建军翻译,涵盖了EJB3.0的新特性、角色定义、企业bean的特性、会话、实体和消息驱动对象的介绍,以及与CORBA和Web服务协议的映射。" EJB(Enterprise JavaBeans)是一种Java EE(现在称为Jakarta EE)组件模型,用于构建可扩展的、基于服务器的企业级应用程序。EJB3.0是EJB规范的一个重要版本,它引入了许多改进,旨在简化开发过程并提高生产力。 **EJB3.0的新特性** EJB3.0的核心新特性包括注解驱动的编程模型,这减少了对XML配置文件的依赖。开发者可以直接在类和方法上使用注解,如`@Entity`、`@Stateless`、`@PersistenceContext`等,来声明bean的角色和行为。此外,EJB3.0引入了JSR-220的持久化API,使得对象持久化变得更加直观和简单。 **EJB角色** EJB3.0定义了几种关键角色,包括: - **企业bean提供者**:编写和打包EJB的开发者。 - **应用组装者**:将多个bean组合成一个企业应用的人。 - **部署人员**:负责将应用部署到EJB服务器上。 - **EJB服务器提供商**:实现EJB容器和服务的厂商。 - **EJB容器提供者**:提供运行EJB的环境。 - **持久化提供商**:提供数据库存储解决方案。 - **系统管理员**:管理服务器和部署设置。 **企业bean** 企业bean是EJB的核心,它们可以是会话bean、实体bean或消息驱动bean,分别处理临时交互、持久状态管理和异步消息处理。 - **会话bean**:提供方法供客户端调用,可以是无状态(每个请求独立)或有状态(保持客户端的会话信息)。 - **消息驱动bean**:通过JMS接收和处理消息,通常用于异步处理。 - **实体bean**:代表业务对象,可以持久化到数据库,有单例和多例两种模式。 **协议映射** EJB3.0规范还讨论了EJB如何与CORBA协议和Web服务协议进行标准化映射,以促进跨平台互操作性和服务集成。 **会话bean的客户端视图** 会话bean的客户端视图定义了客户端如何与bean交互。客户端可以通过接口调用bean的方法,而bean的实现则处理业务逻辑和服务调用。 EJB3核心规范提供了EJB组件的基础,包括其设计原则、使用方式和与其他技术的集成,对于理解Java EE应用程序的架构和开发流程至关重要。这个中文翻译版本为那些希望深入研究EJB但对英文文档感到困扰的开发者提供了一个宝贵的资源。

com.bes.enterprise.appserv.deployment.exception.StartupFailedException: Exception occurred while starting the application. at com.bes.enterprise.appserv.deployment.manager.AppDeployManager$2.run(AppDeployManager.java:253) at com.bes.enterprise.appserv.deployment.manager.AppDeployManager.applyDeploymentContext(AppDeployManager.java:297) at com.bes.enterprise.appserv.deployment.manager.AppDeployManager.doLoad(AppDeployManager.java:245) at com.bes.enterprise.appserv.deployment.manager.ApplicationLifecycle.load(ApplicationLifecycle.java:77) at com.bes.enterprise.appserv.deployment.AppDeployer.load(AppDeployer.java:264) at com.bes.enterprise.appserv.deployment.handler.EnableApplicationHandler.doLoad(EnableApplicationHandler.java:133) at com.bes.enterprise.appserv.deployment.handler.EnableApplicationHandler.load(EnableApplicationHandler.java:71) at com.bes.enterprise.appserv.deployment.handler.EnableApplicationHandler.doApplicationProcess(EnableApplicationHandler.java:54) at com.bes.enterprise.appserv.deployment.handler.AbstractApplicationHandler$1.call(AbstractApplicationHandler.java:69) at com.bes.enterprise.appserv.deployment.handler.AbstractApplicationHandler$1.call(AbstractApplicationHandler.java:66) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:750) at com.bes.enterprise.appserv.deployment.handler.AbstractApplicationHandler$TerminableThread.run(AbstractApplicationHandler.java:177) Caused by: com.bes.enterprise.ejb.BESException: Creating application failed: /besweb/webapp/prpall: ContainerBase.addChild: start: com.bes.enterprise.webtier.LifecycleException: Failed to start component [WebEngine[com.bes.appserv].VirtualHost[server].DefaultContext[/prpall]] at com.bes.enterprise.ejb.assembler.classic.assemblercontext.ApplicationDeployer.doCreateApplication(ApplicationDeployer.java:458) at com.bes.enterprise.ejb.assembler.classic.assemblercontext.ApplicationDeployer.createApplication(ApplicationDeployer.java:342) at com.bes.enterprise.ejb.assembler.classic.assemblercontext.ApplicationDeployer.createApplication(ApplicationDeployer.java:331) at com.bes.enterprise.ejb.assembler.classic.Assembler.createApplication(Assembler.java:258) at com.bes.enterprise.appserv.deployment.manager.AppDeployManager$2.run(AppDeployManager.java:251) ... 14 more Caused by: java.lang.IllegalStateException: ContainerBase.addChild: start: com.bes.enterprise.webtier.LifecycleException: Failed to start component [WebEngine[com.bes.appserv].VirtualHost[server].DefaultContext[/prpall]] at com.bes.enterprise.webtier.core.ContainerBase.addChildInternal(ContainerBase.java:745) at com.bes.enterprise.webtier.core.ContainerBase.addChild(ContainerBase.java:717) at com.bes.enterprise.webtier.core.DefaultHost.addChild(DefaultHost.java:711) at com.bes.enterprise.webext.BESWebAppBuilder.deployWebApps(BESWebAppBuilder.java:511) at com.bes.enterprise.ejb.assembler.classic.assemblercontext.ApplicationDeployer.deployWebApps(ApplicationDeployer.java:1499) at com.bes.enterprise.ejb.assembler.classic.assemblercontext.ApplicationDeployer.doCreateApplication(ApplicationDeployer.java:437) ... 18 more

444 浏览量