weblogic安装配置及常见问题--挺好的一篇文章
--------------------------------------------------------------------------------------
在安装、配置 WEBLOGIC 时,主要有以下几个方面的配置和问题:
一、 JSP 的设置
1 。 weblogic.properties 文件中的设置
在 PROPERTIES 文件中对于 JSP 进行设置:
# Set up WebLogic JSP properties
weblogic.httpd.register.*.jsp=/
weblogic.servlet.JSPServlet
weblogic.httpd.initArgs.*.jsp=/
pageCheckSeconds=1,/
compileCommand=c:/jdk1.3/bin/javac.exe,/
workingDir=C:/weblogic/myserver/classfiles,/
encoding=gb2312 (或 GBK ) ,/
verbose=true
2 。查看 JSP 生成的 JAVA 代码
在上边的配置中,到 workingDir 指定的目录下查找相应目录下的 JAVA 文件。
在测试 JSP 时,如果出现编译问题,由于报错位置不精确,因此经常需要查看相应的 JAVA 源文件,以便找到真正的问题所在
3 。手工编译 JSP 的方法
运行 setEnv.sh;
java weblogic.jspc your.jsp
二、 SERVLET 的设置
1 。如何进行 SERVLET 的登记?
# 用于进行 servlet 的登记
weblogic.httpd.register.test_servlet=doctor.servlets.test_servlet
weblogic.httpd.register.test1_servlet=doctor.servlets.test1_servlet
weblogic.httpd.register.test2_servlet=doctor.servlets.test2_servlet
2 。如何不登记一个 SERVLET ,而直接测试该 SERVLET
首先在 weblogic.properties 文件中登记
weblogic.httpd.register.servlets=weblogic.servlet.ServletServlet
然后在浏览器中键入:
http://host:7001/servlets/your_package/your.class
3 。运行登记的 SERVLET 和使用 ServletServlet 来运行一个 SERVLET 有什么区别?
使用 ServletServlet 来运行一个 SERVLET ,则每次运行的 SERVLET 都是一个新的线程,而使用
登记方式运行 SERVLET ,则每次都是同一个线程。
4 。如何在 shtml 文件中使用 servlet
<servlet name=your servlet>
<param name="param_name" value="your value">
</servlet>
三、数据库的设置
1 。数据库测试工具 dbping 的使用方式
java utils.dbping DBTYPE USER PASS [SERVER | DB@SERVER:PORT]
Valid DBTYPE values:
ORACLE, INFORMIX, INFORMIX4, SYBASE, MSSQLSERVER, MSSQLSERVER4
[SERVER | DB@SERVER:PORT] 是可选项
example:
java utils.dbping ORACLE oracle oracle123
java utils.dbping ORACLE oracle oracle123 ronghai
Oracle 例子
$ java utils.t3dbping // command
t3://bigbox:7001 // WebLogic URL
scott tiger // user password
DEMO20 // DB
weblogic.jdbc.oci.Driver // driver class
jdbc:weblogic:oracle // driver URL
Oracle with ODBC 例子
$ java utils.t3dbping // command
t3://bigbox:7001 // WebLogic URL
scott tiger // user password
"" // DB
sun.jdbc.odbc.JdbcOdbcDriver // driver class
jdbc:odbc:VISIORA73 // driver URL
DB2 with AS/400 type 4 JDBC driver 例子
$ java utils.t3dbping // command
t3://as400box:7001 // WebLogic URL
scott tiger // user password
DEMO // database
com.ibm.as400.access.AS400JDBCDriver // driver class
jdbc:as400://as400box // driver URL
WebLogic jDriver for Microsoft SQL Server (type 4 JDBC driver) 例子
$ java utils.t3dbping // command
t3://localhost:7001 // WebLogic URL
sa // user name
abcd // password
database // database@hostname:port
(optional if specified as part of the URL)
weblogic.jdbc.mssqlserver4.Driver // driver class
jdbc:weblogic:mssqlserver4:pubs@localhost:1433
// driver URL:database@hostname:port
(optional if used in the database parameter
2 。 ORACLE 连接池的配置
使用 ORACLE 数据库有 2 种方式,一种使用 type2 的 driver; 一种使用 type4 的 driver 。
weblogic.jdbc.connectionPool.oraclePool=/
url=jdbc:weblogic:oracle,/
driver=weblogic.jdbc.oci.Driver,/
loginDelaySecs=1,/
initialCapacity=4,/
maxCapacity=10,/
capacityIncrement=2,/
allowShrinking=true,/
shrinkPeriodMins=15,/
refreshMinutes=10,/
testTable=dual,/
props=user=hysh;password=hysh;server=ora8;weblogic.codeset=8859_1
注意如果使用 type2 的 driver, 在启动 WEBLOGIC 前应该设置 LD_LIBRARY_PATH 环境变量,如果 ORACLE 中使用的中文,还应该
设置 lang=zh 和 NLS_LANG???=????? 。
3 。 INFORMIX 连接池的配置
首先得到 INFORMIX 的 DRIVER ;
安装该 DRIVER ;
安装 license;
设置 weblogic.properties 文件 :
weblogic.jdbc.connectionPool.InfxPool=/
url=jdbc:weblogic:informix4,/
driver=weblogic.jdbc.informix4.Driver,/
loginDelaySecs=1,/
initialCapacity=4,/
maxCapacity=10,/
capacityIncrement=2,/
allowShrinking=true,/
shrinkPeriodMins=15,/
refreshTestMinutes=10,/
testTable=dual,/
props=user=myUserName;password=secret;/
server=myDatabase@myDBServer:myPortNo
weblogic.allow.reserve.weblogic.jdbc.connectionPool.InfxPool=everyone
4 。 MS-SQL-SERVER 连接池的配置
首先得到 MS-SQL 的 DRIVER ;
安装该 DRIVER ;
安装 license;
设置 weblogic.properties 文件 :
weblogic.jdbc.connectionPool.SQLPool=/
url=jdbc:weblogic:mssqlserver4:myServer:myPort,/
driver=weblogic.jdbc.mssqlserver4.Driver,/
loginDelaySecs=1,/
initialCapacity=4,/
maxCapacity=10,/
capacityIncrement=2,/
allowShrinking=true,/
shrinkPeriodMins=15,/
refreshTestMinutes=10,/
testTable=dual,/
props=user=myUserName;password=secret;server=myServer;/
weblogic.allow.reserve.weblogic.jdbc.connectionPool.SQLPool=everyone
5 。 SYBASE 连接池的配置
weblogic.jdbc.connectionPool.jconnect=/
url=jdbc:sybase:Tds:hostName:portNumber,/
driver=com.sybase.jdbc.SybDriver,/
initialCapacity=1,/
maxCapacity=1,/
props=user=sa;password=wessie1,/
allow=guest;joe;jill
weblogic.allow.reserve.weblogic.jdbc.connectionPool.jconnect=everyone
四、与 NETSCAPE WWW SERVER 的连用设置
1 。将 WEBLOGIC 提供的插件放入 NETSCAPE WWW SERVER 相应目录下
2 。配置 NETSCAPE 的 obj.conf 文件( NETSCAPE_HOME/https-INSTANCE_NAME/config/obj.conf )
在 obj.conf 文件开始,加入如下语句,用于 NETSCAPE 启动时,装载插件
Init fn="load-modules" funcs="wl-proxy,wl-init"/
shlib=/usr/local/netscape/plugins/SHARED_LIBRARY
Init fn="wl-init"
通过路径导航被插件处理的文件
<Object name="weblogic" ppath="*/weblogic/*">
Service fn=wl-proxy WebLogicHost=myserver.com/
WebLogicPort=7001 PathTrim="/weblogic"
</Object>
<Object name="si" ppath="*/servletimages/*">
Service fn=wl-proxy WebLogicHost=otherserver.com/
WebLogicPort=7008
</Object>
通过文件的后缀,导航被插件处理的文件
<Object name=default>
NameTrans fn=pfx2dir from=/ns-icons/
dir="c:/Netscape/SuiteSpot/ns-icons"
NameTrans fn=pfx2dir from=/mc-icons/
dir="c:/Netscape/SuiteSpot/ns-icons"
NameTrans fn="pfx2dir" from="/help" dir=/
"c:/Netscape/SuiteSpot/manual/https/ug"
NameTrans fn=document-root root="c:/Netscape/SuiteSpot/docs"
Service method="(GET|HEAD|POST|PUT)" type=text/jsp fn=wl-proxy/
WebLogicHost=localhost WebLogicPort=7001 PathPrepend=/jspfiles
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^add
PathCheck fn=nt-uri-clean
PathCheck fn="check-acl" acl="default"
PathCheck fn=find-pathinfo
PathCheck fn=find-index index-names="index.html,home.html"
ObjectType fn=type-by-extension
ObjectType fn=force-type type=text/plain
Service method=(GET|HEAD) type=magnus-internal/imagemap fn=imagemap
Service method=(GET|HEAD) /
type=magnus-internal/directory fn=index-common
Service method=(GET|HEAD) type=*~magnus-internal/* fn=send-file
AddLog fn=flex-log name="access"
</Object>
3 。修改 mime.conf 文件
type=text/jsp exts=jsp
4 。 WEBLOGIC 插件的参数
WebLogicHost=domain name
WebLogicPort=port (formerly TengahPort)
WebLogicCluster=cluster list
example:WebLogicCluster="myweblogic.com:7001,yourweblogic.com:6999,theirweblogic.com:6001"
PathTrim=string
PathPrepend=string
ConnectTimeoutSecs=seconds
ConnectRetrySecs=seconds
StatPath=boolean
ErrorPage=URL
CookieName=cname
注意在上述参数中,如果设置了 WebLogicCluster 参数,则 WebLogicHost 和 WebLogicPort 参数不起作用。
例如:
<Object name="weblogic" ppath="*/weblogic/*">
Service fn=wl-proxy WebLogicHost=myweblogic.server.com/
WebLogicPort=7001/
PathTrim="/weblogic"
</Object>
五、与 APACHE WWW SERVER 的连用设置
在使用 APACHE WWW SERVER 与 WEBLOGIC 连用时,需要使用 SERVICE PACK ,因为原始版本
不支持 APACHE 的连用。
如果使用 APACHE WWW SERVER 则 APACHE WWW SERVER 需要支持插件方式,如果不支持,则
需要通过 APACHE WWW SERVER 的源码进行编译,具体编译方法见文档。
目前使用的 apache www server 为 1.3.12
安装目录: /usrl/local/apache
主要配置文件: /usrl/local/apache/conf/httpd.conf
启动和停止方法:
启动: cd /usrl/local/apache/bin
./apachectl start
停止: cd /usrl/local/apache/bin
./apachectl stop
httpd.conf 配置文件中被修改的地方:
下面的指令用于设置 apache www server 的名字 :
ServerName DBSERVER
下面的指令用于设置 apache www server 的页面根目录 :
DocumentRoot "/weblogic.510/myserver/public_html/haoyisheng"
下面的指令用于设置 apache www server 的缺省访问的文件 :
<IfModule mod_dir.c>
DirectoryIndex index.jsp
</IfModule>
下面的指令用于设置 apache www server 与 weblogic server 的连接 :
#following is add by tang
############################################
# 装入 weblogic 提供的 plugin 模块
LoadModule weblogic_module libexec/mod_wl.so
##### Weblogic specific declarations ########
# 定义对于访问的 url 连接中含有 /weblogic/??? 的访问转给 weblogic 处理
<Location /weblogic>
SetHandler weblogic-handler
PathTrim weblogic
# or you can set PathTrim to /weblogic
ErrorPage http://localhost
</Location>
<Location /servletimages>
SetHandler weblogic-handler
Pathtrim something
ErrorPage http://myerrorpage1.mydomain.com
</Location>
# 定义对于 jsp 的访问转给 weblogic 处理
<Files *.jsp>
SetHandler weblogic-handler
</Files>
# 定义对于 shtml 的访问转给 weblogic 处理
<Files *.shtml>
SetHandler weblogic-handler
</Files>
# 定义对于 servlet 的访问转给 weblogic 处理
<Files *_servlet>
SetHandler weblogic-handler
</Files>
################## Parameters ####################
#<IfModule mod/weblogic.c>
#Include /usrl/local/apache/conf/weblogic.conf
#</IfModule>
############# End of WebLogic specific declarations #######
AddModule mod_weblogic.c
# 定义 weblogic 服务器的 IP 地址和端口信息
WebLogicHost 192.168.168.8
WebLogicPort 7001
PathTrim weblogic
编译安装 apache www server 方法:
* 在 apache 源程序目录下运行 :
./configure --prefix=<destination directory> --enable-module=so --enable-rule=SHARED_CORE
make
make install
* 在 /weblogic.51/lib/solaris 目录下,执行下面的命令
APACHE_HOME/bin/apxs -i -a -n weblogic mod_wl.so
* 配置 httpd.conf 文件
六、与 MS WWW SERVER 的连用设置
对于 IIS 来说,只能通过文件的后缀进行导航,插件名称为 iisproxy.dll
1 。首先修改 IIS 的配置
启动 IIS 的 service manager;
在左面的面板中选择你的网站;
点击工具条中的 "play";
在弹出的窗口中选择 "home directory" 页面中的 "configure" 按钮;
在弹出的窗口中,点击 "add" 按钮;
增加相应后缀文件对应的插件;如 *.jsp-----iisproxy.dll;
OK;
2 。配置 iisproxy.ini 文件
# This file contains initialization name/value pairs
# for the IIS/WebLogic plug-in.
WebLogicHost=localhost
WebLogicPort=7001
WebLogicCluster=myweblogic.com:7001,yourweblogic.com:6999
ConnectTimeoutSecs=20
ConnectRetrySecs=2
七、汉字问题的处理
1 。关于 JSP 汉字问题
在 PROPERTIES 文件中对于 JSP 进行汉字设置:
weblogic.properties 中设: encoding=GBK 或 gb2312
注意:是否是唯一的最后的设置。
例如:
# Set up WebLogic JSP properties
weblogic.httpd.register.*.jsp=/
weblogic.servlet.JSPServlet
weblogic.httpd.initArgs.*.jsp=/
pageCheckSeconds=1,/
compileCommand=c:/jdk1.3/bin/javac.exe,/
workingDir=C:/weblogic/myserver/classfiles,/
encoding=gb2312 (或 GBK ) ,/
verbose=true
下面是进行字符集转换的 JAVA 程序:
import java.lang.*;
import java.io.*;
public class Converter {
public static String GB2Uni(String GB) {
//this is a method for servlet loading chinese data from db.
try {
byte[] tmp = GB.getBytes("Cp1252"); //you must change the byte code
String result = new String(tmp);
return result;
} catch(UnsupportedEncodingException e) {return null;};
}
public static String Uni2GB(String GB) {
//this is a method for jsp displaying chinese code.
//making.....waiting....
}
}
2 。关于 SERVERLET 的汉字问题
在 SERVLET 中的汉字问题,实际上就是编译 SERVLET 和启动 WEBLOGIC 时的环境应该保持一致的问题。在 UNIX 系统中,主要通过
设置 lang 环境变量来起作用。如果编译 SERVLET 前, lang=zh; 则在启动 WEBLOGIC 前 ,lang 也应该设置为 zh; 如果编译 SERVLET 前, lang=8859-1; 则在启动 WEBLOGIC 前 ,lang 也应该设置为 8859-1.
3 。关于数据库的汉字问题
(1). 当数据库字符集为 AMERICAN_AMERICA.we8iso8859p1 或 AMERICAN_AMERICA.zhs16cgb231280 时, weblogic.properties 文件中的 weblogic.codeset 必须设置为 GBK.jsp 的 encoding =GBK ,且从数据库中取数据必须不用 getBytes("ISO-8859-1").
(2). 当数据库字符集为 AMERICAN_AMERICA.we8iso8859p1 时 ,java application 应用通过 jdbc 从数据库中取汉字,出现乱码 ; 当数据库字符集为 AMERICAN_AMERICA.zhs16cgb231280 时 ,java application 应用通过 jdbc 从数据库中取汉字正常,且从数据库中取数据可用 getBytes("ISO-8859-1") ,也可不用 getBytes("ISO-8859-1")
(3). 当数据库字符集为 AMERICAN_AMERICA.we8iso8859p1 时 ,jsp 或 servlet 应用通过 jdbc 从数据库中取汉字,加 codeset=GBK, 不出现乱码 ; 当数据库字符集为 AMERICAN_AMERICA.zhs16cgb231280 时 , jsp 或 servlet 应用通过 jdbc 从数据库中取汉字出现乱码
八、 LICENSE 的配置
将你从合法渠道获得的 WebLogicLicense.xml 拷贝到 weblogic 的根目录下的 license 目录 .
九、 EJB 的设置
EJB 的布置包含 2 种方式,一种是在属性文件中设置,这样在启动的时候, WEBLOGIC 会自动加载相应的 EJB ,另一种是在运行的时候进行热布置,使用控制台或 EJB 布置工具。
1 。在 weblogic.properties 文件中布置
weblogic.ejb.deploy=/
/weblogic/myserver/your_ejb_1.jar, /
/weblogic/myserver/your_ejb_2.jar, /
/weblogic/myserver/your_ejb_3.jar
2 。热布置
首先需要在 weblogic classpath 中设置相应的路径;
然后启动控制台或 EJB 布置工具进行热布置;
十、 CLUSTER 的设置
1.Weblogic Server cluster 的配置类型
共有 4 种配置。所有这些配置使用相同的基础结构:
(1) . Servlet cluster:
一个三层集群。 Servlet clustering 提供装载平衡或装载平衡插件。
(2) . EJB Cluster :
集群的类型是大多数的典型的 "thicker" 基于客户使用 java/va/c++ 代码的的提交。
HTTP Server 是一个要求的环境,客户能通过一个 weblogic server 或通过 weblogic netscape ( proxy )插件通讯。
(3) . Servlet and EJB Cluster:
一个多层的混合对象和 servlets ,象一个 HTML borwser 和 EJBeans 混合的一样。一个 Weblogic 的实力包括 RMI 、 EJB 、 JDBC 和 HTTP Servlet
(4) . Four-tier Web Application Cluster:
2. 安装要点
*所有做 cluster 的机器必须安装相同版本的 Weblogic 。
*需要有 cluster license.
*所有做 cluster 的机器必须在一个网段,并可通过 IP multicast 通讯。
*所有做 cluster 的机器监听同一个端口。
*强烈推荐所有做 cluster 的机器共享的文件系统用 raid 。
*所有做 cluster 的机器 JDBC,EJB 连接配置相同。
*所有做 cluster 的机器 servlet 注册表应一致。
*所有做 cluster 的机器 JDBCconnection pool 配置相同。
* RMI 的配置。单配。
3。安装实例: (cctv)
(1). 必须安装具有 cluster 的 weblogic license
(2). 两种办法
将每一台 weblogic cluster 主机配置同一域名 , 即在 cctv 的内部 DNS 服务器上将每一台具有不同 IP 地址的 weblogic cluster 主机配置为同一域名 ;
如果采用 NES 作为 Webserver, 可以在配置 weblogic plug in 时配置,修改 obj.conf 文件:
将 <Object name="weblogic" ppath="*/weblogic/*">
Service fn="wl-proxy" WebLogicHost="192.168.199.101"
WebLogicPort="7001" PathTrim="/weblogic" ConnectTimeoutSecs="2"
</Object>
改为
<Object name="weblogic" ppath="*/weblogic/*">
Service fn="wl-proxy" WebLogicCluster="192.168.199.101:7001,192.168.199.102:7001
,192.168.199.175:7001" PathTrim="/weblogic" ConnectTimeoutSecs="2"
</Object>
(3). 将 /weblogic/myserver 目录及目录下的所有文件拷贝为 /weblogic/myCluster
(4). 将 startWebLogic.cmd 拷贝为 startcluster.cmd, 将 startcluster.cmd 中的 weblogi 的运行语句
%JAVA_HOME%/bin/java -ms64m -mx64m -classpath %JAVA_CLASSPATH% -Dweblogic.class.path=%WEBLOGIC_CLASSPATH% -Dweblogic.home=. -Djava.security.manager -Djava.security.policy==./weblogic.policy weblogic.Server
改为
%JAVA_HOME%/bin/java -ms64m -mx64m -classpath %JAVA_CLASSPATH% -Dweblogic.class.path=%WEBLOGIC_CLASSPATH% -Dweblogic.home=. -Djava.security.manager -Djava.security.policy==./weblogic.policy -Dweblogic.cluster.enable=true weblogic.Server
(5). 用 startcluster 重启 weblogic
十一、 weblogic.properties 文件解释
weblogic 的所有属性都是在 WebLogic 安装目录下的 weblogic.properties 文件中设置的( weblogic.cluster.enable 除外)。下面是一些重要的系统属性
· weblogic.system.listenPort ,这个属性定义了 Server 启动时的监听端口,缺省为 7001
· weblogic.password.system ,这个属性定义了作为 system 超级用户登录到 Weblogic server 上的口令
· weblogic.system.executeThreadCount ,这个属性定义了 weblogic server 启动时所开辟的线程数目,缺省值为 15
· weblogic.system.minPasswordLen ,这个属性定义了 weblogic 系统用户的最小口令长度
· weblogic.httpd.documentRoot ,这个属性定义了 weblogic 作为 web server 时的文档根目录,缺省为 public_html/
· weblogic.httpd.servlet.classpath ,这个属性定义了 weblogic 的 servlet 所在的目录
十二、启动和停止 WEBLOGIC
1 。启动:
首先运行 setEnv.cmd 或 setEnv.sh 然后运行 startWebLogic.cmd 或 startWebLogic.sh ,当你看到 Listening on port: 7001 时, Server 已经成功运行
2 。停止:
自己建立一个 stopWL.cmd 或 stopWL.sh 的文件,内容如下:
java weblogic.Admin t3://<Ip address>:7001 SHUTDOWN system <system password>
例如:
java weblogic.Admin t3://192.0.2.1:7001 SHUTDOWN system SYSTEM2000
十三、开发和运行中的常见问题
1. servlet 和 jsp 中使用 session 时,在哪设置 session 的超时时间?
解答:在 weblogic.properties 文件中加入: weblogic.httpd.session.timeoutSecs=-1 或 正整数
2. 如果使用 weblogic 自身作 web server 和使用其它的 web server( 如 NESCAPE) ,
在性能上有什么差别?
解答:如果是单个服务器,性能上差别不明显,甚至用 c 和其它语言开发的更快。
如果是集群服务器,则有一点差别:
- Weblogic cluster 遵循 J2EE 标准,其显而易见的好处是负载均衡、
故障恢复、容错,另外三层甚至多层结构使得各个层次的负载合理
分布等。
- NetScape 和 WebLogic 是竞争产品,应该差不多。这里没有太好的比
较数据。它们差别应该不太大。
- 其它服务器,在负载均衡等方面也有一些考虑,但总的来说扩充性
等方面不太好。
- 另外,现在 Sybase 公司的 EAserver 也加入了竞争行列。
3. WebLogic5.1 连两个数据库时怎么设置?
这个我没试过。但我想如果能行的话,应该在 weblogic.properties 文件中
设置两个连接池,然后在程序中分别应用。当然,也可在程序中直接使用
数据库的驱动程序。
4 .在 weblogic 中使用 applet 的步骤:(参见 C:/WebLogic doc 5.1/techdeploy/applets.html )
(1) 在您的 HTML 发布根目录(默认为 /weblogic/myserver/public_html/ )下建立 applets 目录
(2) 在您的包含 APPLETS 的 HTML 中设 <APPLET CODE="mainApplet"
CODEBASE="/classes/">
</APPLET>
其中将 CODE 值设为:您在 APPLET 原文件中设的包名(程序第一行,) + 您的 APPLET 类名
(3) 编译您的 applet 到 /weblogic/myserver/public_html/applets 目录中
在 /weblogic/myserver/public_html/applets/+ 您的包定义路径,您可以看到您的 applet 类
(4) 在 setenv 中设置 SERVER_CLASSES=/weblogic/myserver/public_html/applets/
(5) 在 weblogic.properties 中使 weblogic.httpd.register.classes=weblogic.servlet.ClasspathServlet 有效
(6) 在 startweblogic.cmd 中,在 -Dweblogic.class.path=%WEBLOGIC_CLASSPATH% 后加上 " ; %SERVER_CLASSES%"
(7) 重新启动 weblogic
( 8 )通过浏览器察看
5. (华夏周通在线)
问题:环境: HP-UNIX,apache,weblogic 5.1, 进行 plug-in 配置
以下是安装 apache plugin 时系统报的错
/usr/lib/dld.sl:Bad magic number for shared library:/opt/apache/libexec/mod_wl.so
/usr/lib/dld.sl:Exec format error
Cannot load /opt/apache/libexec/mod_wl.so into server:Exec format error
解答:打上 weblogic spatch6.0 后,此错误即不再出现。可能是 weblogic 本身未提供 HP-UNIX 上的 apache plug-in 模块,而在其补丁程序中才有。
6. 问题:在 /weblogic/lib/linux 目录下是否存在 libweblogicoci36.so 这样一个文件 , 因为我
配不上数据库连接池 . 它总告诉我找不到这个文件 .( 炎黄在线 )
解答: Weblogic 在 linux 上不提供连接 oracle 的 jdbc 驱动(因为需要一些共享库),因此 oracle 连接池使用 oracle 自己提供的 jdbc 驱动,该驱动是 type 4 类型,与远程 oracle 服务器连接时,不需要 oracle 的 client 端软件。因此在配置 weblogic.properties 文件中的 oracle 连接池时,与 solaris 中不一样,具体见相关配置( weblogic doc 5.1/classdocs/oraclethin.html )。此外还要将 oracle 提供的 jdbc 驱动 class111.zip 放到 CLASSPATH 路径中。
7. 问题:部署或运行 weblogic 安装目录下的 ejb/basic/beanmanaged (或 containermanaged )的 ejb 的例子不能成功 ? (创联万网)
解答:原因主要是这两了 EJB 的 entitybean 的例子使用了 demopool, 需要作相应的配置。
使用 weblogic 的 cloudscape 需要的设置:
( 1 )在 setenv.cmd 文件中的 classpath 变量中加入下列值: %WL_HOME%/lib/weblogicaux.jar;%WL_HOM
E%/weblogic/eval/cloudscape/lib/tools.jar;%WL_HOME%/weblogic/eval/cloudscape/lib/cloudscape.jar
( 2 )设置 cloudscape.system.home Java 系统属性,它指出含有 cloudscape 的控制文件和数据库数据的目录,此目录可任意设为相应的值,但若使用了 weblogic 的例子,则必须将此目录设为 /weblogic/eval/cloudscape/data. 即:
在 startweblogic 文件中的启动行加入下列属性, -Dcloudscape.system.home=%WL_HOME%/eval/cloudscape/data.
(3) 用到 demopool 时,将 weblogic.properties 文件中下列有关 demopool 的属性取消注释:
weblogic.jdbc.connectionPool.demoPool=/
url=jdbc:cloudscape:demo,/
driver=COM.cloudscape.core.JDBCDriver,/
initialCapacity=1,/
maxCapacity=2,/
capacityIncrement=1,/
props=user=none;password=none;server=none
#
# Add an ACL for the connection pool:
weblogic.allow.reserve.weblogic.jdbc.connectionPool.demoPool=everyone
8 、问题:在 JSP 页内,有关对数据库的操作,均使用 weblogic JDriver 直接与数
据库建立连接(没有使用 connectionpool ) , 操作完毕,把连接关掉。但有时,在数据
库端还会保留一些 inactive 的连接。这样,数据库的连接资源很快被占满。这种现象并
不是固定出现在某一页面,很随机。同时这种 inactive 的连接有应用中的 SQL 语句,但
绝大多数表现为系统内部的 SQL : select value from v_$nls_parameters where
parameter = 'nls_numeric_characters' 。(新亚网)
解答:原因在于使用数据库连接的语法不规范,只在 try{ … }catch{..} 中使用并关闭,而应在
finially() 方法中关闭。
9 。使用数据库连接池时,出现不释放连接的问题,如何解决?
在进行数据库操作时,在操作完毕后,一定要关闭连接。否则可能会引起 WEBLOGIC 连接池中
的连接不断减少,最后新的程序无法获得连接的错误。
下面给出一个典型使用的例子:
try
{
get connection;
get statement;
call statement.excute();
get resultSet;
process record;
close resultSet;
close startement;
}
catch (SQLException e)
{
println("SQlException:" + e.getMessage());
}
catch (Exception e1)
{
println("Exception:" + e.getMessage());
}
finally
{
try
{
if ((conn != null) && (!conn.isClose()))
conn.close();
}
catch (Exception e)
{
}
}
10 。在 solaris7 中运行 weblogic5.1, 使用 jdk1.2.2-05a 时,在使用 T3AdminMain 时,会出现 weblogic down 掉的问题。
解决方法:
( 1 )。使用 jdk1.2.1-03a
( 2 )。或者去掉 java 运行时的 JIT(just in time)(java 及时编译器 ) 选项,方法有 2 个:
<1>. 在 startWebLogic.sh 中加入如下指令:
_JVM_ARGS="inline_instrs_jit=0"
export _JVM_ARGS
这个选项会禁止 java 使用 JIT 编译器
<2>. 设置 JAVA_COMPILER=none 也可以起到同样的作用。
11 。如果使用 WEBLOGIC5.1 使用 JDK1.22 ,如果 WEBLOGIC 没有安装在/下,则 WEBLOGIC 启动不起来?
原因:是由于 java 2的安全检查问题,需要修改 weblogic.polocy 文件,将其中的 /weblogic 修改
为 $WEBLOGIC_DIR 。
12 。在安装 commerce server 时,希望使用 cloudspace 数据库中的缺省例程,但是例程无法运行?
原因:查看 WEBLOGIC 日志文件,发现在启动时,相应的 cloudspace 数据库启动不成功;
解决方法,将系统的日期该为2000-5-1。当然该日期随着不同的版本可能会变化。因为
cloudspace 的 license 中有日期限制
在安装、配置 WEBLOGIC 时,主要有以下几个方面的配置和问题:
一、 JSP 的设置
1 。 weblogic.properties 文件中的设置
在 PROPERTIES 文件中对于 JSP 进行设置:
# Set up WebLogic JSP properties
weblogic.httpd.register.*.jsp=/
weblogic.servlet.JSPServlet
weblogic.httpd.initArgs.*.jsp=/
pageCheckSeconds=1,/
compileCommand=c:/jdk1.3/bin/javac.exe,/
workingDir=C:/weblogic/myserver/classfiles,/
encoding=gb2312 (或 GBK ) ,/
verbose=true
2 。查看 JSP 生成的 JAVA 代码
在上边的配置中,到 workingDir 指定的目录下查找相应目录下的 JAVA 文件。
在测试 JSP 时,如果出现编译问题,由于报错位置不精确,因此经常需要查看相应的 JAVA 源文件,以便找到真正的问题所在
3 。手工编译 JSP 的方法
运行 setEnv.sh;
java weblogic.jspc your.jsp
二、 SERVLET 的设置
1 。如何进行 SERVLET 的登记?
# 用于进行 servlet 的登记
weblogic.httpd.register.test_servlet=doctor.servlets.test_servlet
weblogic.httpd.register.test1_servlet=doctor.servlets.test1_servlet
weblogic.httpd.register.test2_servlet=doctor.servlets.test2_servlet
2 。如何不登记一个 SERVLET ,而直接测试该 SERVLET
首先在 weblogic.properties 文件中登记
weblogic.httpd.register.servlets=weblogic.servlet.ServletServlet
然后在浏览器中键入:
http://host:7001/servlets/your_package/your.class
3 。运行登记的 SERVLET 和使用 ServletServlet 来运行一个 SERVLET 有什么区别?
使用 ServletServlet 来运行一个 SERVLET ,则每次运行的 SERVLET 都是一个新的线程,而使用
登记方式运行 SERVLET ,则每次都是同一个线程。
4 。如何在 shtml 文件中使用 servlet
<servlet name=your servlet>
<param name="param_name" value="your value">
</servlet>
三、数据库的设置
1 。数据库测试工具 dbping 的使用方式
java utils.dbping DBTYPE USER PASS [SERVER | DB@SERVER:PORT]
Valid DBTYPE values:
ORACLE, INFORMIX, INFORMIX4, SYBASE, MSSQLSERVER, MSSQLSERVER4
[SERVER | DB@SERVER:PORT] 是可选项
example:
java utils.dbping ORACLE oracle oracle123
java utils.dbping ORACLE oracle oracle123 ronghai
Oracle 例子
$ java utils.t3dbping // command
t3://bigbox:7001 // WebLogic URL
scott tiger // user password
DEMO20 // DB
weblogic.jdbc.oci.Driver // driver class
jdbc:weblogic:oracle // driver URL
Oracle with ODBC 例子
$ java utils.t3dbping // command
t3://bigbox:7001 // WebLogic URL
scott tiger // user password
"" // DB
sun.jdbc.odbc.JdbcOdbcDriver // driver class
jdbc:odbc:VISIORA73 // driver URL
DB2 with AS/400 type 4 JDBC driver 例子
$ java utils.t3dbping // command
t3://as400box:7001 // WebLogic URL
scott tiger // user password
DEMO // database
com.ibm.as400.access.AS400JDBCDriver // driver class
jdbc:as400://as400box // driver URL
WebLogic jDriver for Microsoft SQL Server (type 4 JDBC driver) 例子
$ java utils.t3dbping // command
t3://localhost:7001 // WebLogic URL
sa // user name
abcd // password
database // database@hostname:port
(optional if specified as part of the URL)
weblogic.jdbc.mssqlserver4.Driver // driver class
jdbc:weblogic:mssqlserver4:pubs@localhost:1433
// driver URL:database@hostname:port
(optional if used in the database parameter
2 。 ORACLE 连接池的配置
使用 ORACLE 数据库有 2 种方式,一种使用 type2 的 driver; 一种使用 type4 的 driver 。
weblogic.jdbc.connectionPool.oraclePool=/
url=jdbc:weblogic:oracle,/
driver=weblogic.jdbc.oci.Driver,/
loginDelaySecs=1,/
initialCapacity=4,/
maxCapacity=10,/
capacityIncrement=2,/
allowShrinking=true,/
shrinkPeriodMins=15,/
refreshMinutes=10,/
testTable=dual,/
props=user=hysh;password=hysh;server=ora8;weblogic.codeset=8859_1
注意如果使用 type2 的 driver, 在启动 WEBLOGIC 前应该设置 LD_LIBRARY_PATH 环境变量,如果 ORACLE 中使用的中文,还应该
设置 lang=zh 和 NLS_LANG???=????? 。
3 。 INFORMIX 连接池的配置
首先得到 INFORMIX 的 DRIVER ;
安装该 DRIVER ;
安装 license;
设置 weblogic.properties 文件 :
weblogic.jdbc.connectionPool.InfxPool=/
url=jdbc:weblogic:informix4,/
driver=weblogic.jdbc.informix4.Driver,/
loginDelaySecs=1,/
initialCapacity=4,/
maxCapacity=10,/
capacityIncrement=2,/
allowShrinking=true,/
shrinkPeriodMins=15,/
refreshTestMinutes=10,/
testTable=dual,/
props=user=myUserName;password=secret;/
server=myDatabase@myDBServer:myPortNo
weblogic.allow.reserve.weblogic.jdbc.connectionPool.InfxPool=everyone
4 。 MS-SQL-SERVER 连接池的配置
首先得到 MS-SQL 的 DRIVER ;
安装该 DRIVER ;
安装 license;
设置 weblogic.properties 文件 :
weblogic.jdbc.connectionPool.SQLPool=/
url=jdbc:weblogic:mssqlserver4:myServer:myPort,/
driver=weblogic.jdbc.mssqlserver4.Driver,/
loginDelaySecs=1,/
initialCapacity=4,/
maxCapacity=10,/
capacityIncrement=2,/
allowShrinking=true,/
shrinkPeriodMins=15,/
refreshTestMinutes=10,/
testTable=dual,/
props=user=myUserName;password=secret;server=myServer;/
weblogic.allow.reserve.weblogic.jdbc.connectionPool.SQLPool=everyone
5 。 SYBASE 连接池的配置
weblogic.jdbc.connectionPool.jconnect=/
url=jdbc:sybase:Tds:hostName:portNumber,/
driver=com.sybase.jdbc.SybDriver,/
initialCapacity=1,/
maxCapacity=1,/
props=user=sa;password=wessie1,/
allow=guest;joe;jill
weblogic.allow.reserve.weblogic.jdbc.connectionPool.jconnect=everyone
四、与 NETSCAPE WWW SERVER 的连用设置
1 。将 WEBLOGIC 提供的插件放入 NETSCAPE WWW SERVER 相应目录下
2 。配置 NETSCAPE 的 obj.conf 文件( NETSCAPE_HOME/https-INSTANCE_NAME/config/obj.conf )
在 obj.conf 文件开始,加入如下语句,用于 NETSCAPE 启动时,装载插件
Init fn="load-modules" funcs="wl-proxy,wl-init"/
shlib=/usr/local/netscape/plugins/SHARED_LIBRARY
Init fn="wl-init"
通过路径导航被插件处理的文件
<Object name="weblogic" ppath="*/weblogic/*">
Service fn=wl-proxy WebLogicHost=myserver.com/
WebLogicPort=7001 PathTrim="/weblogic"
</Object>
<Object name="si" ppath="*/servletimages/*">
Service fn=wl-proxy WebLogicHost=otherserver.com/
WebLogicPort=7008
</Object>
通过文件的后缀,导航被插件处理的文件
<Object name=default>
NameTrans fn=pfx2dir from=/ns-icons/
dir="c:/Netscape/SuiteSpot/ns-icons"
NameTrans fn=pfx2dir from=/mc-icons/
dir="c:/Netscape/SuiteSpot/ns-icons"
NameTrans fn="pfx2dir" from="/help" dir=/
"c:/Netscape/SuiteSpot/manual/https/ug"
NameTrans fn=document-root root="c:/Netscape/SuiteSpot/docs"
Service method="(GET|HEAD|POST|PUT)" type=text/jsp fn=wl-proxy/
WebLogicHost=localhost WebLogicPort=7001 PathPrepend=/jspfiles
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^add
PathCheck fn=nt-uri-clean
PathCheck fn="check-acl" acl="default"
PathCheck fn=find-pathinfo
PathCheck fn=find-index index-names="index.html,home.html"
ObjectType fn=type-by-extension
ObjectType fn=force-type type=text/plain
Service method=(GET|HEAD) type=magnus-internal/imagemap fn=imagemap
Service method=(GET|HEAD) /
type=magnus-internal/directory fn=index-common
Service method=(GET|HEAD) type=*~magnus-internal/* fn=send-file
AddLog fn=flex-log name="access"
</Object>
3 。修改 mime.conf 文件
type=text/jsp exts=jsp
4 。 WEBLOGIC 插件的参数
WebLogicHost=domain name
WebLogicPort=port (formerly TengahPort)
WebLogicCluster=cluster list
example:WebLogicCluster="myweblogic.com:7001,yourweblogic.com:6999,theirweblogic.com:6001"
PathTrim=string
PathPrepend=string
ConnectTimeoutSecs=seconds
ConnectRetrySecs=seconds
StatPath=boolean
ErrorPage=URL
CookieName=cname
注意在上述参数中,如果设置了 WebLogicCluster 参数,则 WebLogicHost 和 WebLogicPort 参数不起作用。
例如:
<Object name="weblogic" ppath="*/weblogic/*">
Service fn=wl-proxy WebLogicHost=myweblogic.server.com/
WebLogicPort=7001/
PathTrim="/weblogic"
</Object>
五、与 APACHE WWW SERVER 的连用设置
在使用 APACHE WWW SERVER 与 WEBLOGIC 连用时,需要使用 SERVICE PACK ,因为原始版本
不支持 APACHE 的连用。
如果使用 APACHE WWW SERVER 则 APACHE WWW SERVER 需要支持插件方式,如果不支持,则
需要通过 APACHE WWW SERVER 的源码进行编译,具体编译方法见文档。
目前使用的 apache www server 为 1.3.12
安装目录: /usrl/local/apache
主要配置文件: /usrl/local/apache/conf/httpd.conf
启动和停止方法:
启动: cd /usrl/local/apache/bin
./apachectl start
停止: cd /usrl/local/apache/bin
./apachectl stop
httpd.conf 配置文件中被修改的地方:
下面的指令用于设置 apache www server 的名字 :
ServerName DBSERVER
下面的指令用于设置 apache www server 的页面根目录 :
DocumentRoot "/weblogic.510/myserver/public_html/haoyisheng"
下面的指令用于设置 apache www server 的缺省访问的文件 :
<IfModule mod_dir.c>
DirectoryIndex index.jsp
</IfModule>
下面的指令用于设置 apache www server 与 weblogic server 的连接 :
#following is add by tang
############################################
# 装入 weblogic 提供的 plugin 模块
LoadModule weblogic_module libexec/mod_wl.so
##### Weblogic specific declarations ########
# 定义对于访问的 url 连接中含有 /weblogic/??? 的访问转给 weblogic 处理
<Location /weblogic>
SetHandler weblogic-handler
PathTrim weblogic
# or you can set PathTrim to /weblogic
ErrorPage http://localhost
</Location>
<Location /servletimages>
SetHandler weblogic-handler
Pathtrim something
ErrorPage http://myerrorpage1.mydomain.com
</Location>
# 定义对于 jsp 的访问转给 weblogic 处理
<Files *.jsp>
SetHandler weblogic-handler
</Files>
# 定义对于 shtml 的访问转给 weblogic 处理
<Files *.shtml>
SetHandler weblogic-handler
</Files>
# 定义对于 servlet 的访问转给 weblogic 处理
<Files *_servlet>
SetHandler weblogic-handler
</Files>
################## Parameters ####################
#<IfModule mod/weblogic.c>
#Include /usrl/local/apache/conf/weblogic.conf
#</IfModule>
############# End of WebLogic specific declarations #######
AddModule mod_weblogic.c
# 定义 weblogic 服务器的 IP 地址和端口信息
WebLogicHost 192.168.168.8
WebLogicPort 7001
PathTrim weblogic
编译安装 apache www server 方法:
* 在 apache 源程序目录下运行 :
./configure --prefix=<destination directory> --enable-module=so --enable-rule=SHARED_CORE
make
make install
* 在 /weblogic.51/lib/solaris 目录下,执行下面的命令
APACHE_HOME/bin/apxs -i -a -n weblogic mod_wl.so
* 配置 httpd.conf 文件
六、与 MS WWW SERVER 的连用设置
对于 IIS 来说,只能通过文件的后缀进行导航,插件名称为 iisproxy.dll
1 。首先修改 IIS 的配置
启动 IIS 的 service manager;
在左面的面板中选择你的网站;
点击工具条中的 "play";
在弹出的窗口中选择 "home directory" 页面中的 "configure" 按钮;
在弹出的窗口中,点击 "add" 按钮;
增加相应后缀文件对应的插件;如 *.jsp-----iisproxy.dll;
OK;
2 。配置 iisproxy.ini 文件
# This file contains initialization name/value pairs
# for the IIS/WebLogic plug-in.
WebLogicHost=localhost
WebLogicPort=7001
WebLogicCluster=myweblogic.com:7001,yourweblogic.com:6999
ConnectTimeoutSecs=20
ConnectRetrySecs=2
七、汉字问题的处理
1 。关于 JSP 汉字问题
在 PROPERTIES 文件中对于 JSP 进行汉字设置:
weblogic.properties 中设: encoding=GBK 或 gb2312
注意:是否是唯一的最后的设置。
例如:
# Set up WebLogic JSP properties
weblogic.httpd.register.*.jsp=/
weblogic.servlet.JSPServlet
weblogic.httpd.initArgs.*.jsp=/
pageCheckSeconds=1,/
compileCommand=c:/jdk1.3/bin/javac.exe,/
workingDir=C:/weblogic/myserver/classfiles,/
encoding=gb2312 (或 GBK ) ,/
verbose=true
下面是进行字符集转换的 JAVA 程序:
import java.lang.*;
import java.io.*;
public class Converter {
public static String GB2Uni(String GB) {
//this is a method for servlet loading chinese data from db.
try {
byte[] tmp = GB.getBytes("Cp1252"); //you must change the byte code
String result = new String(tmp);
return result;
} catch(UnsupportedEncodingException e) {return null;};
}
public static String Uni2GB(String GB) {
//this is a method for jsp displaying chinese code.
//making.....waiting....
}
}
2 。关于 SERVERLET 的汉字问题
在 SERVLET 中的汉字问题,实际上就是编译 SERVLET 和启动 WEBLOGIC 时的环境应该保持一致的问题。在 UNIX 系统中,主要通过
设置 lang 环境变量来起作用。如果编译 SERVLET 前, lang=zh; 则在启动 WEBLOGIC 前 ,lang 也应该设置为 zh; 如果编译 SERVLET 前, lang=8859-1; 则在启动 WEBLOGIC 前 ,lang 也应该设置为 8859-1.
3 。关于数据库的汉字问题
(1). 当数据库字符集为 AMERICAN_AMERICA.we8iso8859p1 或 AMERICAN_AMERICA.zhs16cgb231280 时, weblogic.properties 文件中的 weblogic.codeset 必须设置为 GBK.jsp 的 encoding =GBK ,且从数据库中取数据必须不用 getBytes("ISO-8859-1").
(2). 当数据库字符集为 AMERICAN_AMERICA.we8iso8859p1 时 ,java application 应用通过 jdbc 从数据库中取汉字,出现乱码 ; 当数据库字符集为 AMERICAN_AMERICA.zhs16cgb231280 时 ,java application 应用通过 jdbc 从数据库中取汉字正常,且从数据库中取数据可用 getBytes("ISO-8859-1") ,也可不用 getBytes("ISO-8859-1")
(3). 当数据库字符集为 AMERICAN_AMERICA.we8iso8859p1 时 ,jsp 或 servlet 应用通过 jdbc 从数据库中取汉字,加 codeset=GBK, 不出现乱码 ; 当数据库字符集为 AMERICAN_AMERICA.zhs16cgb231280 时 , jsp 或 servlet 应用通过 jdbc 从数据库中取汉字出现乱码
八、 LICENSE 的配置
将你从合法渠道获得的 WebLogicLicense.xml 拷贝到 weblogic 的根目录下的 license 目录 .
九、 EJB 的设置
EJB 的布置包含 2 种方式,一种是在属性文件中设置,这样在启动的时候, WEBLOGIC 会自动加载相应的 EJB ,另一种是在运行的时候进行热布置,使用控制台或 EJB 布置工具。
1 。在 weblogic.properties 文件中布置
weblogic.ejb.deploy=/
/weblogic/myserver/your_ejb_1.jar, /
/weblogic/myserver/your_ejb_2.jar, /
/weblogic/myserver/your_ejb_3.jar
2 。热布置
首先需要在 weblogic classpath 中设置相应的路径;
然后启动控制台或 EJB 布置工具进行热布置;
十、 CLUSTER 的设置
1.Weblogic Server cluster 的配置类型
共有 4 种配置。所有这些配置使用相同的基础结构:
(1) . Servlet cluster:
一个三层集群。 Servlet clustering 提供装载平衡或装载平衡插件。
(2) . EJB Cluster :
集群的类型是大多数的典型的 "thicker" 基于客户使用 java/va/c++ 代码的的提交。
HTTP Server 是一个要求的环境,客户能通过一个 weblogic server 或通过 weblogic netscape ( proxy )插件通讯。
(3) . Servlet and EJB Cluster:
一个多层的混合对象和 servlets ,象一个 HTML borwser 和 EJBeans 混合的一样。一个 Weblogic 的实力包括 RMI 、 EJB 、 JDBC 和 HTTP Servlet
(4) . Four-tier Web Application Cluster:
2. 安装要点
*所有做 cluster 的机器必须安装相同版本的 Weblogic 。
*需要有 cluster license.
*所有做 cluster 的机器必须在一个网段,并可通过 IP multicast 通讯。
*所有做 cluster 的机器监听同一个端口。
*强烈推荐所有做 cluster 的机器共享的文件系统用 raid 。
*所有做 cluster 的机器 JDBC,EJB 连接配置相同。
*所有做 cluster 的机器 servlet 注册表应一致。
*所有做 cluster 的机器 JDBCconnection pool 配置相同。
* RMI 的配置。单配。
3。安装实例: (cctv)
(1). 必须安装具有 cluster 的 weblogic license
(2). 两种办法
将每一台 weblogic cluster 主机配置同一域名 , 即在 cctv 的内部 DNS 服务器上将每一台具有不同 IP 地址的 weblogic cluster 主机配置为同一域名 ;
如果采用 NES 作为 Webserver, 可以在配置 weblogic plug in 时配置,修改 obj.conf 文件:
将 <Object name="weblogic" ppath="*/weblogic/*">
Service fn="wl-proxy" WebLogicHost="192.168.199.101"
WebLogicPort="7001" PathTrim="/weblogic" ConnectTimeoutSecs="2"
</Object>
改为
<Object name="weblogic" ppath="*/weblogic/*">
Service fn="wl-proxy" WebLogicCluster="192.168.199.101:7001,192.168.199.102:7001
,192.168.199.175:7001" PathTrim="/weblogic" ConnectTimeoutSecs="2"
</Object>
(3). 将 /weblogic/myserver 目录及目录下的所有文件拷贝为 /weblogic/myCluster
(4). 将 startWebLogic.cmd 拷贝为 startcluster.cmd, 将 startcluster.cmd 中的 weblogi 的运行语句
%JAVA_HOME%/bin/java -ms64m -mx64m -classpath %JAVA_CLASSPATH% -Dweblogic.class.path=%WEBLOGIC_CLASSPATH% -Dweblogic.home=. -Djava.security.manager -Djava.security.policy==./weblogic.policy weblogic.Server
改为
%JAVA_HOME%/bin/java -ms64m -mx64m -classpath %JAVA_CLASSPATH% -Dweblogic.class.path=%WEBLOGIC_CLASSPATH% -Dweblogic.home=. -Djava.security.manager -Djava.security.policy==./weblogic.policy -Dweblogic.cluster.enable=true weblogic.Server
(5). 用 startcluster 重启 weblogic
十一、 weblogic.properties 文件解释
weblogic 的所有属性都是在 WebLogic 安装目录下的 weblogic.properties 文件中设置的( weblogic.cluster.enable 除外)。下面是一些重要的系统属性
· weblogic.system.listenPort ,这个属性定义了 Server 启动时的监听端口,缺省为 7001
· weblogic.password.system ,这个属性定义了作为 system 超级用户登录到 Weblogic server 上的口令
· weblogic.system.executeThreadCount ,这个属性定义了 weblogic server 启动时所开辟的线程数目,缺省值为 15
· weblogic.system.minPasswordLen ,这个属性定义了 weblogic 系统用户的最小口令长度
· weblogic.httpd.documentRoot ,这个属性定义了 weblogic 作为 web server 时的文档根目录,缺省为 public_html/
· weblogic.httpd.servlet.classpath ,这个属性定义了 weblogic 的 servlet 所在的目录
十二、启动和停止 WEBLOGIC
1 。启动:
首先运行 setEnv.cmd 或 setEnv.sh 然后运行 startWebLogic.cmd 或 startWebLogic.sh ,当你看到 Listening on port: 7001 时, Server 已经成功运行
2 。停止:
自己建立一个 stopWL.cmd 或 stopWL.sh 的文件,内容如下:
java weblogic.Admin t3://<Ip address>:7001 SHUTDOWN system <system password>
例如:
java weblogic.Admin t3://192.0.2.1:7001 SHUTDOWN system SYSTEM2000
十三、开发和运行中的常见问题
1. servlet 和 jsp 中使用 session 时,在哪设置 session 的超时时间?
解答:在 weblogic.properties 文件中加入: weblogic.httpd.session.timeoutSecs=-1 或 正整数
2. 如果使用 weblogic 自身作 web server 和使用其它的 web server( 如 NESCAPE) ,
在性能上有什么差别?
解答:如果是单个服务器,性能上差别不明显,甚至用 c 和其它语言开发的更快。
如果是集群服务器,则有一点差别:
- Weblogic cluster 遵循 J2EE 标准,其显而易见的好处是负载均衡、
故障恢复、容错,另外三层甚至多层结构使得各个层次的负载合理
分布等。
- NetScape 和 WebLogic 是竞争产品,应该差不多。这里没有太好的比
较数据。它们差别应该不太大。
- 其它服务器,在负载均衡等方面也有一些考虑,但总的来说扩充性
等方面不太好。
- 另外,现在 Sybase 公司的 EAserver 也加入了竞争行列。
3. WebLogic5.1 连两个数据库时怎么设置?
这个我没试过。但我想如果能行的话,应该在 weblogic.properties 文件中
设置两个连接池,然后在程序中分别应用。当然,也可在程序中直接使用
数据库的驱动程序。
4 .在 weblogic 中使用 applet 的步骤:(参见 C:/WebLogic doc 5.1/techdeploy/applets.html )
(1) 在您的 HTML 发布根目录(默认为 /weblogic/myserver/public_html/ )下建立 applets 目录
(2) 在您的包含 APPLETS 的 HTML 中设 <APPLET CODE="mainApplet"
CODEBASE="/classes/">
</APPLET>
其中将 CODE 值设为:您在 APPLET 原文件中设的包名(程序第一行,) + 您的 APPLET 类名
(3) 编译您的 applet 到 /weblogic/myserver/public_html/applets 目录中
在 /weblogic/myserver/public_html/applets/+ 您的包定义路径,您可以看到您的 applet 类
(4) 在 setenv 中设置 SERVER_CLASSES=/weblogic/myserver/public_html/applets/
(5) 在 weblogic.properties 中使 weblogic.httpd.register.classes=weblogic.servlet.ClasspathServlet 有效
(6) 在 startweblogic.cmd 中,在 -Dweblogic.class.path=%WEBLOGIC_CLASSPATH% 后加上 " ; %SERVER_CLASSES%"
(7) 重新启动 weblogic
( 8 )通过浏览器察看
5. (华夏周通在线)
问题:环境: HP-UNIX,apache,weblogic 5.1, 进行 plug-in 配置
以下是安装 apache plugin 时系统报的错
/usr/lib/dld.sl:Bad magic number for shared library:/opt/apache/libexec/mod_wl.so
/usr/lib/dld.sl:Exec format error
Cannot load /opt/apache/libexec/mod_wl.so into server:Exec format error
解答:打上 weblogic spatch6.0 后,此错误即不再出现。可能是 weblogic 本身未提供 HP-UNIX 上的 apache plug-in 模块,而在其补丁程序中才有。
6. 问题:在 /weblogic/lib/linux 目录下是否存在 libweblogicoci36.so 这样一个文件 , 因为我
配不上数据库连接池 . 它总告诉我找不到这个文件 .( 炎黄在线 )
解答: Weblogic 在 linux 上不提供连接 oracle 的 jdbc 驱动(因为需要一些共享库),因此 oracle 连接池使用 oracle 自己提供的 jdbc 驱动,该驱动是 type 4 类型,与远程 oracle 服务器连接时,不需要 oracle 的 client 端软件。因此在配置 weblogic.properties 文件中的 oracle 连接池时,与 solaris 中不一样,具体见相关配置( weblogic doc 5.1/classdocs/oraclethin.html )。此外还要将 oracle 提供的 jdbc 驱动 class111.zip 放到 CLASSPATH 路径中。
7. 问题:部署或运行 weblogic 安装目录下的 ejb/basic/beanmanaged (或 containermanaged )的 ejb 的例子不能成功 ? (创联万网)
解答:原因主要是这两了 EJB 的 entitybean 的例子使用了 demopool, 需要作相应的配置。
使用 weblogic 的 cloudscape 需要的设置:
( 1 )在 setenv.cmd 文件中的 classpath 变量中加入下列值: %WL_HOME%/lib/weblogicaux.jar;%WL_HOM
E%/weblogic/eval/cloudscape/lib/tools.jar;%WL_HOME%/weblogic/eval/cloudscape/lib/cloudscape.jar
( 2 )设置 cloudscape.system.home Java 系统属性,它指出含有 cloudscape 的控制文件和数据库数据的目录,此目录可任意设为相应的值,但若使用了 weblogic 的例子,则必须将此目录设为 /weblogic/eval/cloudscape/data. 即:
在 startweblogic 文件中的启动行加入下列属性, -Dcloudscape.system.home=%WL_HOME%/eval/cloudscape/data.
(3) 用到 demopool 时,将 weblogic.properties 文件中下列有关 demopool 的属性取消注释:
weblogic.jdbc.connectionPool.demoPool=/
url=jdbc:cloudscape:demo,/
driver=COM.cloudscape.core.JDBCDriver,/
initialCapacity=1,/
maxCapacity=2,/
capacityIncrement=1,/
props=user=none;password=none;server=none
#
# Add an ACL for the connection pool:
weblogic.allow.reserve.weblogic.jdbc.connectionPool.demoPool=everyone
8 、问题:在 JSP 页内,有关对数据库的操作,均使用 weblogic JDriver 直接与数
据库建立连接(没有使用 connectionpool ) , 操作完毕,把连接关掉。但有时,在数据
库端还会保留一些 inactive 的连接。这样,数据库的连接资源很快被占满。这种现象并
不是固定出现在某一页面,很随机。同时这种 inactive 的连接有应用中的 SQL 语句,但
绝大多数表现为系统内部的 SQL : select value from v_$nls_parameters where
parameter = 'nls_numeric_characters' 。(新亚网)
解答:原因在于使用数据库连接的语法不规范,只在 try{ … }catch{..} 中使用并关闭,而应在
finially() 方法中关闭。
9 。使用数据库连接池时,出现不释放连接的问题,如何解决?
在进行数据库操作时,在操作完毕后,一定要关闭连接。否则可能会引起 WEBLOGIC 连接池中
的连接不断减少,最后新的程序无法获得连接的错误。
下面给出一个典型使用的例子:
try
{
get connection;
get statement;
call statement.excute();
get resultSet;
process record;
close resultSet;
close startement;
}
catch (SQLException e)
{
println("SQlException:" + e.getMessage());
}
catch (Exception e1)
{
println("Exception:" + e.getMessage());
}
finally
{
try
{
if ((conn != null) && (!conn.isClose()))
conn.close();
}
catch (Exception e)
{
}
}
10 。在 solaris7 中运行 weblogic5.1, 使用 jdk1.2.2-05a 时,在使用 T3AdminMain 时,会出现 weblogic down 掉的问题。
解决方法:
( 1 )。使用 jdk1.2.1-03a
( 2 )。或者去掉 java 运行时的 JIT(just in time)(java 及时编译器 ) 选项,方法有 2 个:
<1>. 在 startWebLogic.sh 中加入如下指令:
_JVM_ARGS="inline_instrs_jit=0"
export _JVM_ARGS
这个选项会禁止 java 使用 JIT 编译器
<2>. 设置 JAVA_COMPILER=none 也可以起到同样的作用。
11 。如果使用 WEBLOGIC5.1 使用 JDK1.22 ,如果 WEBLOGIC 没有安装在/下,则 WEBLOGIC 启动不起来?
原因:是由于 java 2的安全检查问题,需要修改 weblogic.polocy 文件,将其中的 /weblogic 修改
为 $WEBLOGIC_DIR 。
12 。在安装 commerce server 时,希望使用 cloudspace 数据库中的缺省例程,但是例程无法运行?
原因:查看 WEBLOGIC 日志文件,发现在启动时,相应的 cloudspace 数据库启动不成功;
解决方法,将系统的日期该为2000-5-1。当然该日期随着不同的版本可能会变化。因为
cloudspace 的 license 中有日期限制
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=669682