程序员之家 >> 文章 >> 应用服务器 >> WebLogic
WebLogic——Weblogic6.0经验之谈
作者:娜   来源:程序员之家   发布者:admin
时间:2009-07-21 15:17:19   点击:1602

WEBLOGIC是一个性能卓越的J2EE服务器,以前项目服务器公司就选用它,最近文章总结,就把一些所谓的自己小经验拿出来晒晒,请高人多指教。

 WEBLOGIC6.0的安装

  WEBLOGIC6.0自带了JDK1.3,所以不用预先安装JDK就可以直接安装它,在WIN2000平台是一个EXE文件,直接运行它即 可;在UNIX平台上的安装包是一个*.bin文件,用sh运行它就可以了,最好是加 -i console的控制台选项(如果不加,可能会报CLASSNOFOUND等错误)如下所示:

sh weblogic60_sol.bin -i console的控制台

注意:

1UNIX系统的TMP目录(环境变量TMPDIRTMP_DIR所指的路径)应有足够的空间,因为WEBLOGIC6.0安装时先解压文件到 系统的TMP目录下,然后再进行安装。如果TMP目录空间不够安装会出错,这时你可以把TMPDIR设到要足够空间的目录下。

2、如果用普通用户安装出错,可试着用ROOT用户安装。一般是环境变量及权限的问题。

3、安装软件可到http://commerce.bea.com/downloads/products.jsp下载,联机文档可到http://edocs.bea.com/wls/docs61/index.html下载。

二、与ORACLE数据库的连接

  WEBLOGIC6.0通过ORACLE客户端访问ORACLE,所以在WEBLOGIC6.0所在的机器上要正确安装ORACLE客户端才 行。WEBLOGIC6.0ORACLE提供TYPE2JDBC DRIVER支持,是一些动态连接库(NT .DLLUNIX.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几乎可以对它所管理的所有资源设置访问控制表,包括EJBJSPSERVLETPOOLJMSRMI JNDIJDBC等等。当用户第一次访问设置了访问控制表的资源时,WEBLOGIC6.0会弹出一个对话框要求输入口令及密码,如果连输3次都不对,会返回以下错误:

Error 401--Unauthorized xxx

From RFC 2068 Hypertext Transfer Protocol -- HTTP/1.1:

对访问权限的设置有两种方式:

1、 在WEBLOGIC6.O的控制台中设置,把结果保存到fileRealm.properties中,即采用WEBLOGIC6.0file realm.感觉对DATABASE POOLEJB等比较好用,对JSPSERVER及某个目录设置访问控制表比较难。我试了很多次都没成功。它可对WEB用户(通过浏览器访问)和普通用户(通过JAVA客户端等访问)起作用。

2、在WEB.XMLWEBLOGIC.XML中设置,只能对WEB用户起作用。下面举个例子说明这种方式。

如:在一个名为OrderWebAppWEB APPLICATION中,客户的定单文件都放到/orders目录下,只有manager能浏览该目录下的文件。其WEB.XMLWEBLOGIC.XML可设置如下:

*************************WEB.XML*************************

<!DOCTYPE web-app PUBLIC"-//Sun Microsystems, Inc.//DTD Web Application 1.2//EN""http://java.sun.com/j2ee/dtds/web-app_2_2.dtd">

<web-app>

<security-constraint>

<web-resource-collection>

<web-resource-name>SecureOrdersEast</web-resource-name>

<description>Security constraint for resources in the orders directory</description>

<url-pattern>/orders/*</url-pattern>

<http-method>POST</http-method>

<http-method>GET</http-method>

</web-resource-collection>

<auth-constraint>

<description>constraint for orders</description>

<role-name>manager</role-name>

</auth-constraint>

<user-data-constraint>

<description>SSL not required</description>

<transport-guarantee>NONE</transport-guarantee>

</user-data-constraint>

</security-constraint>

<security-role>

<description>managers</description>

<role-name>manager</role-name>

</security-role>

</web-app>

说明:<security-constraint>中定义资源的访问控制表。在<web-resource- collection>中定义资源及其存取方式;在<auth-constraint>中定义可访问该资源的角色; 在<user-data-constraint>中定义WEBLOGIC SERVERCLIENT之间的开始通讯时,是否采用SSL建立连接。在<security-role>中定义角色名。

*************************WEBLOGIC.XML*************************

<!DOCTYPE WEBLOGIC6.0-web-app PUBLIC"-//BEA Systems, Inc.//DTD Web Application 6.0//EN""http://www.bea.com/servers/wls600/dtd/WEBLOGIC6.0-web-jar.dtd">

<WEBLOGIC6.0-web-app>

<security-role-assignment>

<security-role-assignment>

<role-name>manager</role-name>

<principal-name>peter</principal-name>

<principal-name>bill</principal-name>

</security-role-assignment>

</WEBLOGIC6.0-web-app>

说明:在<security-role-assignment>定义与WEB.XML中定义的角色所对应的用户。这些用户必须已在WEBLOGIC6.0的控制台中定义才行。

当在浏览器中输入http://localhost:7001/OrderWebApp/orders/order100.html时,WEBLOGIC6.0要求输入用户名及口令.只有peterbill能够访问该文件。

我发现:如果没有在WEBLOGIC.XML中设置<security-role-assignment>,并在 WEBLOGIC6.O的控制台中定义的用户名与WEB.XML<security-role>中角色的名字一样。则该用户可以访问受保护 的资源。如果在在WEBLOGIC.XML中设置了<security-role-assignment>,则与<security- role>中的角色名字一样的用户也不能访问受保护的资源,只有在<security-role-assignment>中定义的用户 才可以访问受保护的资源。

                                             责任编辑:小娜

 

最新文章
点击排行