5.部署web项目
5.1手动部署
1)启动weblogic,访问http://localhost:7001/console。使用建立weblogic域时填写的用户名(weblogic)和密码(12345678)登录控制台。进入控制台以后在左边的导航栏有个域结构。在该目录下点击部署,点击“锁定并编辑”,然后点击“安装”按钮,
2)按照提示找到我们应用程序包的根目录(/home/12580/iiss/applications),如下图所示,勾选applications目录,然后点击“下一步”
3)出现如下图所示界面,点击“下一步”;
4)在出现的如下图所示界面中,勾选我所要部署web服务的server,然后点击“下一步”;
5)在出现的下图界面中,可以根据需要更改所部署的服务的名称,之后点击“完成”按钮,并点击“激活更改”按钮。
6)在出现的上图界面中,勾选要部署的业务,然后点击“启动—为所有请求提供服务”,然后点击“是”。
7)出现下图所示界面,表明服务启动OK,并且这时会在/home/12580/iiss/domain_iiss/config目录下面的config.xml中生成我们刚刚部署的项目描述:
表明配置成功。
这时我们访问http://10.137.212.158:8603/iiss/就会看到如下成功页面的信息了:
5.2多server下web服务部署
假设服务器A上有多个被管server,AAA和CCC;服务器B上也有多个被管server,BBB和DDD。对于一台服务器上的所有被管server,默认只有一个上下文存根,如下图所示。
所以所部署的应用程序包目录,默认一台服务器的所有被管server只能用一个目录。这样会导致一个问题,假如应用程序包中的文件配置不一样(例如日志的路径等),在选择不同路径下的应用程序包部署时,因为上下文存根初始化失败,导致业务部署失败。
要想解决上面的问题,即不同的server可以选择不同的应用程序包路径进行部署,需要进行如下操作:
a. 登录域的控制台,点击“服务器”菜单,点击部署web服务的server名称;
b. 在弹出的如下界面中,点击“锁定并编辑”按钮,然后点击“部署”按钮;
c. 在弹出的如下界面中,将“临时模式”改为“不存放”,然后点击“保存”按钮,然后点击“激活更改”。
d. 上述配置修改完成后,重启对应的server,则修改的配置即可生效。
e. 在相应的server上,按照5.1节所述部署对应的web应用程序包即可。
6.端口号修改
6.1管理server端口号修改
方式一:
weblogic的默认端口是7001,如果想改端口的话,在域的config目录下的config.xml文件中添加<listen-port>8080</listen-port>。位置如下:
<server>
<name>AdminServer</name>
<listen-port>8080</listen-port>
<listen-address></listen-address>
</server>
方式二:
a.登录域的控制台,如下图所示,点击“锁定并编辑”按钮,然后点击“AdminServer(管理)”
b.在弹出的如下界面中,修改监听端口以后,点击“保存”按钮,然后“激活更改”。
按照上面的方式之一更新端口以后,重新启动域,访问http://10.137.212.158:8601/console即可。
6.2被管server端口号修改
被管server修改端口的两种方式和上面情况类似。一般我们都是去域的控制台,点击对应的server,将监听端口号修改保存并激活更改后,然后将对应的server重启,更改即可生效。
二、服务程序设置(调优):
1、设置JDK内存:
修改weblogic\user_projects\domains\%mydomain%\bin下的setDomainEnv.cmd文件:
修改前:
call "%WL_HOME%\common\bin\commEnv.cmd" set WLS_HOME=%WL_HOME%\server if "%JAVA_VENDOR%"=="Sun" ( set WLS_MEM_ARGS_64BIT=-Xms256m -Xmx512m set WLS_MEM_ARGS_32BIT=-Xms256m -Xmx512m ) else ( set WLS_MEM_ARGS_64BIT=-Xms512m -Xmx512m set WLS_MEM_ARGS_32BIT=-Xms512m -Xmx512m )
MEM_PERM_SIZE_64BIT="-XX:PermSize=128m" export MEM_PERM_SIZE_64BIT MEM_PERM_SIZE_32BIT="-XX:PermSize=48m" export MEM_PERM_SIZE_32BIT
MEM_MAX_PERM_SIZE_64BIT="-XX:MaxPermSize=256m" export MEM_MAX_PERM_SIZE_64BIT
MEM_MAX_PERM_SIZE_32BIT="-XX:MaxPermSize=128m" export MEM_MAX_PERM_SIZE_32BIT |
修改后:
if"%JAVA_VENDOR%"=="Sun" ( set WLS_MEM_ARGS_64BIT=-Xms512m –Xmx1024m set WLS_MEM_ARGS_32BIT=-Xms512m –Xmx1024m ) else ( set WLS_MEM_ARGS_64BIT=-Xms1024m –Xmx1024m set WLS_MEM_ARGS_32BIT=-Xms1024m –Xmx1024m ) MEM_PERM_SIZE_64BIT="-XX:PermSize=128m" export MEM_PERM_SIZE_64BIT MEM_PERM_SIZE_32BIT="-XX:PermSize=48m" export MEM_PERM_SIZE_32BIT
MEM_MAX_PERM_SIZE_64BIT="-XX:MaxPermSize=512m" export MEM_MAX_PERM_SIZE_64BIT
MEM_MAX_PERM_SIZE_32BIT="-XX:MaxPermSize=256m" export MEM_MAX_PERM_SIZE_32BIT |
说明:红色字体为修改的内容,具体修改值根据实际物理内存确定
·-Xmx3550m:设置JVM最大堆内存为3550M。
·-Xms3550m:设置JVM初始堆内存为3550M。此值可以设置与-Xmx相同,以避免每次JVM动态分配内存所浪费的时间。
·-XX:PermSize=256M:设置堆内存持久代初始值为256M。
·-XX:MaxPermSize=512M:设置持久代最大值为512M。
·32位操作JDK内存系统:最大可设置1.5G,如果设置过大,会导致服务无法启动
·64位操作JDK内存系统:最大设置为物理内存的60~80%
2、设置线程数:
一般做性能测试时,修改如下配置:
修改weblogic\user_projects\domains\%mydomain%\bin下的setDomainEnv.cmd中在JAVA_OPTIONS中添加如下:
setJAVA_OPTIONS=%JAVA_OPTIONS%-Dweblogic.threadpool.MinPoolSize=2000
setJAVA_OPTIONS=%JAVA_OPTIONS%-Dweblogic.threadpool.MaxPoolSize=4000
修改前:
set JAVA_OPTIONS=%JAVA_OPTIONS% @REM SET THE CLASSPATH |
修改后:
set JAVA_OPTIONS=%JAVA_OPTIONS%-Dweblogic.threadpool.MinPoolSize=2000 set JAVA_OPTIONS=%JAVA_OPTIONS%-Dweblogic.threadpool.MaxPoolSize=4000 @REM SET THE CLASSPATH |
说明:
JDK5.0以后每个线程栈大小为1M,但是操作系统对一个进程内的线程数还是有限制的,不能无限生成。32位操作系统根据JVM最大堆内存设置;64位操作系统经验值在3000~5000左右。
三、问题汇总
问题1:wlsconfig_2013011160752.log文件不能写到weblogic用户的相应目录下。
如果创建域的用户(iiss)和weblogic用户(midware)不是同一个用户,在创建域时会报如下图所示一个警告信息,提示wlsconfig_2013011160752.log文件不能写到weblogic用户的相应目录下。
解决方法:
需要将weblogic用户的/home/mw/Oracle/Middleware目录下的logs文件目录权限赋成777。
问题2:Unable to insantiate GUI,defaulting to console mode
如果创建域的用户(iiss)和weblogic用户(midware)不是同一个用户,在创建域时(用iiss用户去执行midware用户下的/home/mw/Oracle/Middleware/wlserver_10.3/common目录下的config.sh命令)会报如下图所示错误。
解决方法:如果是telnet、或者其他不能启图形界面的方式登录去执行config.sh建domain,那么weblogic会给你上面那个提示,注意是提示,不是报错。然后weblogic因无法启图形交互而启字符交互方式,完成create domain过程。
如果应用Xmanager登录服务器,按照上面的方式createdomain,是可以弹出图形化界面进行安装的。
问题3.在编辑boot.properties文件时,在域的servers目录下,找不到AdminServer目录?
解决方法:
在创建域时(3.2节所述),如果不勾选AdministrationServer,域创建成功后,默认在域的servers目录下是没有AdminServer目录的,必须执行一下./startWebLogic.sh启动脚本,才会生成AdminServer目录。
问题4.服务部署在对应的被管server上,启动时有时会报内存溢出的错误,导致web服务部署失败。
解决方法:
应该按照第二章,第1节所示,修改JDK内存。
问题5. java.lang.NoSuchMethodError
java.lang.NoSuchMethodError:org.apache.ws.commons.schema.XmlSchemaCollection.read(Lorg/w3c/dom/Document;Ljava/lang/String;Lorg/apache/ws/commons/schema/ValidationEventHandler;)Lorg/apache/ws/commons/schema/XmlSchema;
经分析发现:工程中WEB-INF/lib 目录下存在了xmlschema-core-2.0.jar 和XmlSchema-1.4.7.jar 两个不同版本的包冲突了,由于工程里面用的是XmlSchema-1.4.7.jar这个包,所以删除xmlschema-core-2.0.jar 包之后,就可以正常部署了。
问题6.专题访问路径出错。
在本期NG4.5集团重点应用,多维和营销专题做weblogic适配的时候,发现访问目录中始终多一层jsp文件夹。导致访问无法找到正确的路径。所以做了如下的修改
修改 NG45AppServ_mul/jsp 目录下的文件 sendRedirectPage.jsp。
讲path = "flex/mulCostAnl/PageSubject.html";
修改为path ="../flex/mulCostAnl/PageSubject.html";