实践JBuilder6开发和部署EJB到Weblogic6.1
作者:jackliu
e-mail:suntoday@eyou.com
为Weblogic或其他应用服务器开发和部署EJB真是麻烦事,更不用说调试跟踪Bug,简直是灾难。Jbuilder6发版后,决定探究一下JB6对EJB的开发环境的支持与Weblogic6应用服务器之间的兼容性,多日摸索下来,栽了几次,也积累了点经验,下面就总结一下,省的大家再吃苦头了。
EJB开发环境实践
在JB6里提供了基于图形化设计的EJB集成开发环境,我尝试了一下从数据库表结构直接映射成EJB的过程,几经周折,效果还算不错,设计好的EJB可以直接发布到Weblogic上,只需要你简单的配置即可。下面的一些步骤可斟酌参考:
1.JDBC路径配置 确认你的JDBC路径已经被加载到JB Libraries中,假如没有,可以在Tools/Configure Libraries窗口创建一个包名及路径,JB6通过这个路径找到JDBC引擎位置,以便能够让我们在JB6中给出数据库表结构的参考,设置如下图
设置JDBC路径
进入到Tools/EnterPRise setup中,把刚才建立的JDBC路径引用到企业设置中,这样,在每次启动JB6和启动Database Pilot时,会自动加载这个类路径。设置如下图参考
2.设置DATABASE URLs 这一步不是必须的,假如是你经常要参考的一个JDBC URL,最好还是给这个URL创建一个URL连接,以后就可以方便引用了。在Tools/Database pilot,打开Database pilot窗口,选择view/Options菜单的Drivers选项页,Drivers列表中列出的是Jbuilder所提供的各类JDBC引擎类名(JB6不一定真的包括其驱动程序,大部分需要你自己配置其路径), 在Drivers列表中检查是否有你要的JDBC驱动名,假如没有,则添加上。Sample URL项是JDBC URL的连接测试,你可以把你要连接的数据库URL串放到这里。确认后,尝试在Database pilot里连接是否正常,假如你刚刚配置了1步骤或许你需要重新启动JB6。
配置数据库连接URL
3.设置Weblogic6.1应用服务器 到Tools/Enterprise Setup选项,选择Webloic 6.x选项页,配置参考下面的图片:
WebLogic 6.1配置参考
JB6在编译时,默认使用了Weblogic6.1的EJBC编译打包EJB,假如你不打算使用Weblogic的EJBC编译,就可以自己指定编译器在Compiler path里。注重在用EJBC编译EJB时,好象对空格识别敏感,所以,你的工程文件路径和文件名假如存在空格就死定了。还有,你需要更改Windows系统参数配置,检查temp和tmp目录是否含有空格,假如有,指定一个不含空格的目录,重新启动JB6。
4.设置工程属性 在Project/Project Properties选项里,打开最后一页servers,假如你打算在当前工程中发布的jsp或Servlet由Tomcat提供Web服务,请不要选择application server is web server这一选项,我建议是:不要选择,假如你的工程里没有EJB,你可以选择Tomcat3.2作为WebServer,这个3.2版本的Tomcat可以很好的为JB6提供JSP即时编译JSP的能力和调试环境,但是假如java Bean调用了EJB,并使用了EJB2.0规范,则需要你使用Tomcat4.0作为webServer,不过这之间切换非常之简单,所以你可以灵活的运用此项。最主要的就是要为当前工程选择一个Application Server,点击Application Servier 右边的按钮,选择WebLogic Application Server 6.x作为Application Server,参考下图:
工程属性设置
5.创建一个EJB2.0设计环境 在File/New…中打开对话框,如下图选择创建一个EJB2.0 Bean Designer,这个Designer会提供给我们一个图形化的开发EJB的设计器。
6.在设计环境创建一个Schema 在EJB Designer画板中,单击右键,选择Import Schema From …/Database 菜单,选择或填写你要连接的JDBC URL,注重把Schemas and types选项组中的All schemas选项框选中。假如顺利,JB6会在左下角给出数据库的Schemas,假如你打算为某个表创建Entity EJB,则可以单击表节点,选择Create Entity Bean即可为你自动创建一个Entity EJB,其他就不说了,看着图形和菜单去设计吧。有些遗憾的是,JB6的Database Schemas在引入时,被初始化数据,不与数据库结构保持同步,所以假如设计完EJB后由更改了库结构,就麻烦了,快速简单的方式是把这个DataSource全部删除,然后重新引入一个新的Schemas,或在原来的基础上修改表结构,我不建议这末做,在生成DD xml文档时会有一些莫名的Bug产生,我一般会删除重新引用,至尽还未碰到这种Bug,大家也尽可场尝试。
7.部署到WebLogic里 确认Webloic已经启动,假如没有,在左边的项目文件列表中右键单击EJB设计器,选择Run,JB6会自动启动Weblogic服务。选择你要发布的EJB,首先Make成一个包含.class文件、部署描述文件和Application辅助类的JAR包,然后按Deploy …./Deploy,这个EJB便自动部署到Weblogic中,假如更改了EJB,请使用Redeploy选项进行重新部署。我碰到一个问题就是有时报T3协议错误,部署不成功,但打开Weblogic控制台后,发现已经部署成功,至今这个问题仍未解决。并且按Redeploy或Undeploy再Deploy,有时不能成功,可能我的环境配置仍然存在问题或是兼容bug。我选择了一个比较愚蠢的方法,使用JB6生成Weblogic所需的JAR文件,用Weblogic的控制台部署,就是比较罗嗦了,长了还算顺手,不知哪位高手已经解决了Deploy和Redeploy的问题。