Vincent.Chan‘s Blog

          常用鏈接

          統計

          積分與排名

          網站

          最新評論

          一次web發布過程的相關配置

          keyword: 配置 Tomcat配置 MySql配置 server.conf my.ini 啟動參數 虛擬機參數 jsp預編譯
          Author: Alex
          發布環境: Tomcat5 + MySql4 +Hibernate + Win2003

          一.MySql配置文件
          my.ini文件配置
          # The default character set that will be used when a new schema or table is
          # created and no character set is defined

          ####設置字符集,MySql默認為
          latin1,如果你的存儲出現亂碼就改為GBK吧
          #default-character-set=latin1
          default-character-set=GBK

          # The default storage engine that will be used when create new tables when

          ###建議用INNODB,支持事務
          default-storage-engine
          =INNODB 

          二.Tomcat配置文件
          • server.conf
          主要是配置一個上下文和數據源
          相關配置如下:
          <Context path="/sample" docBase="sample"   debug="0" privileged="true">
                      
          <Resource name="jdbc/sample" auth="Container" type="javax.sql.DataSource"/>
                      
          <ResourceParams name="jdbc/sample"> 
                          
          <parameter>
                              
          <name>username</name>
                              
          <value>sample</value>
                          
          </parameter>
                          
          <parameter>
                              
          <name>password</name>
                              
          <value>sample</value>
                          
          </parameter>
                          
          <parameter>
                              
          <name>driverClassName</name> 
                              
          <value>org.gjt.mm.mysql.Driver</value>
                          
          </parameter>
                          
          <parameter>
                              
          <name>url</name> 
                              
          <value>jdbc:mysql://localhost/sample</value>
                          
          </parameter> 
                        
          </ResourceParams> 
              
          </Context>  

          記得把jdbc驅動拷貝到Tomcat的common\lib下
          • 優化jvm參數
          修改Tomcat的bin目錄下的catalina.bat文件
          set JAVA_OPTS=-Xms512m -Xmx512m

          注:如果你的 Tomcat是通過service方式啟動的這個設置不起作用,所以你最好通過startup.bat方式來啟動,service 是直接調用Tomcat.exe,所以不知道怎么設置參數,我試了一下在服務里的"啟動參數"里加入
          -Xms512m -Xmx512m好像不起作用.知道的兄弟補充下啊


          好了,啟動你的Tomcat吧,查看資源管理器,看內存是否已經被Tomcat占用了512M

          三.web.xml配置
          主要涉及數據源,servlet,tld映射
          web.xml配置如下:
          <?xml version="1.0" encoding="UTF-8"?>
          <!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>
            
          <display-name>CPMSWeb</display-name>
            
          <servlet>
              
          <servlet-name>action</servlet-name>
              
          <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
              
          <init-param>
                
          <param-name>config</param-name>
                
          <param-value>/WEB-INF/struts-config.xml</param-value>
              
          </init-param>
              
          <init-param>
                
          <param-name>debug</param-name>
                
          <param-value>2</param-value>
              
          </init-param>
              
          <init-param>
                
          <param-name>application</param-name>
                
          <param-value>ApplicationResources</param-value>
              
          </init-param>
              
          <load-on-startup>2</load-on-startup>
            
          </servlet>

             <servlet>
              <servlet-name>com.my.DataServlet</servlet-name>
              <servlet-class>
          com.my.DataServlet</servlet-class>
              <init-param>
                <param-name>license</param-name>
                <param-value>/WEB-INF/license.dat</param-value>
              </init-param>
              <!--為DataServlet提供datasource-->
              <init-param>
                <param-name>dataSource</param-name>
                <param-value>jdbc/report,mysql,GBK</param-value>
              </init-param>
              <init-param>
               
              <init-param>
                <param-name>maxConcurrentForBigReport</param-name>
                <param-value>2</param-value>
              </init-param>
              <init-param>
                <param-name>logConfig</param-name>
                <param-value>/WEB-INF/runqianReportLog.properties</param-value>
              </init-param>
              <init-param>
                <param-name>certFile</param-name>
                <param-value>C:\Documents and Settings\sjr\.keystore</param-value>
              </init-param>
              <load-on-startup>2</load-on-startup>
            </servlet>

            <filter>
               <filter-name>eXtremeExport</filter-name>
               <filter-class>
                 org.extremecomponents.table.filter.ExportFilter
               </filter-class>
            </filter>

            <filter-mapping>
              <filter-name>eXtremeExport</filter-name>
              <url-pattern>/*</url-pattern>
            </filter-mapping>

            
          <taglib>
              
          <taglib-uri>/WEB-INF/struts-bean.tld</taglib-uri>
              
          <taglib-location>/WEB-INF/struts-bean.tld</taglib-location>
            
          </taglib>
            
          <taglib>
              
          <taglib-uri>/WEB-INF/struts-html.tld</taglib-uri>
              
          <taglib-location>/WEB-INF/struts-html.tld</taglib-location>
            
          </taglib>
            
          <taglib>
              
          <taglib-uri>/WEB-INF/struts-logic.tld</taglib-uri>
              
          <taglib-location>/WEB-INF/struts-logic.tld</taglib-location>
            
          </taglib>
            
          <taglib>
              
          <taglib-uri>/WEB-INF/struts-template.tld</taglib-uri>
              
          <taglib-location>/WEB-INF/struts-template.tld</taglib-location>
            
          </taglib>
            
          <taglib>
              
          <taglib-uri>/WEB-INF/struts-tiles.tld</taglib-uri>
              
          <taglib-location>/WEB-INF/struts-tiles.tld</taglib-location>
            
          </taglib>
            
          <taglib>
              
          <taglib-uri>/WEB-INF/struts-nested.tld</taglib-uri>
              
          <taglib-location>/WEB-INF/struts-nested.tld</taglib-location>
            
          </taglib>
            <!--配置一些定制的配置文件-->
            
          <env-entry>
              
          <env-entry-name>ConfigXmlFilePath</env-entry-name>
              
          <env-entry-value>C:/config.xml</env-entry-value>
              
          <env-entry-type>java.lang.String</env-entry-type>
            
          </env-entry>
          </web-app>


          四.hibernate配置文件,hibernate.cfg.xml
          <?xml version="1.0" encoding="utf-8"?>
          <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN" "http://hibernate.sourceforge.net/hibernate-configuration-2.0.dtd">
          <hibernate-configuration>
              
          <session-factory>
                  
          <property name="hibernate.connection.provider_class">net.sf.hibernate.connection.C3P0ConnectionProvider</property>
                  
          <property name="hibernate.connection.url">jdbc:mysql://localhost/sample</property>
                  
          <property name="hibernate.connection.driver_class">org.gjt.mm.mysql.Driver</property>
                  
          <property name="hibernate.connection.username">sample</property>
                  
          <property name="hibernate.connection.password">sample</property>
                  
          <property name="hibernate.use_outer_join">True</property>
                  
          <property name="connection.pool_size">50</property>
                 
          <property name="show_sql">true</property>
                 
          <property name="use_outer_join">true</property>
                 
          <property name="jdbc.fetch_size">50</property>
                 
          <property name="jdbc.batch_size">50</property>
                 
          <property name="dialect">net.sf.hibernate.dialect.MySQLDialect</property>
                 
          <!--
                  <property name="hibernate.dbcp.maxActive">50</property>
                  <property name="hibernate.dbcp.whenExhaustedAction">1</property>
                  <property name="hibernate.dbcp.maxWait">120000</property>
                  <property name="hibernate.dbcp.maxIdle">30</property>
                 
          -->
                 
          <!-- configuration pool via c3p0--> 
                 
          <property name="c3p0.acquire_increment">1</property> 
                 
          <property name="c3p0.idle_test_period">100</property> <!-- seconds --> 
                 
          <property name="c3p0.max_size">100</property> 
                 
          <property name="c3p0.max_statements">0</property> 
                 
          <property name="c3p0.timeout">100</property> <!-- seconds --> 
                 
          <!-- DEPRECATED very expensive property name="c3p0.validate>--> 
                 
          <property name="cache.provider_class">net.sf.hibernate.cache.HashtableCacheProvider</property>
                  
          <property name="hibernate.transaction.factory_class">net.sf.hibernate.transaction.JDBCTransactionFactory</property>
                  
          <property name="hibernate.cglib.use_reflection_optimizer">false</property> 
                  
                  
          <mapping resource="conf/mapping/Sample.hbm.xml"/>

                  
              
          </session-factory>
          </hibernate-configuration>

          五.這個其實不是配置,應該算是一項優化方案,即jsp預編譯
          jsp預編譯有2個好處
          • 提高jsp響應速度,因為jsp全部預先編譯成class了,少了中間的環節
          • 增強jsp安全性,你的jsp源碼可以全部刪除,只提供一個YourJsps.jar包到lib就可以了
          在weblogic里預編譯非常方便,可以在console里配置通過開關配置這個參數,但是Tomcat就沒有這個好事了,不過我們可以手工完成,我找了下資料,在ant里配置如下:
          <!-- =================================================================== -->
              
          <!--            precompile jsp                                             -->
              
          <!-- =================================================================== -->
              
          <target name="jsp2java">
            
          <taskdef classname="org.apache.jasper.JspC" name="jsp2java">
             
          <classpath id="jsp2java.classpath">
              
          <fileset dir="${tomcat.home}/bin">
               
          <include name="*.jar"/>
              
          </fileset>
              
          <fileset dir="${tomcat.home}/server/lib">
               
          <include name="*.jar"/>
              
          </fileset>
              
          <fileset dir="${tomcat.home}/common/lib">
               
          <include name="*.jar"/>
              
          </fileset>
             
          </classpath>
            
          </taskdef>
            
            
          <jsp2java classpath="jsp2java.classpath" javaEncoding="UTF-8" validateXml="false" uriroot="${web.dir}" webXmlFragment="${web.dir}/WEB-INF/webJSP.xml" outputDir="${web.dir}/WEB-INF/JspC/src"/>
           
          </target>
           
           
          <target name="java2class">
            
          <mkdir dir="${web.dir}/WEB-INF/JspC/classes"/>
            
          <javac srcdir="${web.dir}/WEB-INF/JspC/src" destdir="${web.dir}/WEB-INF/JspC/classes" encoding="UTF-8" optimize="off" debug="on" failonerror="false" excludes="**/*.smap">
             
          <classpath id="java2class.classpath">
              
          <pathelement location="${web.dir}/WEB-INF/classes"/>
              
          <fileset dir="${web.dir}/WEB-INF/lib">
               
          <include name="*.jar"/>
              
          </fileset>
              
          <pathelement location="${tomcat.home}/common/classes"/>
              
          <fileset dir="${tomcat.home}/common/lib">
               
          <include name="*.jar"/>
              
          </fileset>
              
          <pathelement location="${tomcat.home}/shared/classes"/>
              
          <fileset dir="${tomcat.home}/shared/lib">
               
          <include name="*.jar"/>
              
          </fileset>
              
          <fileset dir="${tomcat.home}/bin">
               
          <include name="*.jar"/>
              
          </fileset>
             
          </classpath>
             
          <include name="**"/>
             
          <exclude name="tags/**" />
            
          </javac>
           
          </target>
           
          <target name="class2jar">
            
          <jar basedir="${web.dir}/WEB-INF/JspC/classes" jarfile="${web.dir}/WEB-INF/lib/${project.name}JSP.jar"/>
           
          </target>
           
          <target name="clear">
            
          <delete dir="${web.dir}/WEB-INF/JspC/classes"/>
            
          <delete dir="${web.dir}/WEB-INF/JspC/src"/>
            
          <delete dir="${web.dir}/WEB-INF/JspC"/>
           
          </target>

          我試了下,執行jsp2java沒有問題,不過java2class則報錯,錯誤如下:
          ow_jsp.java:134: 無法將 org.apache.jsp.jsp.show_jsp 中的 _jspx_meth_logic_present_2(javax.servlet.js
          p.tagext.JspTag
          ,javax.servlet.jsp.PageContext) 應用于 (org.apache.struts.taglib.logic.IterateTag,jav
          ax.servlet.jsp.PageContext)
              
          [javac]                   if (_jspx_meth_logic_present_2(_jspx_th_logic_iterate_0, pageContext))

          不知道怎么搞的,該提供的類路徑全給了,好像是Struts的標簽解析的時候出錯了,還有什么地方會出問題呢,過段時間再研究這個問題,知道的兄弟也告知下哦  :)

          大致就這些了.

          posted on 2006-02-24 21:03 Vincent.Chen 閱讀(202) 評論(0)  編輯  收藏 所屬分類: Java

          主站蜘蛛池模板: 城步| 元谋县| 阜南县| 临西县| 贵南县| 崇文区| 千阳县| 安化县| 阜平县| 长乐市| 四会市| 庆阳市| 贡嘎县| 阿克陶县| 洞口县| 金昌市| 吴堡县| 万州区| 枣阳市| 周口市| 纳雍县| 丰县| 策勒县| 巴马| 会理县| 金寨县| 巴里| 萨嘎县| 酉阳| 边坝县| 通辽市| 平乐县| 巴里| 石河子市| 拉萨市| 禄劝| 社会| 武汉市| 上高县| 达孜县| 中江县|