weblogic基本目录介绍,位数查看,启动与发布项目,修改JVM参数,设置项目为默认项目
这里的基本目录%base%表示安装目录,如我的目录为:E:/weblogic就是%base%
1.weblogic目录介绍
weblogic主要的目录介绍:
1.日志目录:
每个domain(域)都有自己的日志目录,一般启动日志是AdmiServer.log,存放位置在:%base%\user_projects\domains\base_domain\servers\AdminServer\logs,如下:
2.项目发布目录:
每个域也都有自己的项目发布目录。存放位置在:%base%\user_projects\domains\base_domain\servers\AdminServer\tmp\_WL_user,例如:
3.JSP编译之后的目录:(我们需要知道weblogic编译JSP依赖自己的lib库,所以在编译之后的class文件头部引入自己的lib,而tomcat也依赖于自己的lib)
存放的是JSP编译之后的目录,位置在:%base%\user_projects\domains\base_domain\servers\AdminServer\tmp\_WL_user\Struts\km2umq\jsp_servlet文件夹下面。而且JSP不会一次性全部编译,是我们第一次访问哪个JSP编译哪个JSP(JSP的延迟编译特性确实给性能带来了不大不小的影响,第一次访问超慢的那种状况给人的感觉非常不好),而且项目的根目录的JSP编译之后的package是默认的,然后每个目录对应一个package,例如:
(1)根目录下的JSP:
JSP内容
<%@ page pageEncoding="GBK" contentType="text/html; charset=GBK" %> <%@taglib uri = "http://java.sun.com/jsp/jstl/core" prefix="c" %> <c:set var="baseurl" value="${pageContext.request.contextPath}"></c:set> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> "${baseurl}" </body> </html>
编译之后的位置:%base%\user_projects\domains\base_domain\servers\AdminServer\tmp\_WL_user\Struts\km2umq\jsp_servlet\
查看反编译之后的内容:
package jsp_servlet; import java.io.IOException; import java.io.UnsupportedEncodingException; import javax.servlet.ServletConfig; import javax.servlet.ServletContext; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import javax.servlet.jsp.JspFactory; import javax.servlet.jsp.JspWriter; import javax.servlet.jsp.PageContext; import javax.servlet.jsp.SkipPageException; import javax.servlet.jsp.tagext.JspTag; import javax.servlet.jsp.tagext.SimpleTag; import javax.servlet.jsp.tagext.Tag; import org.apache.taglibs.standard.tag.rt.core.SetTag; import weblogic.jsp.internal.jsp.JspFunctionMapper; import weblogic.jsp.internal.jsp.utils.JspRuntimeUtils; import weblogic.servlet.jsp.ByteWriter; import weblogic.servlet.jsp.DependencyInjectionHelper; import weblogic.servlet.jsp.ELHelper; import weblogic.servlet.jsp.ExpressionInterceptor; import weblogic.servlet.jsp.ExpressionInterceptor.Type; import weblogic.servlet.jsp.JspBase; import weblogic.servlet.jsp.StaleChecker; import weblogic.servlet.jsp.StaleIndicator; public final class __forward extends JspBase implements StaleIndicator { private static void _releaseTags(PageContext pageContext, JspTag t) { while (t != null) { DependencyInjectionHelper.preDestroy(pageContext, t); if ((t instanceof Tag)) { Tag tmp = (Tag)t; t = ((Tag)t).getParent(); try { tmp.release(); } catch (Exception localException) {} } else { t = ((SimpleTag)t).getParent(); } } } public boolean _isStale() { boolean _stale = _staticIsStale((StaleChecker)getServletConfig().getServletContext()); return _stale; } public static boolean _staticIsStale(StaleChecker sci) { if (sci.isResourceStale("/forward.jsp", 1537094471925L, "12.2.1.3.0", "UTC")) { return true; } return false; } private ExpressionInterceptor _jsp_expressionInterceptor = JspRuntimeUtils.getNonOperExpressionInterceptor(); private static boolean _WL_ENCODED_BYTES_OK = true; private static final String _WL_ORIGINAL_ENCODING = "GBK".intern(); private static byte[] _getBytes(String block) { try { return block.getBytes(_WL_ORIGINAL_ENCODING); } catch (UnsupportedEncodingException u) { _WL_ENCODED_BYTES_OK = false; } return null; } private static String _wl_block0 = "\r\n"; private static final byte[] _wl_block0Bytes = _getBytes(_wl_block0); private static String _wl_block1 = "\r\n<html>\r\n<head>\r\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">\r\n<title>Insert title here</title>\r\n</head>\r\n<body>\r\n\""; private static final byte[] _wl_block1Bytes = _getBytes(_wl_block1); private static String _wl_block2 = "\"\r\n</body>\r\n</html>"; private static final byte[] _wl_block2Bytes = _getBytes(_wl_block2); private static JspFunctionMapper _jspx_fnmap = JspFunctionMapper.getInstance(); protected void _jspInit() { this._jsp_expressionInterceptor = JspRuntimeUtils.getExpressionInterceptor(getServletConfig()); } public void _jspService(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { ServletConfig config = getServletConfig(); ServletContext application = config.getServletContext(); JspTag _activeTag = null; Object page = this; PageContext pageContext = JspFactory.getDefaultFactory().getPageContext(this, request, response, null, true, 8192, true); response.setHeader("Content-Type", "text/html; charset=GBK"); JspWriter out = pageContext.getOut(); ByteWriter _bw = (ByteWriter)out; _bw.setInitCharacterEncoding(_WL_ORIGINAL_ENCODING, _WL_ENCODED_BYTES_OK); JspWriter _originalOut = out; HttpSession session = request.getSession(true); try { response.setContentType("text/html; charset=GBK"); _bw.write(_wl_block0Bytes, _wl_block0); _bw.write(_wl_block0Bytes, _wl_block0); if (_jsp__tag0(request, response, pageContext, _activeTag, null)) { return; } _bw.write(_wl_block1Bytes, _wl_block1); out.write(this._jsp_expressionInterceptor.intercept((String)ELHelper.evaluate("${baseurl}", String.class, pageContext, null), pageContext, ExpressionInterceptor.Type.EL)); _bw.write(_wl_block2Bytes, _wl_block2); } catch (Throwable __ee) { if (!(__ee instanceof SkipPageException)) { while ((out != null) && (out != _originalOut)) { out = pageContext.popBody(); } _releaseTags(pageContext, _activeTag); pageContext.handlePageException(__ee); } } finally { JspFactory.getDefaultFactory().releasePageContext(pageContext); } } private boolean _jsp__tag0(ServletRequest request, ServletResponse response, PageContext pageContext, JspTag activeTag, JspTag parent) throws Throwable { JspTag _activeTag = activeTag; JspWriter out = pageContext.getOut(); ByteWriter _bw = (ByteWriter)out; SetTag __tag0 = null; int __result__tag0 = 0; if (__tag0 == null) { __tag0 = new SetTag(); DependencyInjectionHelper.inject(pageContext, __tag0); } __tag0.setPageContext(pageContext); JspRuntimeUtils.setParentForClassicTag(__tag0, parent); __tag0.setVar((String)JspRuntimeUtils.convertType("baseurl", String.class, "var")); __tag0.setValue(ELHelper.evaluate("${pageContext.request.contextPath}", Object.class, pageContext, _jspx_fnmap)); _activeTag = __tag0; try { __result__tag0 = __tag0.doStartTag(); if ((__result__tag0 == 0) || (__tag0.doEndTag() == 5)) { _activeTag = null; _releaseTags(pageContext, __tag0); return true; } } finally { _activeTag = __tag0.getParent(); DependencyInjectionHelper.preDestroy(pageContext, __tag0); __tag0.release(); } return false; } }
(2)目录下的JSP,一个目录相当于一个package:
编译之后的位置:
查看你编译之后的头部内容:
4.存放lib的目录:
存放一些公共项目使用的lib,存放位置在%base%\user_projects\domains\base_domain\lib,如下:
5.weblogic自带的lib,类似于tomcat的lib目录,是weblogic自己启动所需要的包,一般也是造成冲突包的位置:
存放位置在:%base%\wlserver\modules
6.缓存目录:
有时候缓存造成发布问题,所以我每次除了清掉缓存目录,还要清掉logs目录和项目tmp目录,也就是我每次启动项目都清掉下面三个目录,每次启动都会重新生成下面三个目录:
2.weblogic位数查看
在weblogic安装目录下wlserver\server\native\win目录下根据目录即可查看,例如我的64位的:
3.weblogic启动
weblogic启动的程序是在%base%\user_projects\domains\base_domain\startWebLogic.cmd (其内部调用了%base%\\user_projects\domains\base_domain\bin目录下的startWebLogic.cmd),源码如下:
@ECHO OFF @REM WARNING: This file is created by the Configuration Wizard. @REM Any changes to this script may be lost when adding extensions to this configuration. SETLOCAL set DOMAIN_HOME=E:\weblogic\user_projects\domains\base_domain call "%DOMAIN_HOME%\bin\startWebLogic.cmd" %* ENDLOCAL
双击之后启动即可,启动可以访问登陆页面。
4.weblogic调大JVM参数
JDK7的参数设置:
-Xms1024m -Xmx1024m -XX:PermSize=512m -XX:MaxPermSize=512m
JDK8的参数设置:
-Xms1024m -Xmx1024m -XX:MetaspaceSize=512m -XX:MaxMetaspaceSize=512m
weblogic12.2.1.3大概在%base%\user_projects\domains\base_domain\bin\setDomainEnv.cmd 202行左右.(我也是根据启动的日志查看的),weblogic12.1.3在170行。例如下面是weblogic12.2.1.3在JDK8环境中配置:
重新启动查看日志并且查看日志:
jps+jmap查看JVM参数:
控制台查看参数:
5.weblogic部署项目
一种是通过网页部署,另一种是通过目录部署,类似于tomcat的部署,如下:
1.网页部署项目
登陆之后点击部署=》安装:
选中项目的跟路径:(G:\自己的struts项目的适配\weblogic下调好的项目\Struts是一个完整的项目,是项目的根路径)
点击下一步:
输入项目的项目名称:
点击完成即可:
完成部署,查看项目概述:
最后查看部署成功的项目:
浏览器访问进行测试:
至此,第一种部署方式成功,我门到缓存目录查看发现目录已经发布到缓存目录:
2.通过目录部署部署
通过将war或者解压后的目录拷贝到:%base%\user_projects\domains\base_domain\autodeploy目录,此目录相当于tomcat的webapps目录:
登陆网页查看部署信息:
访问进行测试:
3.通过war包部署
(1)使用java自带的命令打war包:
Administrator@MicroWin10-1535 MINGW64 /g/自己的struts项目的适配/weblogic下调好的项目/Struts $ pwd /g/自己的struts项目的适配/weblogic下调好的项目/Struts Administrator@MicroWin10-1535 MINGW64 /g/自己的struts项目的适配/weblogic下调好的项目/Struts $ ls html/ img/ index.jsp index2.jsp js/ META-INF/ tag.jsp WEB-INF/ Administrator@MicroWin10-1535 MINGW64 /g/自己的struts项目的适配/weblogic下调好的项目/Struts $ jar -cvfM0 struts.war ./
(2)将war包扔到%base%\user_projects\domains\base_domain\autodeploy目录下:
(3)查看部署信息
(4)访问测试:
5.weblogic部署项目为默认项目(去除项目名称===只能用目录部署)
有时候我门希望访问项目不带项目名称,类似于tomcat的默认项目。
我门可以增加一个weblogic.xml目录在WEB-INF目录下,与web.xml同级目录:
weblogic.xml内容如下:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE weblogic-web-app PUBLIC "-//BEA Systems, Inc.//DTD Web Application 8.1//EN" "http://www.bea.com/servers/wls810/dtd/weblogic810-web-jar.dtd"> <weblogic-web-app> <jsp-descriptor> <jsp-param> <param-name>encoding</param-name> <param-value>GBK</param-value> </jsp-param> <jsp-param> <param-name>pageCheckSeconds</param-name> <param-value>-1</param-value> </jsp-param> <jsp-param> <param-name>compilerSupportsEncoding</param-name> <param-value>true</param-value> </jsp-param> <jsp-param> <param-name>verbose</param-name> <param-value>false</param-value> </jsp-param> </jsp-descriptor> <container-descriptor> <prefer-web-inf-classes>true</prefer-web-inf-classes> </container-descriptor> <context-root>/</context-root> </weblogic-web-app>
<prefer-web-inf-classes>true</prefer-web-inf-classes>是设置weblogic优先加载我门WEB-INF/lib目录的lib。
<context-root>/</context-root>是设置项目的名称,/自然就是默认的项目了。
启动访问项目进行测试: