每日一得

          不求多得,只求一得 about java,hibernate,spring,design,database,Ror,ruby,快速開發
          最近關心的內容:SSH,seam,flex,敏捷,TDD
          本站的官方站點是:顛覆軟件

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            220 隨筆 :: 9 文章 :: 421 評論 :: 0 Trackbacks
          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>??

          ps:如果要支持reloadble,代碼為:
          <Context path="/cpms" docBase="cpms"?? debug="0" privileged="true" reloadable="false">


          記得把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>

          有一點不是很方便,就是要手工把生成的webJSP.xml的內容拷貝到web.xml中,應該有更方便的辦法,比如
          在web.xml中引入這個文件.不過我不知道怎么引入.知道的一定要告訴我啊? :)

          我試了下,執行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的標簽解析的時候出錯了,還有什么地方會出問題呢,過段時間再研究這個問題,知道的兄弟也告知下哦? :)

          大致就這些了.

          后記:java2class報錯原因已經找到,是jar文件沖突出錯,我用的是servlet2.3.jar,以前不知從哪下的,后來把tomcat目錄下的common\lib下的servlet-api.jar做servlet解析就沒問題了
          posted on 2006-02-24 12:52 Alex 閱讀(2498) 評論(4)  編輯  收藏 所屬分類: javaconfiguration

          評論

          # re: 一次web發布過程的相關配置 2006-05-12 17:47 bb
          你好,我按照你的方法編譯了JSP并部署好后,啟動tomcat, 可是出來的頁面中的圖片顯示不出來,而且有些js下不來,js是這樣引用的

          <script LANGUAGE="JavaScript" src="../scripts/common.js"></script>

          這是為什么? 看到服務器是圖片和JS文件位置正確。

          謝謝回復到我的郵箱kinson_l@shera.com.cn
            回復  更多評論
            

          # re: 一次web發布過程的相關配置 2006-12-04 12:43 windindance
          在web.xml中引入這個文件:
          在WEB.xml中增加一行:
          <!-- %JSP% -->
          在build.xml中加入下面語句即可:
          <property name="jsp.replace.token" value="&lt;!-- %JSP% --&gt;" />
          <loadfile property="jsp.replace.value" srcfile="webJSP.xml" />
          <replace file="web.xml" token="${jsp.replace.token}" value="${jsp.replace.value}" />

          我另外有個問題。用ant編譯沒有問題,但當jsp中使用了struts的標簽時無法編譯,報NotMethodFind錯,請問可能是什么原因?  回復  更多評論
            

          # re: 一次web發布過程的相關配置 2006-12-04 12:44 windindance
          如果方便,請發到我的郵箱:iswind#263.net,謝謝。  回復  更多評論
            

          # re: 一次web發布過程的相關配置 2006-12-11 19:39 BeanSoft
          大哥真是個好心人....頂了!  回復  更多評論
            

          主站蜘蛛池模板: 乡宁县| 兴义市| 临西县| 锡林浩特市| 金溪县| 馆陶县| 金寨县| 天等县| 新乐市| 尼勒克县| 甘南县| 资兴市| 辰溪县| 固原市| 石河子市| 昌黎县| 大名县| 棋牌| 江口县| 北海市| 青阳县| 新干县| 南通市| 临猗县| 葵青区| 镇远县| 巨野县| 额尔古纳市| 辛集市| 原阳县| 桦川县| 永川市| 武强县| 东源县| 峨山| 廊坊市| 靖宇县| 安吉县| 柘荣县| 余江县| 虹口区|