这些天一直在研究Websphere5.1,下面将经验和心得与大家分享一下。
一,ear包的结构以及如何生成ear
二,如何建立数据源
三,如何建立共享库以及如何为应用指定共享库
四,如何注册消息驱动bean以及如何在服务器中配置消息侦听端口
五,如何配置事务
六,如何注册应用程序
一,ear包的结构以及如何生成ear
ear包的结构
ear是J2EE企业应用包,包含了一个企业级应用所有的逻辑,因此是一个重量级的包。
ear由一个或多个J2EE模块(包括web模块,ejb模块等等)以及一个META-INF目录下名为application.xml的部署描述器构成,一个参考的ear内部结构如下:
myApp.ear
META-INF/
application.xml
MANIFEST.MF
myEjb1.jar
myEjb2.jar
...
myEjbn.jar
myWebModule.war
myWebModule2.war
...
myWebModulen.war
如何编写application.xml
以一个例子为依据,如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE application PUBLIC "-//Sun Microsystems, Inc.//DTD J2EE Application
1.3//EN" "http://java.sun.com/dtd/application_1_3.dtd">
<application>
<display-name>Galaxy Workflow Enterprise Application</display-name>
<module>
<ejb>GalaxyEjb.jar</ejb>
</module>
<module>
<web>
<web-uri>GalaxyPortal.war</web-uri>
<context-root>GalaxyPortal</context-root>
</web>
</module>
<module>
<web>
<web-uri>GalaxyServer.war</web-uri>
<context-root>GalaxyServer</context-root>
</web>
</module>
</application>
displayname是该ear的描述名称,不是必须的
module是ear中的模块,每个module下面包含一个J2EE模块,模块可以是EJB,也可以是WebApp
EJB模块只需提供一个包含EJB的jar,而web模块需要提供war包和访问时的上下文路径,如上访问GalaxyPortal模块时:
http://hostname:port/GalaxyPortal
如何生成ear包
文件用JAR格式打包,存储在扩展名为.ear的文件中:
将ear需要的所有内容拷贝到某个目录下,然后进入到那个路径下,并敲命令:
jar -cvf myApp.ear *
也可以使用ant的ear任务:
<target name="create-ear">
<echo>start to create enterprise archive</echo>
<ear destfile="${dist.dir}/GalaxyPortal.ear"
appxml="${galaxy.core.builddir}/conf/ear/application.xml">
<fileset dir="${dist.dir}/core">
<include name="GalaxyServer.war" />
<include name="GalaxyEjb.jar" />
</fileset>
<fileset dir="${dist.dir}/portal">
<include name="GalaxyPortal.war" />
</fileset>
</ear>
</target>
二,如何建立数据源
进入Websphere控制台,打开“资源/JDBC提供程序”
进入的页面有一个已有的JDBC提供程序列表,如果没有需要的,则新建一个,点击新建按钮
进入后,选择一个JDBC提供程序,例如Oracle10g可以选择“Oracle JDBC Driver(XA)”,然后点击确定按钮
进入后,按照类似如下的格式进行填写:
填写完毕后点击确定按钮,然后在该页面的“其它属性”面板中点击“数据源”,在进入的页面中点击“新建”按钮
进入新建页面后,按照类似如下的格式填写:
如果数据库需要用户名和口令验证的化,则需“受管组件的认证别名”和“受管容器的认证别名”这两个选择框内选择需要的J2C对象
J2C对象实际上就是一个用户名和口令的值对,建立该对象,需要进入“安全性/JAAS配置/J2C认证数据”然后新建一个对象,类似如下填写:
填写完毕后,点击确定按钮,此时不要忘记了点击页面上方提示信息栏中的“保存”链接,然后在进入的页面中点击“保存”按钮
完成后,数据源建议,然后对以建立的数据源可以在页面上进行测试(进入你建立的JDBC提供程序的数据源列表中,选择那个数据源,然后点击“测试链接”按钮)
完成。
三,如何建立共享库以及如何为应用指定共享库
共享库是jar的容器,一个共享库中存在一个或多个为应用服务的jar包。
建立共享库
进入websphere控制台,到“环境/共享库”下,在列表页面点击“新建”按钮
进入后,按照类似如下的格式填写:
点击“确定”按钮,然后不要忘记点击页面上面消息栏中的“保存”按钮,然后保存设置,完成。
为具体应用指定所使用的共享库
如果某个应用需要使用已经建好的共享库,需要如下一些操作
在控制台,进入“应用程序/企业应用程序”,在列表中选择需要设置的应用,然后点击进入
进入后,在“其它属性”栏中,点击“库”链接
进入后,点击“添加”按钮,进入后在下拉框中选择需要的共享库,点击“确定”,并将设置保存。
四,如何注册消息驱动bean以及如何在服务器中配置消息侦听端口
消息驱动bean(MDB),是J2EE提供的一种异步消息通讯的方式,与Java Message Service ( JMS ) 一起使用, MDB 可以向 J2EE 提供完整的分布式计算环境中的全部功能。
初始 JMS 规范允许两种主要消息传递方法:点对点和发布与订阅,点对点的方式消息采用队列方式来管理,而发布与订阅采用主题的方式来管理。
下面介绍一下如何在Websphere5.1中配置消息驱动Bean,我们主要介绍一下以主题方式来管理消息的配置
进入控制台,到“资源/WebSphere JMS提供程序”下
进入后,在“其它属性”栏中,需要配置“Websphere主题链接工厂”和“Websphere主题目标”
点击进入“Websphere链接工厂”,进入后,点击新建按钮,进入后按照类似格式填写
端口中有两种选择:direct和队列,具体区别现在不知道,总之如果应用中报错不支持direct,则选择队列即可。
点击“确定”,另外注意保存。
配置完主题链接工厂之后,返回上一界面配置“WebSphere主题目标”,返回后点击“WebSphere主题目标”,进入页面
在进入的页面中,点击“新建”按钮,进入新建页面
进入后,类似如下形式填写:
完成后点击“确定”,另外不要忘记保存。
配置完消息驱动bean后,就需要为服务器注册消息侦听端口了(消息侦听端口主要是为部署在服务器上的应用服务的)
在控制台,进入“服务器/应用程序服务器”,在右边的页面中选择需要配置消息侦听的服务器,例如选择server1,进入。
在进入的页面中,在“其它属性”中选择“消息侦听器服务”,进入。
在进入的页面中,选择“侦听器端口”,进入。
新建一个消息侦听器端口,点击“新建按钮”。
在新建页面,类似如下形式填写:
上图中,连接工厂JNDI名和目标JNDI名,就是前面配置的那个主题链接工厂和主题目标的JNDI名。
五,如何配置事务
Websphere 有自己的事务管理机制,也提供了强大的事务支持,那么如果在应用中使用Webpshere的事务呢。其实不是配置控制台,Websphere默认就提供事 务支持,这与JBoss一样的,下面我们就看一下如果在Spring中配置对Websphere事务的支持。
<bean id="wasTxMgr"
class="org.springframework.transaction.jta.WebSphereTransactionManagerFactoryBean" />
<bean id="transactionManager"
class="org.springframework.transaction.jta.JtaTransactionManager">
<property name="transactionManager">
<ref local="wasTxMgr" />
</property>
</bean>
六,如何注册应用程序
在WAS中既可以配置war应用,也可以配置ear应用,一般来说,我们希望打成企业级应用ear包,下面我们就介绍一下如果通过WAS控制台注册企业级应用程序。
安装企业级应用程序
进入控制台,到“应用程序”目录,可以看到有“企业应用程序”和“安装新的应用程序”两个子目录,这两个目录中都可以进行ear的安装,下面我们直接点击“安装新的应用程序”
安装共分为五个步骤,首先看到是下面的界面:
如果从本地选择ear进行安装,则直接点击本地路径输入框的浏览按钮,选择相应的ear文件即可,如果是安装其它服务器机子中的ear文件,则输入路径,建议不是特殊情况,最好使用本地安装,两个字:简单。
另外,如果我们安装的不是ear而是war,则需要在上下文根处填写war应用的上下文路径,即Servlet规范中的context path,例如/ggoa等等。
完成后,点击下一步,界面如下:
一般来说保持默认设置,进入下一步,入图:
保持默认设置,进入下一步,设置消息侦听器端口(前面已经讲过如何配置消息侦听器端口),入下图:
完成后,进入下一步,入下图:
保持默认设置,进入下一步,入下图:
保持默认设置,进入下一步,入下图:
最后点击完成,然后控制台会开始安装ear应用,完成后,会提示你应用安装成功或失败,并提示你“保存到主配置”,然后保存即可。
配置安装好的企业级应用
对安装好的应用,需要配置其一些信息,进入“应用程序/企业应用程序”目录,可以看到一个服务器上已经安装了的应用列表,找到我们新安装的那个应用,并点击进入
进入之后,我们可以设置很多东西,例如我们可以设置“类载入器方式”、“WAR类载入器策略”等等。
一般来说,如果我们希望服务器中其它的jar包影响到我们应用自己的jar包的话,我们一般选择“PARENT_LAST”类载入器方式。
WAR类载入器策略选择“模块”就可以了。
在“其它属性”中,我们可能会用到的就是“库”,这个就是前面提到过的“共享库”,在应用中我们可以指定该应用使用哪些共享库,这种方式可以方便的满足应用对jar包的特殊要求。
如果需要使用共享库,则点击“库”,进入后点击“添加”,然后从共享库列表中选择你已经定义好的共享库,并“确定”,注意保存。
更新、卸载企业级应用
这个在“应用程序/企业应用程序”列表中已经表示的很清苦,选择某个企业应用,然后进行相应的操作即可。