`

一次web发布过程的相关配置

阅读更多
发布环境: 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个好处

    1提高jsp响应速度,因为jsp全部预先编译成class了,少了中间的环节
    2增强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>
分享到:
评论

相关推荐

    MyEclipse发布Web工程

    - **环境差异**:开发环境与生产环境可能存在差异,比如依赖库的版本不同,因此在发布前最好进行一次完整的测试。 - **安全设置**:确保服务器的安全设置正确,避免潜在的安全风险。 - **性能优化**:发布前对Web...

    iFIX WebSpace 安装使用说明

    - 将需要通过Web发布的iFIX SCADA系统的画面(包括所有依赖文件如标签组文件)复制到Web服务器上的iFIX工程的PIC目录下。 5. **配置iFIX WebSpace Administration:** - 如果iFIX WebSpace工程路径不是默认路径,...

    WEB和FTP服务器配置.doc

    ### WEB和FTP服务器配置知识点详解 #### 一、实验目的 1. **掌握Windows XP环境下IIS的安装与配置:**IIS(Internet Information ...无论是对于学习者还是实际工作中的人来说,都是一次非常有价值的实践经历。

    web mqtt-websocket.zip

    MQTT协议支持QoS(Quality of Service)等级,分别是0、1和2,分别代表最佳努力、至少一次和精确一次的交付保证。 2. **mosquitto**: `mosquitto`是一个开源的MQTT代理,即服务器软件,它实现了MQTT v3.1和v3.1.1...

    EJB发布WEB服务一般步骤.pdf

    理解EJB发布Web服务的过程对于开发分布式、高可用性的企业级应用至关重要。开发者需要关注EJB的生命周期管理、事务处理、安全性以及性能优化等方面,以确保服务的稳定性和效率。同时,熟练掌握JMS和Web服务相关技术...

    web项目MyEclipse里部署时找不到

    - 在完成上述步骤后,还需要对项目进行一次清理与重建。这可以通过右键点击项目名称,选择“Clean”选项来实现。清理完成后,再执行一次“Build Project”操作。 5. **验证部署情况**: - 最后,再次尝试部署项目...

    cognos8.3(web配置安装)

    例如,如果您希望每 1 秒检查一次服务状态,直到 10 分钟后放弃,则配置应为: ```plaintext ServiceWaitInterval=1000 ServiceMaxTries=600 ``` #### 三、Cognos 8 BI Server 8.3 SP2 安装完主程序之后,推荐...

    由Git版本控制maven管理的简单web工程搭建

    在实际项目中,Git帮助团队成员协同工作,记录每一次变更,便于回溯和合并代码,避免冲突。 接着,我们来搭建Web工程。这里选择的是Ubuntu 12.24系统,JDK 1.7.0_65,以及IDEA 14.0.2作为开发工具。Maven作为项目...

    华为交换机5700配置指南

    文档提供了修订记录部分,记录了自文档第一次发布以来的更新情况,累积了每次文档更新的说明,并指出最新版本的文档包含了之前所有版本的更新内容。文档的版权声明、保密声明以及法律声明等也详细列明。 六、目录...

    JAVA 配置AXIS2

    在myEclipse 8.0这样的集成开发环境中配置AXIS2是为了更好地利用其功能,简化Web服务的开发流程。以下是对配置AXIS2的具体步骤和涉及的jar文件的详细解释: 首先,我们要理解myEclipse 8.0是一个强大的Java EE IDE...

    UAP V6.3Web开发技术手册

    这些组件共同协作,提供了完整的Web应用平台基础数据、权限管理、参数管理、印章管理、文件锁、客户化配置、模板管理、消息中心、门户配置、任务中心、流程管理、业务类型编码规则、流程设计器、流程监控、Web适配、...

    基于Delphi的Web Service 客户端调用

    这种服务可以简单到响应一次请求,也可以复杂到完成一系列的应用流程。一旦某个 Web Service 被实现,其他应用程序或 Web Service 可以直接发现和调用该服务。 ##### 1.2 Web Service 的基本元素和操作 - **服务...

    IDEA导入web项目并发布到tomcat

    ### IDEA导入web项目并发布到Tomcat的详细步骤与注意事项 #### 一、导入项目 在IntelliJ IDEA中导入web项目...对于初学者来说,可能需要多次尝试才能完全掌握整个流程,但随着经验的积累,这个过程会变得越来越简单。

    VS2010 web补丁

    它能够自动化大部分配置任务,使得开发者可以更高效地发布和更新他们的Web应用。 2. **WebDeploy_x86_zh-CN.msi** - 对应于32位系统的Web部署工具的中文版本。与上一个文件类似,这个文件用于在32位系统上安装Web ...

    web-完整cms38

    【标题】"web-完整cms38"指出这是一个与Web内容管理系统相关的压缩包,很可能包含一个名为"CMS_38"的系统版本或者模块。在Web开发领域,CMS(Content Management System)是一种用于创建和管理网站内容的软件,它...

    实验7:利用IIS6.0配置企业Web服务器.doc

    通过以上步骤,我们可以为企业搭建一个基本的Web服务器,用于发布网页内容、应用程序和服务。动态网站的配置涉及更高级的功能,如身份验证、权限控制和脚本支持,这些都可根据企业的具体需求进行定制。

    WebUI-4.26-修复打包问题

    "WebUI-4.26-修复打包问题"正是针对这些挑战提供的一次关键更新。 UE4在4.26版本中遇到了一些打包问题,这些问题可能阻碍了前端网页与UE4的顺畅交互。开发者们发现,官方发布的4.26版本存在一些未预期的错误,导致...

    walle-web-master.zip

    4. **日志记录**:walle-web-master会详细记录每一次部署的操作,方便后期追踪问题,分析部署过程中的异常。 5. **多环境部署**:支持多个环境(如测试环境、预发布环境、生产环境)的部署,一键切换,便于进行灰度...

Global site tag (gtag.js) - Google Analytics