近期在用Struts2+ExtJS2.1学做东东。
针对Tomcat6和Struts2,简要记之。仅作备忘。
1. 在Tomcat5.0.28上部署测试Struts2。
启动Tomcat时报错:
-------------------
javax.xml.transform.TransformerFactoryConfigurationError: Provider org.apache.xalan.processor.TransformerFactoryImpl not found
在网上搜索后,才知是类冲突造成的。
解决方法:可以把Tomcat安装路径下\common\endorsed\中的xml-apis.jar包移除,然后再启动Tomcat5.0.28即可。
2. Struts2在Tomcat5.5及以上版本上运行是没有问题的。
于是改用Tomcat6,以前没有用过的。经过这两个月的使用,发现Tomcat6还是很不错的。
到http://www.apache.org/下载了一个:apache-tomcat-6.0.16.exe。
在使用时,发现一些地方与Tomcat5是不一样的。
遇到的问题:
1.Tomcat6启动的时候,控制台出现如下类似信息:
-----------------------------
信息: The Apache Tomcat Native library which allows optimal performance in production
environments was not found on the java.library.path: ... ...
-----------------------------
这是 AprLifecycleListener 监听器事件信息, 位置在 Tomcat_home/conf/server.xml 中:
...<Listener className="org.apache.catalina.core.AprLifecycleListener
实际这是建议使用Apache的APR。
下载地址:
http://tomcat.heanet.ie/native/1.1.10/binaries/win32/tcnative-1.dll
按照说明要求,将这个文件放到Tomcat下的bin目录下
然后重新启动Tomcat6即可。
详情参考:http://tomcat.apache.org/tomcat-6.0-doc/apr.html
2.数据库连接池的配置:
因Tomcat6没有像Tomcat4/5一样自带admin模块,所以无法启用Tomcat Web Server Administration Tool来配置数据库连接池等信息。
手工配置如下:
1) 数据库驱动jar文件copy到lib文件夹中;
2) 参考Tomcat5.0方式,在TOMCAT_HOME\conf\文件夹下,建立\Catalina\localhost路径文件夹;
3) 在\localhost\文件夹下,建立对应Web应用名字的xml文件,如test.xml;
4) 仿照配置Tomcat5.0连接池的方式,编辑test.xml文件,如下:
-----------------------------
<?xml version='1.0' encoding='utf-8'?>
<Context docBase="test" path="/test" privileged="true" reloadable="true">
<Resource name="jdbc/test"
auth="Container"
type="javax.sql.DataSource"
driverClassName="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@127.0.0.1:1521:ORCL"
username="system"
password="manager"
maxActive="50"
maxIdle="10"
maxWait="5000" />
</Context>
-----------------------------
这个配置属性大致跟Tomcat5的一样,但较Tomcat5更简洁。
3. 测试部署Struts2:
1).需要修改web.xml文件,指定Struts2的Filter。
2).struts.xml和struts.properties是部署在WebRoot\WEB-INF\classes\文件级中的。
这两个文件对应可以放在Eclipse中Web项目的src目录中。
在struts.xml中配置所有的action。
action的转发路径,记得要以"/"开头,如:
<result name="success">/mainframe.jsp</result>
Struts2的表单提交可以如下写法
<s:form action="loginAction" theme="simple" id="loginForm" method="post">
其中theme="simple"属性指定了Struts2元素的排列呈现方式。
如果转发路径配置不正确或表单提交的action指定不正确,则Tomcat6会警告:
-----------------------------
No configuration found for the specified action: 'loginAction.action' in namespace: ''.
Form action defaulting to 'action' attribute's literal value.
-----------------------------
3). struts.properties是借用struts-core-2.0.x.jar中的文件,原名是default.properties。
将其改名为struts.properties,放到Web项目的src目录下。
做如下的修改:
struts.locale=zh_CN
struts.i18n.encoding=GB2312
修改后struts能认识中文。
struts.action.extension=action
指定struts的action的后缀默认值是.action。
4).AJAX调用Action时,可以在其指定的返回页面中,使用标签引用Action中的属性做为返回值给AJAX。如:
-----------------------------
<%@ page language="java" contentType = "text/html;charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<s:property value="JSONDataString" escape="false"/>
-----------------------------
其中,属性escape="false" 很重要。
采用Struts2标签展现结果时候,设置escape="false",使Struts2不要对字符串进行转义。
PS:今奥运火炬传递于石。
[完]
by JRQ
2008/07/29 于京
又PS:
在网上看到另外一种配置Tomcat6连接池的方法:
-----------------
1.修改tomcat6/conf/context.xml,在context标签内加入
<Resource name="jdbc/test1"
auth="Container"
type="javax.sql.DataSource"
driverClassName="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@127.0.0.1:1521:ORCL"
username="test1"
password="test1"
maxActive="100"
maxIdle="30"
maxWait="10000" />
<Resource name="jdbc/test2"
auth="Container2"
type="javax.sql.DataSource"
driverClassName="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@127.0.0.1:1521:ORCL"
username="test2"
password="test2"
maxActive="100"
maxIdle="30"
maxWait="10000" />
2.修改webapp/test/WEB-INF/web.xml,在web-app标签内加入
<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/test1</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/test2</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container2</res-auth>
</resource-ref>
3.程序调用连接池语句
/**pooltag值为test1或test2*/
public Connection poolConnect(String pooltag){
Connection conn=null;
try {
Context env = new InitialContext();
Context envctx = (Context) env.lookup("java:comp/env");
DataSource pool = (DataSource) envctx.lookup("jdbc/"+pooltag);
if (pool == null)
throw new Exception("jdbc/"+pooltag+" is an unknown DataSource");
conn = pool.getConnection();
}
catch (Exception e) {
System.err.println("poolConnect:"+pooltag+". " + e.getMessage());
}
return conn;
}
-------补记于南昌。2009.03.11
又PS:
Tomcat6内存不足问题及解决方法
1、Tomcat默认可以使用的内存为128MB,在较大型的应用项目中,这点内存是不够的,有可能导致系统无法运行。
常见的问题是报Tomcat内存溢出错误,Out of Memory(系统内存不足)的异常,从而导致客户端显示500错误,一般调整Tomcat的使用内存即可解决此问题。
Windows环境下修改“%TOMCAT_HOME%\bin\catalina.bat”文件,在文件开头增加如下设置:set JAVA_OPTS=-Xms256m -Xmx512m
Linux环境下修改“%TOMCAT_HOME%\bin\catalina.sh”文件,在文件开头增加如下设置:JAVA_OPTS='-Xms256m -Xmx512m'
其中,-Xms设置初始化内存大小,-Xmx设置可以使用的最大内存。
2、Tomcat6版本已经没有catalina.bat文件了。
此时需运行%TOMCAT_HOME%\bin\tomcat6w.exe文件,设置其中的Initial memory pool和Maximum memory pool的值,分别为256和512。
分享到:
相关推荐
### Java8 + Tomcat8 + Struts2.5 + Spring4.3 + Hibernate5.2 框架搭建详细过程 #### 一、环境配置与准备 在搭建一个基于Java8 + Tomcat8 + Struts2.5 + Spring4.3 + Hibernate5.2 的项目前,首先需要对开发环境...
【标题】"myeclipse+tomcat+struts+mysql简单实例"是一个综合性的Web应用开发教程,旨在演示如何在MyEclipse集成开发环境中利用Tomcat服务器、Struts框架和MySQL数据库来构建一个实际的项目。这个实例可能涵盖从创建...
标题 "myeclipse+tomcat6.0+struts2开发的登录程序" 提供了我们正在探讨的技术栈,这是一个使用MyEclipse作为集成开发环境(IDE),Tomcat 6.0作为应用服务器,以及Struts2作为MVC框架来构建的登录应用程序。...
这是一个基于经典的Java Web技术栈构建的图书管理系统,利用了Tomcat5.5作为应用服务器,Struts2作为MVC框架,Spring2.0.6负责依赖注入和事务管理,而Hibernate3则作为对象关系映射(ORM)工具,用于数据库操作。...
Eclipse4.7+struts2.5+tomcat7+hibernate5.0.12+mysql5.1.45 实现了图书登录+图书添加功能 下载的小伙伴注意一下版本信息,这是我亲测完整的例子,如果有跟我一样是新手的话,可以参考我的博客,有介绍相关的环境...
而“Struts+Spring+Hibernate整合笔记.txt”则可能记录了整合过程中的关键点、注意事项或者常见问题解决方案。 这些技术的整合能够实现松散耦合,提高代码的可维护性和可扩展性。Struts2处理HTTP请求,Spring管理...
• 采用hibernate3+struts2+spring2+freemarker主流技术架构 • 懂html就能建站,提供最便利、合理的使用方式 • 强大、灵活的标签,用户自定义显示内容和显示方式 • 在设计上自身预先做了搜索引擎优化,增强对...
- **Struts2**: 下载全包`struts-2.3.3-all.gz`,该版本截止于2012年5月6日。全包包含了库、代码及示例,其中的空应用例程可作为参考。 - **Spring**: 下载包含库、代码及示例的全包`spring-framework-3.1.1....
【标题】:“Hibernate+Struts2 项目源码”是一个基于流行Java开发框架的实践项目,旨在教授如何结合使用Hibernate对象关系映射框架与Struts2 MVC(模型-视图-控制器)框架来构建Web应用程序。 【描述】:这个项目...
SSH2是一种常见的Java Web开发框架组合,由Spring、Struts2和Hibernate三个组件构成。这个新闻发布系统是基于SSH2框架实现的一个简单应用实例,旨在展示如何整合这三个强大的框架来构建一个功能完备的Web应用程序。 ...
【标题】"eclipse3+struts+tomcat"是一个基于Eclipse 3 IDE的Struts框架和Tomcat服务器的整合教程,旨在帮助初学者掌握如何在Eclipse 3环境中搭建Struts应用并部署到Tomcat服务器上。Struts是一个开源的MVC(Model-...
2. 使用Eclipse创建一个Struts 2项目,配置Tomcat服务器,编写Action类和对应的JSP视图,编写Ajax请求和响应处理。 3. 实现Interceptor拦截器,对请求进行预处理,如权限验证或日志记录。 4. 利用Ajax实现分页功能,...
一个spring+struts+hibernate的例子,是eclipse的工程,用tomcat5和mysql,文件夹下包含所有的源码和库,另外还有一个.sql的文件用于建立数据库。大家觉得它有什么不好,欢迎交流
JEECMS使用目前java主流技术架构:hibernate3+struts2+spring2+freemarker。AJAX使用jquery和json实现。视图层并没有使用传统的JSP技术,而是使用更为专业、灵活、高效freemarker。 数据库使用MYSQL,并可支持orcale...
在本文中,我们将详细探讨如何配置一个基于Eclipse的开发环境,用于开发和部署使用Struts框架的Java Web应用程序,同时结合Tomcat服务器和Lomboz插件。首先,我们需要确保具备以下组件: 1. **Eclipse IDE**:...
《开发者突击:Java Web主流框架整合开发(J2EE+Struts+Hibernate+Spring)》详细介绍了Java Web软件架构中的各种开发技术。主要内容包括:以MySQL为数据库、Tomcat为Web服务器、Eclipse为开发工具、CVS为版本控制工具...
最简单的Spring+Struts2+Hibernate整合例子,MySql数据库,IDE是JavaEE版的Eclipse,tomcat7.0 ,实现功能:登录+注册+增删改查+一键清空数据库表的数据。所有jar文件都在里面了。
《网上购物系统文档:Eclipse+Tomcat+Struts实现》 在当今信息化社会,网上购物系统已经成为电子商务的重要组成部分。本文档将详细阐述如何利用Java技术,借助Eclipse开发环境,Tomcat服务器以及Struts框架,实现一...