首页 服务器 编程 必备知识 搜索引擎 圩日手册
站内搜索
最近浏览
推荐文章
热文排行

搭建eclipse+Jboss的struts-EJB平台及Jboss的JNDI配置


笨笨地摸索了三天,上网查了很多资料,终于实现了一个能运行良好的struts开发平台,现在把经历写下来,希望对有相关问题的朋友带来帮助:

  我用的eclipse是3.1.1的版本,其他软件或插件包括:
  JDK-1.4.1;
  JDK-1.5.0;
  NLpack1-eclipse-SDK-3.1.1a-win32多语言包;
  Myeclipse 4.0.0 GA;
  JBoss 3.0.7

  其他的版本组合我试过一下,版本搭配不好的话会经常出现莫名其妙的错误,比如汉化不完全,JBoss在部署过程出现找不到java:comp/env命名空间等等问题,所以小弟我认为找好搭配的插件是重要的一步。

  1. 安装JDK。
        这里我装了两个JDK,因为Myeclipse的一部分功能要1.5的JDK才能运行,而JBoss则需要1.4的JDK。稍后会介绍配置的。
  2. 解压eclipse3.1.1。
        这里注意,如果打算把eclipse汉化的话,就不要解压后马上运行eclipse,因为第一次运行的是英文的话,会影响汉化的效果的。

  3. 汉化eclipse。
        网上说的安装插件方式有两种,一种是直接把插件解压后对应地放到eclipse_home\plugsin和eclipse_home\features下,但这种方式对于去除不用的插件十分麻烦,个人觉得用link的方式安装会方便些,具体可以上网搜一下,我这里只是提醒一下对link方法,eclipse只会搜索那些带着“eclipse”这个名称的目录下的插件。

      安装好语言插件,就可以启动eclipse了。
  4. 安装Myelipse插件。
      这是个收费的插件,它支持很多不错的功能,比如对xml格式配置文件的GUI编辑,提供Struts、Hibernate、Spring等的集成支持,提供多种服务器的快速整合等等。可以试用,也可以自己找个破解来玩玩。btw:Myeclipse插件是自安装的,它安装就是用link的方式进行的。如果要完全发挥Myeclipse的功能,那么eclipse中“属性”里面的“已安装的JRE”必须选择JDK1.5作为默认选项。
  5. 安装JBoss。
        直接解压到某目录(jboss_home)就可以了。有些JBoss版本是带了Tomcat的,那些版本会在Zip文件名上能看出来,但我发现不知道是版本不对还是不能用带Tomcat的,反正我试了很多个版本,最后找了个不带Tomcat的3.0.7版本才没有报莫名其妙的错误。

  在myeclipse里面配置Jboss3,重点如下图:

注意把它默认带着的参数去掉。
  然后在图中所见的JDK选项,填入JDK1.4的JRE。这个JDK1.4必须在 “首选项->Java->已安装JRE” 那里添加的,注意的是要添加完整的JDK路径才行,而不是那种附带的独立运行的Jre。

    配置好后就可以做EJB项目和Web-Struts项目的开发了,这里我就不多说了,只能是上网查找myeclipse开发EJB和Struts的资料,很多的,也没什么走不通的地方。

    接下来说说Web的部署描述符应该怎样构建,之所以这么麻烦,是因为这个平台是自己手工搭建的,并不是如WSAD、EOS那些人家封装得好好的,拿出来卖的产品那样轻松,所以有些文件要自己添加和修改,但这也同时让我加深了对配置符的理解。
    开发EJB的过程及Web部署到JBoss上面去,可以参考以下的文章:
http://www.blogjava.net/rickhunter/articles/25484.html 这篇blog的主人家看来是个大牛人,呵呵。
[url=http://www.huihoo.com/jboss/jboss3_ejb.htm]JBoss3.0 下配置和部署EJB简介[/url]

    对于JNDI的配置,我是使用了ejb-jar.xml jboss.xml web.xml jboss-web.xml四个文件全用上的那种方式。之所以用这种方式,是因为这样的多次JNDI映射才是真正项目上常用的方法。然而按照《JBoss3.0 下配置和部署EJB简介》所说把文件都改好,部署的时候总会提示错误,要么说no ejb-link match,要么说web.xml部署描述符解释符错。郁闷了两天,才发现,JBoss在部署描述符的时候,是会根据JBoss已有的DTD去解释那些描述文件的。也就是如果描述文件的DTD声明不符合JBoss已带有的,就会报错了!

  所以这里我把web.xml和jboss-web.xml的DTD声明贴出来,这些声明是针对JBoss3.0.7所带有的DTD的。
web.xml: <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
jboss-web.xml: <!DOCTYPE jboss-web PUBLIC "-//JBoss//DTD Web Application 2.3//EN" "http://www.jboss.org/j2ee/dtd/jboss-web_3_0.dtd">  
 
  更进一步地,对不同版本的JBoss,怎么知道它带了什么DTD呢,我们可以到jboss_home\docs\dtd中去查看,比如对JBoss3.0.7而言,该目录下就有jboss-web_3_0.dtd,看样子就是对jboss-web.xml的定义了,用文本编辑器打开它,发现里面有这样一段语句:DOCTYPE jboss-web
  PUBLIC "-//JBoss//DTD Web Application 2.3//EN"
  "http://www.jboss.org/j2ee/dtd/jboss-web_3_0.dtd"
  这段话,直接拷贝下来抄到我们的jboss-web.xml里面,那就不怕它找不到对应的DTD而报错了。

  当部署EJB和WEB都成功后,我们就可以在Action里面用“java:comp/env/ejb/convertBean”的JNDI方法访问EJB的Home接口了。

  写到这里可以停一下了。
对于eclipse3.1.1和语言包,和myeclipse(破解版),可以自行搜索下载:
其他的也不难找,呵呵,祝大家成功。
[wangjy17908]
添加时间:2006-11-26
版权所有(C)2005-2015