1.JBoss简介 <ejb-jar> 客户端:web应用中对web.xml不需要添加ejb信息,不需要jboss-web.xml文件。引用ejb对象的jsp文件如下: ······ 演示2:使用jboss.xml文件。 在 缺省情况下JBoss的JNDI服务将通过ejb-jar.xml中<ejb-name>XXX</ejb-name>中的 XXX来使用EJB的home interface。但是如果有多个ejb对象在相同的ejb jar包中,在ejb-jar.xml中通过<ejb-name>XXX</ejb-name>就可能不能很好的表示某一个 ejb对象,所以一般我们希望可以提供一些附加的信息,例如采用这样的格式"[应用名]/[bean名]"来引用一个EJB对象。这时JNDI服务就可能 不能正确地找到你的ejb对象,我们就需要使用jboss.xml文件,通过它实现jndi 名到ejb名的重定向。这个文件必须和ejb-jar.xml一起放到META-INFO目录下。 ejb-jar.xml: <ejb-jar> jboss.xml: <jboss> 客户端:需要使用新的jndi名进行ejb定位。 ······ 第二种方式: 把ejb 和web应用包装成一个企业应用包。部署ear时可以简单地把通过application.xml描述ejb jar包和web应用的war包,同样在web.war中不需要提供特殊的信息就可以和第一种方式一样使用ejb对象。客户端代码也不需要进行改动。这里 不再举例说明。 此外我们可以进行更进一步的部署,这时需要使用到web.xml和jboss-web.xml。jboss-web.xml是JBoss提供的一个针对web应用进行配置的文件。jboss-web.xml和web.xml一起放在web应用的WEB-INF目录下。 演示1:改动web.xml文件,添加<ejb-ref>标记,不使用jboss-web.xml文件。 (注意<ejb-ref>包括内部引用和外部引用。如果是同一个单元的可以通过<ejb-link>直接进行引用,而不用提供其他信息。) web.xml: ······ 客户端:由于在web.xml中引入ejb引用描述这时ejb定位发生了变化: ······ 演示2:联合使用web.xml和jboss-web.xml web.xml ······ jboss-web.xml <ejb-ref> 客户端: nitialContext ctx = new InitialContext(); 以上的所有演示说明了ejb-jar.xml、jboss.xml、web.xml、jboss-web.xml之间的基本关系和它们的使用方式。它们是部署各类ejb对象的关键文件。接下来介绍针对不同类型的ejb对象所需要的特殊配置。 3.JBoss3.0中对于CMP2.0 Entity Bean的有关配置 JBoss3.0 中JBossCMP引擎实现了EJB2.0 CMP2.0规范。JBoss3.0以前的版本CMP的引擎是Jaws,它通过standardjaws.xml和jaws.xml进行有关的配置。在新 的JBossCMP引擎中Jboss3.0通过standardjbosscmp-jdbc.xml和josscmp-jdbc.xml来配置 Entity Bean。JBoss3.0首先处理standardjbosscmp-jdbc.xml然后根据ejb jar中是否提供jbosscmp-jdbc.xml来做进一步处理。通过standardjbosscmp-jdbc.xml和jbosscmp- jdbc.xml可以为entity bean的部署提供如下的功能有: l 指定所使用的数据源和对应的类型映射 l 指定一些引擎关心的属性 l 指定引擎如何创建和管理数据库表的原则 l 描述finder和ejbSelect方法 l 指定属性和字段的类型映射 这 里主要根据standardjbosscmp-jdbc.xml/jbosscmp-jdbc.xml介绍CMP2.0的配置方法。JBoss中原有的 Jaws引擎的配置方法和新的JBossCMP的配置方法类似。这些文件的具体的信息可以参考JBoss安装路径下/docs/dtd中对应的DTD文 件。 3.1增加新的数据源 JBoss自带的数据库是Hypersonic数据库,我们可以增加一些新的数据源。具 体的步骤很简单,参照Jboss安装目录下/docs/examples/jca中的*-service.xml文件可以增加找到对应类型的数据库配置样 本文件。以mysql-service.xml文件为例,它可以配置一个MySQL数据库作为Entity Bean的数据源。以下演示创建一个名为MySQLDS的MySQL数据源。 图一是配置好的mysql-service.xml文件的一段代码样本,通过属性设置可以定制数据源的名称和有关连接的其他属性。注意该文件中所有name属性必须保持一致。 图一 mysql-servic.xml的样本代码 在配置好这个文件后,把它部署在JBoss的deploy目录下,把对应的jdbc驱动也放在lib目录下。重新启动Jboss就会加载这个新的数据源。 3.2 Entity Bean 对数据源的使用 第一种方式: 直 接改动standardjbosscmp-jdbc.xml。把原有的数据源java:/DefautlDS屏蔽掉使用新的数据源java: /MySQLDS。(Java前缀是必须的。)不需在其他地方作改动。JBoss会实现新的数据源做为缺省的数据源。图二是一个配置好的文件片断。 图二 standardjbosscmp-jdbc.xml的样本代码 第二种方式: 由 于有可能不同的Entity Bean使用不同的数据源,而不是都使用同样的缺省配置,所以必须为单独的Entity Bean提供定制数据源信息的支持。这时不需要改动standardjbosscmp-jdbc.xml文件,可以通过在Entity Bean的jar包中META-INFO目录下添加新的部署文件jbosscmp-jdbc.xml来完成。通过这个文件可以描述特定的Entity Bean的关于数据源的配置信息。图三是一个配置好的文件片断。 图三 jbosscmp-jdbc.xml的样本代码 4.JBoss3.0中对于Message Driven Bean的配置 在JBoss 中开发MDB需要使用JMS功能。JMS是Sun公司开发的面向消息的中间件API。它的主要目的是创造一种统一的面向消息编程的JavaAPI,从而避 免使用提供商特定的API。现在有几种不同的JMS系统可供使用。JBoss3.0中提供的是JBossMQ。 4.1 JBoss3.0中配置JMS服务 在JBoss3.0 中与JMS服务相关的配置文件包括两个文件:jbossMQ-service.xml和jbossMQ-destinations- service.xml。jbossMQ-service.xml配置了jbossMQ服务中的核心对象信息。一般我们不需要处理这个配置文件。 jbossMQ-destinations-service.xml用于定义具体应用所需的目的地信息。通过编辑它我们可以创建新的Topic和 Queue用于具体的JMS应用的目的地。在JBoss中创建应用特定的Topic和Queues的步骤比较简单,参照jbossMQ- destinations-service.xml文件格式在该文件中添加自己应用程序所需的Topic名为myTestAppTopic和Queue名 为myTestAppQueue。如图四所示。 图四 jbossMQ-destinations-service.xml的样本代码 4.2 JBoss3.0中EJB使用JMS服务的配置 在开发MDB 时要在部署文件中指定所使用的JMS服务中的目的地信息。JBoss中通过ejb-jar.xml和jboss.xml共同说明。在jboss.xml中通过<destination-jndi-name>标记描述所使用的目的地信息。 Ejb-jar.xml <message-driven> jboss.xml <message-driven> 客户端: ······ 5.JBoss3.0中EJB使用JavaMail服务的配置。 由于JBoss提供了JavaMail服务的实现,所以在JBoss中使用JavaMail是非常方便地。它所需要配置的是mail.service文件。这个文件非常地简单不用多介绍。按照mail.service文件的的注释就可以顺利地完成配置。 图五是使用JavaMail服务的一个sessionBean的代码片断 图五 使用javamail的样本代码 以 上通过例子简单的介绍了JBoss3.0中Session Bean、Entity Bean 和Message Drive Bean 最基本的配置和部署方法,通过这些介绍现在已经可以在JBoss中进行基本的EJB应用的开发了。本文中对于EJB应用中比较复杂的一些配置像权限设置、 资源管理和CMP2.0中的众多配置等都没有涉及到,希望大家可以在不断的实践和交流中更好地掌握JBoss的使用和配置。 |
(转载)J2EE开发技术简介之JBOSS
最新推荐文章于 2023-04-07 19:45:57 发布