`
jeff312
  • 浏览: 77331 次
  • 性别: Icon_minigender_1
  • 来自: 新加坡
社区版块
存档分类
最新评论

部署EJB一定要仔细观察应用服务器的控制台消息

    博客分类:
  • J2EE
阅读更多
    EJB 的部署一向是个头疼的问题,在部署行为和默认设置上,应用服务器之间,甚至是同一服务器的不同版本之间都可能有着很大的差异。这几天刚用上JBoss 5.10GA,碰上一个傻帽问题,发现原因后差点没气得呛死。

    事情是这样,照规矩我在拿到新的服务器时都要先写一个HelloWorld试验,图方便就在MyEclipse里直接建立了一个EAR项目(PlayEJB1),同时选择新建一个EJB项目和一个WEB项目。EJB项目里写了一个HelloStatelessBean,Web项目里新建一个JSP写好JNDI查找的字串如下:
"HelloStatelessBean/local"
实验证明,JNDI查找失败,抛出NameNotFoundException。

    我非常奇怪,HelloStatelessBean是这个EJB 的ejbName,这在JBoss部署项目时在控制台里打印得白纸黑字的,怎么可能NameNotFound?抱着试一试的态度,我把EAR项目卸除,然后仅仅部署里面的EJB项目,这一次居然试验成功没有异常!由此想到,JBoss在部署EAR项目时很可能采用了与单独部署EJB项目不同的JNDI命名策略。仔细观察控制台消息,几行平日让我熟视无睹的INFO日志让我恍然大悟:
23:14:36,093 INFO  [EJBContainer] STARTED EJB: com.jeff.ejb.HelloStatelessBean ejbName: HelloStatelessBean
23:14:36,140 INFO  [JndiSessionRegistrarBase] Binding the following Entries in Global JNDI:

PlayEJB1/HelloStatelessBean/remote - EJB3.x Default Remote Business Interface
PlayEJB1/HelloStatelessBean/remote-com.jeff.ejb.HelloStatelessRemote - EJB3.x Remote Business Interface
PlayEJB1/HelloStatelessBean/local - EJB3.x Default Local Business Interface
PlayEJB1/HelloStatelessBean/local-com.jeff.ejb.HelloStatelessLocal - EJB3.x Local Business Interface

原来如此!EAR项目里的EJB的JNDI,被JBoss加上了EAR项目名作为前缀,单独部署EJB项目时JNDI这样查"HelloStatelessBean/local",而在EAR里变成了"PlayEJB1/HelloStatelessBean/local"。其实JBoss这样做是有些道理的,最起码有了EAR项目名称作为命名空间,EJB的重名可能大大减少。但是开发者就倒霉了,每个服务器都有自己的个性,开始干活之前还要一个个分别调教,太累了。

分享到:
评论
1 楼 gumuzhiyu 2009-08-10  
呵呵,跟楼主犯了个差不多的错误,我原来用的jboss是5.0后来部署到远程服务器上后发现用 JUnit进行测试老是出错,弄了很长时间,才发现远程服务器上的Jboss是5.1的,而我进行JUnit测试的jar还都是5.0的,也希望大家能以后注意..

相关推荐

    jboss下部署ejb详细步骤

    本文将深入探讨在JBoss应用服务器上部署EJB的详细步骤,这对于理解Java EE架构和进行实际开发至关重要。 一、EJB简介 EJB是Java EE规范的一部分,它提供了一种标准的方式来实现业务逻辑,分为三种主要类型:会话...

    EJB配置部署打包实例

    3. **部署过程**:将EJB的JAR文件(包含bean类、接口和部署描述符)及所有依赖库上传到服务器,然后通过服务器管理控制台或命令行工具进行部署。 4. **测试验证**:部署后,可以编写客户端代码或使用服务器提供的...

    ejb3.0写的登陆应用

    - 利用JBoss提供的管理控制台或命令行工具进行应用的部署、监控和调试。 7. **性能优化**: - 考虑缓存策略,如使用EHCache缓存频繁查询的结果,提高响应速度。 - 使用连接池管理数据库连接,提高资源利用率。 ...

    ejb 打包 部署

    部署EJB涉及将打包好的EJB JAR或EAR文件上传到应用服务器的过程。以下是一般步骤: 1. **选择应用服务器**:常见的应用服务器如WildFly、TomEE、WebLogic等都支持EJB部署。 2. **配置服务器**:根据服务器文档配置...

    JBoss下配置和部署EJB英文版.pdf

    本书作为Richard Monson-Haefel所著《Enterprise JavaBeans》第三版的补充材料,详细介绍了如何在JBoss应用服务器上构建和部署EJB应用。 #### 二、EJB基础知识 **1. EJB(Enterprise JavaBeans)简介** - **定义*...

    weblogic部署EJB2.0 实现本地接口的SessionBean

    - 部署到WebLogic:使用WebLogic管理控制台或WLST(WebLogic Scripting Tool)将应用程序部署到服务器或集群。 - 配置客户端:获取Bean的本地接口,并通过JNDI查找来实例化Bean。 4. ** ejb子文件夹内容**: 在...

    Jboss下开发ejb应用之一会话bean的应用

    本文将围绕“Jboss下开发ejb应用之一会话bean的应用”这一主题,深入探讨如何在Jboss应用服务器上开发和部署会话Bean,以及涉及到的相关工具和源码。 会话Bean是EJB的一种类型,它代表了业务逻辑组件,为客户端提供...

    maven-jboss-plugin部署EJB

    【标题】"maven-jboss-plugin部署EJB"涉及到的是使用Maven插件来管理和部署Java企业版(Java EE)中的EJB(Enterprise JavaBeans)组件到JBoss应用服务器的过程。这一技术对于开发者来说,是将Java后端服务集成到...

    WebLogic11g-EJB部署

    4. **创建部署文件**:在部署EJB时,可能需要一个应用部署描述符(如application.xml),它定义了应用程序的结构以及各个模块之间的关系。 5. **部署到WebLogic**:使用WebLogic管理控制台或命令行工具(如WLST - ...

    EJB课件

    此外,还会讲解如何在Jboss中部署EJB应用,包括创建部署描述符、打包应用、以及通过管理控制台或命令行进行部署。 "编写JBoss程序必须导入的包"这部分内容涉及到Java编程中使用的库和API,如Java EE API、Jboss特定...

    EJB3应用实例

    在JBOSS7中部署EJB3应用,我们需要以下步骤: 1. **环境准备**:确保已经安装并配置好JBOSS7服务器,这通常涉及到下载JBOSS AS 7,解压到指定目录,并启动服务器。 2. **创建EJB项目**:使用IDE如Eclipse或...

    Weblogic下ejb配置

    WebLogic Server是Oracle公司的一款企业级Java应用服务器,它提供了对EJB(Enterprise JavaBeans)的强大支持。EJB是Java EE平台的核心组件,用于构建分布式、面向服务的企业级应用程序。本篇文章将深入探讨在...

    Jboss下开发ejb应用之一实体bean的应用

    最后,将EJB项目打包成JAR或WAR文件,部署到JBoss应用服务器。可以通过命令行工具,如jboss-cli.sh或管理控制台完成部署。部署成功后,客户端就可以通过JNDI查找并调用实体Bean的方法。 总结,开发EJB应用,特别是...

    websphere应用服务器部署[整理].pdf

    它提供了强大的平台支持Java EE应用程序的部署与运行,包括但不限于EJB容器、JSP/Servlet引擎、JMS消息服务等。 #### 二、WebSphere应用服务器部署流程 本节主要介绍如何在Windows 2000或2003系统上部署WebSphere...

    应用部署文档说明

    首先,我们要理解WebLogic服务器是Oracle公司的一款企业级Java EE应用服务器,它提供了对Java应用程序和Web服务的全面支持。在WebLogic中部署Web应用通常包括以下步骤: 1. **环境准备**:确保已安装并配置好...

    EJB2和EJB3 消息驱动bean

    - 部署EJB至服务器,启动并运行发送方程序,在控制台将看到消息处理的输出。 #### 二、EJB3消息驱动Bean ##### 1. **EJB3简介** EJB3引入了更为简洁的编程模型,简化了MDB的开发过程。相较于EJB2,EJB3的MDB开发...

    EJB3.0+weblogic操作文档

    - 在WebLogic管理控制台中,创建一个新的应用程序部署,上传并配置这个jar文件。 - 配置EJB的JNDI名称,通常通过`@Stateless(mappedName = "Company")`中的`mappedName`来指定。 5. **编写客户端访问**: - 创建...

    websphere环境下ejb编程

    5. **部署到WebSphere**:将EJB JAR或EAR文件上传到WebSphere应用服务器,通过管理控制台或命令行工具进行部署。WebSphere提供了强大的管理功能,如集群、负载均衡、热部署等。 6. **测试与调试**:部署后,可以...

Global site tag (gtag.js) - Google Analytics