Weblogic6.1使用技巧


(作者:徐春金)

1.如何防止重启WEBLOGIC时JSP重编译
当一个WEB APPLICATION 打包成一个WAR文件部署在WEBLOGIC中时,每当WEBLOGIC重新启动时,都会对WAR文件中的JSP文件进行重编译,即使这些JSP文件的内容没有被改变。为了使WAR文件中的JSP文件不被重新编译,加快启动速度,可在weblogic.xml中指定一个workingDir。如下所示:
<param-name>workingDir</param-name>
<param-value>C:/temp/myjspclasses</param-value>
2.如何在IE中直接打开WORD等文件
如果在一个WEB APPLICATION 中访问WORD,EXCEL等类型的文件?
为了让能在IE浏览器中自动打开的设置:需要在WEB.XML中进行如下的设置:在WEB.XML中添加<mime-mapping>,其中:
<extension>: 文件的扩展名
<mime-type>: 除了该类型文件的可执行文件,同WINDOW注册表中的
/HKEY_CLASSES_ROOT下该类文件的Content Type 的值一样.
如能在IE中自动打开DOC,XLS,PDF文件的配置如下:
<?xml version="1.0" ?>
<!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>
<mime-mapping>
<extension>doc</extension>
<mime-type>application/msword</mime-type>
</mime-mapping>
<mime-mapping>
<extension>xls</extension>
<mime-type>application/msexcel</mime-type>
</mime-mapping>
<mime-mapping>
<extension>pdf</extension>
<mime-type>application/pdf</mime-type>
</mime-mapping>
</web-app>
3.WEBLOGIC与ORACLE数据库的连接配置
WEBLOGIC6.0通过ORACLE客户端访问ORACLE.所以在WEBLOGIC6.0所在的机器上要正确安装ORACLE客户端才行.WEBLOGIC6.0可采用TYPE2或TYPE4的JDBC DRIVER 与ORACLE数据库相连。下面分别介绍它们的配置方法:
TYPE2 JDBC DRIVER的设置方法:
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%
UNIX平台,是加到系统的LIBRARY PATH中,如在SUN上,要加到LD_LIBRARY_PATH中,如:
export LD_LIBRARY_PATH=/bea/WEBLOGIC6.0/lib/solaris/oci816_8:$ORACLE_HOME/lib
在HP平台上,加到SHLIB_PATH中,如:
export SHLIB_PATH=/bea/WEBLOGIC6.0/lib/hpux11/oci816_8:$ORACLE_HOME/lib;
TYPE4 JDBC DRIVER的设置方法:
在控制台中创建一个新的CONNECTION POOL.其参数的定义如下:
URL: jdbc:oracle:thin:
Driver classname: oracle.jdbc.driver.OracleDriver
Properties:
User:数据库用户名
Password:该用户的口令
Server:该数据库服务器所在的IP地址,侦听端口及该数据库的连接串.

4.WEBLOGIC6.1的LOG文件
WEBLOGIC在启动及运行过程中会记录各种LOG信息,以帮助系统管理员对整个应用系统进行管理及维护。在CONSOLE的左边选择一个SERVER,并在右边的窗口中选择LOGGING,出现下面的窗口,可在该界面中进行与LOG有关的配置。下面对这些配置进行说明:

所有的LOG文件都放在该DOMAIN所在的路径下的LOGS目录中,
WEBLOGIC SERVER运行日志
如果WEBLOGIC SERVER在启动或运行过程中有错误发生,错误信息会显示在屏幕上,并且会记录在一个LOG文件中,该文件默认名为weblogic.log。该文件也记录WEBLOGIC的启动及关闭等其他运行信息。可在Gernal属性页中设置该文件的路径及名字,错误的输出的等级等。
HTTP访问日志
在WEBLOGIC中可以对用HTTP,HTTPS协议访问的服务器上的文件都做记录,该LOG文件默认的名字为access.log,内容如下,该文件详细记录在某个时间,某个IP地址的客户端
访问了服务器上的那个文件。
127.0.0.1 - - [25/Feb/2002:11:35:58 +0800] "GET /weather HTTP/1.1" 302 0
127.0.0.1 - - [25/Feb/2002:11:35:58 +0800] "GET /weather/index.html HTTP/1.1" 200 176
HTTP访问日志的属性可在HTTP属性页中进行设置。
DOMAIN运行日志
记录一个DOMIAN的运行情况,一个DOMAIN中的各个WEBLOGIC SERVER可以把它们的一些运行信息(比如:很严重的错误)发送给一个DOMAIN的ADMINISTRATOR SERVER上,ADMINISTRATOR SERVER把这些信息些到DOMAIN 日志中。默认名为:wl-domain.log
DOMAIN运行日志的属性可以在DOMAIN属性页中进行配置。
WEBLOGIC事务日志
WEBLOGIC在进行事务处理时,会把事务的信息记录到一个LOG文件中,在事务失败时用该LOG文件中的信息进行事务的回滚操作。该LOG文件的默认文件名为:servername*.tlog. 其中的*表示该LOG文件的前缀,可以在JTA属性页中设置这些LOG文件的前缀。
日志文件的回滚设置
在Rotation属性页中可以设置这些日志文件的回滚方式,当日志文件到一定得大小或过了设定的时间后,把日志信息保存到一个新的文件中。WEBLOGIC提供按文件大小和时间两种方式。如下面的设置种,选择Rotation Type 为BY SIZE。也就是当日志文件的大小达到500K时,重新写一个新的文件。如果Rotation Type 为BY TIME,那么是每隔24小时重新写一个新的文件。并且对这些文件编号。

5.在JSP中取得在WEB.XML中定义的参数:
在WEB.XML文件中设置参数:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<servlet>
<servlet-name> myjsp </servlet-name>
<jsp-file> /MyJsp.jsp </jsp-file>
<init-param>
<param-name>firstparam</param-name>
<param-value>firstparamvalue</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name> myjsp </servlet-name>
<url-pattern> /myurl/* </url-pattern>
</servlet-mapping>
</web-app>
下面的程序无法取出在WEB.XML中定义的参数firstparam的值firstparamvalue
<html>
<HEAD><TITLE>my jsp page .jsp</TITLE></HEAD>
My init parameter is <%= application.getInitParameter("firstparam") %>
</html>
下面的程序就可以取出在WEB.XML中定义的参数firstparam的值firstparamvalue
<%
String Str1;
Str1=config.getInitParameter("firstparam");
Out.println(Str1);
%>
因为config是类javax.servlet.ServletConfig的对象,而application 是类javax.servlet.ServletContext的对象.