前言:
WebLogic是一个性能卓越的J2EE服务器,在我国的使用者在快速增长.但现在有关它的中文资料基本没有,更没有介绍使用经验方面的。下面是本人在学习使用WebLogic6.0中得到的一些经验,写出来与大家分享。
一、WebLogic6.0的安装:
WebLogic6.0自带了JDK1.3,所以不用预先安装JDK就可以直接安装它,在WIN2000平台是一个EXE文件,直接运行它即可;在UNIX平台上的安装包是一个*.bin文件,用sh运行它就可以了,最好是加 -i console的控制台选项(假如不加,可能会报CLASSNOFOUND等错误)如下所示:
sh weblogic60_sol.bin -i console的控制台
注重:
UNIX系统的TMP目录(环境变量TMPDIR或TMP_DIR所指的路径)应有足够的空间,因为WebLogic6.0安装时先解压文件到系统的TMP目录下,然后再进行安装。假如TMP目录空间不够安装会出错,这时你可以把TMPDIR设到要足够空间的目录下。
假如用普通用户安装出错,可试着用ROOT用户安装.一般是环境变量及权限的问题。
安装软件可到http://commerce.bea.com/downloads/prodUCts.jsp下载,联机文档可到http://edocs.bea.com/wls/docs61/index.Html下载。
二、与Oracle数据库的连接:
WebLogic6.0通过ORACLE客户端访问ORACLE,所以在WebLogic6.0所在的机器上要正确安装ORACLE客户端才行。WebLogic6.0对ORACLE提供TYPE2的JDBC DRIVER支持,是一些动态连接库(NT 是.DLL,UNIX是.SO)文件,在$WL_HOME\bin下,以OCI开头的几个目录中。具体采用哪个目录下库文件,与ORACLE SERVER端及CLIENT端的版本及ORACLE API的版本有关,可参考WebLogic6.0的联机文档.要把这些库所在的路径加到系统的环境变量中,否则访问数据库时,WebLogic6.0会报以下错误:
Java.sql.SQLException: System.loadLibrary threw java.lang.UnsatisfiedLinkError with the message 'no WebLogicoci37 in java.library.path'.....
在WIN2000中要加到PATH环境变量中,如:
set PATH= D:\WebLogic6.0\wlserver6.0\bin\oci816_7;c:\ORANT816\bin;%PATH%
在NIX平台,要到系统的LIBRARY PATH中,如在SUN上,要加到LD_LIBRARY_PATH环境变量中,方法如下:
eXPort LD_LIBRARY_PATH=/bea/weblogic6.0/oci816_8:$ORACLE_HOME/lib
在HP平台上,要加到SHLIB_PATH环境变量中,如:
export SHLIB_PATH=/bea/ weblogic6.0/lib/hpux11/oci816_8:$ORACLE_HOME/lib
三、在WebLogic6.0中设置资源的访问权限
WebLogic6.0几乎可以对它所治理的所有资源设置访问控制表,包括EJB、JSP、SERVLET、POOL、JMS、RMI、JNDI、JDBC等等。当用户第一次访问设置了访问控制表的资源时,WebLogic6.0会弹出一个对话框要求输入口令及密码,假如连输3次都不对,会返回以下错误:
Error 401--Unauthorized xxx From RFC 2068 Hypertext Transfer Protocol -- HTTP/1.1: 10.4.2 401 Unauthorized
对访问权限的设置有两种方式:
在WebLogic6.O的控制台中设置,把结果保存到fileRealm.properties中,即采用WebLogic6.0的file realm.感觉对DATABASE POOL,EJB等比较好用,对JSP,SERVER及某个目录设置访问控制表比较难。我试了很多次都没成功。它可对WEB用户(通过浏览器访问)和普通用户(通过JAVA客户端等访问)起作用。
在WEB.XML,WebLogic.XML中设置,只能对WEB用户起作用。下面举个例子说明这种方式。
如:在一个名为OrderWebApp的WEB APPLICATION中,客户的定单文件都放到/orders目录下,只有manager能浏览该目录下的文件。其WEB.XML及WebLogic.XML可设置如下:
*************************WEB.XML*************************
SecureOrdersEast
Security constraint for resources in the orders Directory
/orders/*
POST
GET
constraint for orders
manager
SSL not required
NONE
managers
manager
说明:中定义资源的访问控制表。在中定义资源及其存取方式;在中定义可访问该资源的角色;在 中定义WebLogic SERVER与CLIENT之间的开始通讯时,是否采用SSL建立连接。在中定义角色名。
*************************WebLogic.XML*************************
manager
peter
bill
说明:在定义与WEB.XML中定义的角色所对应的用户。这些用户必须已在WebLogic6.0的控制台中定义才行。
当在浏览器中输入http://localhost:7001/OrderWebApp/orders/order100.html时,WebLogic6.0要求输入用户名及口令.只有peter,bill能够访问该文件. 我发现:假如没有在WebLogic.XML中设置,并在WebLogic6.O的控制台中定义的用户名与WEB.XML中中角色的名字一样.则该用户可以访问受保护的资源.假如在在WebLogic.XML中设置了,则与中的角色名字一样的用户也不能访问受保护的资源,只有在中定义的用户才可以访问受保护的资源.
四、JSP的设置及调试:
在WebLogic6.0中,JSP要放到一个WEB APPLICATION 中才能对它进行访问,对JSP的配置在WebLogic.XML中,如下所示:
pageCheckSeconds
1
verbose
true
比较重要的有pageCheckSeconds,设置WebLogic6.0每隔多长时间检测一次JSP文件的内容是否改变,并需要重新编译,等于0,每次调用都重新编译(一般用于调试环境中),等于-1从不重新编译(一般用于运行环境中).当第一次访问某个WEB APPLICATION下的一个JSP文件时,WebLogic6.0把它编译成一个CLASS文件并放到相应的目录下:
假如是以目录结构形式发布的WEB APPLICATION,放到该WEB APPLICATION的 WEB-INF\_tmp_war_examplesServer_examplesServer_*目录下。
假如该WEB APPLICATON是以一个WAR文件布置的,则放到: …\applications\.wl_temp_do_not_delete\WEB-INF\_tmp_war_examplesServer_examplesServer_*目录下。
在调试JSP时,为了使每次总是访问最新的页面,除了设置pageCheckSeconds=0外,应该让IE不缓存该页面.设置如下:
把/工具/INTERNET选项/常规/设置/的检察所存页面的较新版本,设为每次访问该页时都检查。假如还是不能看到最新的页面,可以到以上介绍的目录下把与该JSP对应的CLASS文件删除,强制WebLogic6.0重编译。
五、PASSWord的治理:
WebLogic6.0每次启动时都会提示请输入密码,假如不想每次启动时都输入密码,可创建一个PADDWORD.INI文件,并把密码保存在该文件中即可。也可以用-Dpassword=PASSWORD 把密码加到启动脚本中。密码可在WebLogic6.0的控制台中的SECURITY中修改。
六、WebLogic 6.0控制台的使用
WebLogic6.0的控制台要在IE5.0以上的版本中才能启动,假如IE设置了代理服务器,WebLogic6.0的控制台有可能无法启动,应把代理服务器的设置去掉在/工具/INTERNET选项/连接/局域网设置中。在WebLogic6.0的控制台能完成几乎所有的配置,不象WebLogic5.1有时候要直接修改配置文件。