`
touchmm
  • 浏览: 1037276 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

Tomcat6+Struts2

阅读更多


近期在用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 框架搭建详细过程 #### 一、环境配置与准备 在搭建一个基于Java8 + Tomcat8 + Struts2.5 + Spring4.3 + Hibernate5.2 的项目前,首先需要对开发环境...

    myeclipse+tomcat+struts+mysql简单实例

    【标题】"myeclipse+tomcat+struts+mysql简单实例"是一个综合性的Web应用开发教程,旨在演示如何在MyEclipse集成开发环境中利用Tomcat服务器、Struts框架和MySQL数据库来构建一个实际的项目。这个实例可能涵盖从创建...

    myeclipse+tomcat6.0+struts2开发的登录程序

    标题 "myeclipse+tomcat6.0+struts2开发的登录程序" 提供了我们正在探讨的技术栈,这是一个使用MyEclipse作为集成开发环境(IDE),Tomcat 6.0作为应用服务器,以及Struts2作为MVC框架来构建的登录应用程序。...

    Tomcat5.5+struts2+Spring2.0.6+Hibernate3图书进行管理的系统.zip

    这是一个基于经典的Java Web技术栈构建的图书管理系统,利用了Tomcat5.5作为应用服务器,Struts2作为MVC框架,Spring2.0.6负责依赖注入和事务管理,而Hibernate3则作为对象关系映射(ORM)工具,用于数据库操作。...

    Eclipse4.7+struts2.5+tomcat7+hibernate5.0.12+mysql5.1.45 简单例子

    Eclipse4.7+struts2.5+tomcat7+hibernate5.0.12+mysql5.1.45 实现了图书登录+图书添加功能 下载的小伙伴注意一下版本信息,这是我亲测完整的例子,如果有跟我一样是新手的话,可以参考我的博客,有介绍相关的环境...

    jsp+tomcat+Struts2+Spring+Hibernate应用实例.rar

    而“Struts+Spring+Hibernate整合笔记.txt”则可能记录了整合过程中的关键点、注意事项或者常见问题解决方案。 这些技术的整合能够实现松散耦合,提高代码的可维护性和可扩展性。Struts2处理HTTP请求,Spring管理...

    hibernate3+struts2+spring2+freemarker 主流技术架构 实例

    • 采用hibernate3+struts2+spring2+freemarker主流技术架构 • 懂html就能建站,提供最便利、合理的使用方式 • 强大、灵活的标签,用户自定义显示内容和显示方式 • 在设计上自身预先做了搜索引擎优化,增强对...

    Eclipse+Struts2+Spring+MyBatis环境搭建

    - **Struts2**: 下载全包`struts-2.3.3-all.gz`,该版本截止于2012年5月6日。全包包含了库、代码及示例,其中的空应用例程可作为参考。 - **Spring**: 下载包含库、代码及示例的全包`spring-framework-3.1.1....

    hibernate+struts2 项目源码

    【标题】:“Hibernate+Struts2 项目源码”是一个基于流行Java开发框架的实践项目,旨在教授如何结合使用Hibernate对象关系映射框架与Struts2 MVC(模型-视图-控制器)框架来构建Web应用程序。 【描述】:这个项目...

    spring+hibernate+struts2+freemarker SSH2 新闻发布系统

    SSH2是一种常见的Java Web开发框架组合,由Spring、Struts2和Hibernate三个组件构成。这个新闻发布系统是基于SSH2框架实现的一个简单应用实例,旨在展示如何整合这三个强大的框架来构建一个功能完备的Web应用程序。 ...

    eclipse3+struts+tomcat

    【标题】"eclipse3+struts+tomcat"是一个基于Eclipse 3 IDE的Struts框架和Tomcat服务器的整合教程,旨在帮助初学者掌握如何在Eclipse 3环境中搭建Struts应用并部署到Tomcat服务器上。Struts是一个开源的MVC(Model-...

    用案例学Java Web整合开发:Java+Eclipse+Struts 2+Ajax

    2. 使用Eclipse创建一个Struts 2项目,配置Tomcat服务器,编写Action类和对应的JSP视图,编写Ajax请求和响应处理。 3. 实现Interceptor拦截器,对请求进行预处理,如权限验证或日志记录。 4. 利用Ajax实现分页功能,...

    一个spring+struts+hibernate的例子

    一个spring+struts+hibernate的例子,是eclipse的工程,用tomcat5和mysql,文件夹下包含所有的源码和库,另外还有一个.sql的文件用于建立数据库。大家觉得它有什么不好,欢迎交流

    JEECMS源码(hibernate3+struts2+spring2+freemarker +jquery +json等技术)

    JEECMS使用目前java主流技术架构:hibernate3+struts2+spring2+freemarker。AJAX使用jquery和json实现。视图层并没有使用传统的JSP技术,而是使用更为专业、灵活、高效freemarker。 数据库使用MYSQL,并可支持orcale...

    eclipse+tomcat+struts+lomboz配置

    在本文中,我们将详细探讨如何配置一个基于Eclipse的开发环境,用于开发和部署使用Struts框架的Java Web应用程序,同时结合Tomcat服务器和Lomboz插件。首先,我们需要确保具备以下组件: 1. **Eclipse IDE**:...

    开发者突击·Java Web主流框架整合开发(J2EE+Struts+Hibernate+Spring)源码

    《开发者突击:Java Web主流框架整合开发(J2EE+Struts+Hibernate+Spring)》详细介绍了Java Web软件架构中的各种开发技术。主要内容包括:以MySQL为数据库、Tomcat为Web服务器、Eclipse为开发工具、CVS为版本控制工具...

    最简单的Spring+Struts2+Hibernate整合例子

    最简单的Spring+Struts2+Hibernate整合例子,MySql数据库,IDE是JavaEE版的Eclipse,tomcat7.0 ,实现功能:登录+注册+增删改查+一键清空数据库表的数据。所有jar文件都在里面了。

    网上购物系统文档 eclipse+tomcat+struts

    《网上购物系统文档:Eclipse+Tomcat+Struts实现》 在当今信息化社会,网上购物系统已经成为电子商务的重要组成部分。本文档将详细阐述如何利用Java技术,借助Eclipse开发环境,Tomcat服务器以及Struts框架,实现一...

Global site tag (gtag.js) - Google Analytics