#
2008-7-2 15:24:58 org.apache.catalina.core.StandardContext start
严重: Error filterStart
2008-7-2 15:24:58 org.apache.catalina.core.StandardContext start
严重: Context [/struts2] startup failed due to previous errors
在用tomcat开发struts2.0整合spring时,也许一不小心就会出现上面的错误
我自己对struts2.0也是刚刚接触一点点,我自己总结了点
1.struts2.0整合spring时默认的spring配置文件应该放在web-inf/下,否则就要在web.xml中进行如下配置,比如有多个配置文件
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext-*.xml,classpath*:applicationContext-*.xml</param-value>
</context-param>
其中struts.xml中的
<constant name="struts.objectFactory" value="spring" />你可以加入也可以不加入
因为其实当你加入struts2-spring-plugin-2.0.11.1.jar 这个文件的时候里面有个
struts-plugin.xml中已经有了
struts2-spring-plugin-2.0.11.1.jar 是引起Error filterStart的主要原因,需要在项目中加入此JAR包
此外我自己还发现另一个引起该错误的原因
比如
你有多个struts2的配置文件,在struts.xml中有有这样的
<include file="struts-jfreechart.xml" />
包含语句
则在对应的配置文件中的<package name="action" extends="struts-default">
中的name属性不能与其他的配置文件中的name重复,重复则会出现上面的错误!
摘要: 这几天在学习SSH开发的时候,使用到了数据库连接池,在通过JNDI获得对数据源的引用的
时候,在spring 的配置文件加入了一个如下的bean
java:comp/env/jdbc/feng
阅读全文
摘要: 在学习javascript,一本书上后面有个习题:
编写一个计算Fibonacci数的程序,要求让用户输入n值,并显示计算结果。
Fibonacci的定义为:Fn=Fn-1+Fn-2,F1=1,F2=1,n=3,4....前几个Fibonacci数为:1,1,2,3,5,8,13........
阅读全文
摘要: 今天在学习的时候,碰到了这个问题,不知道怎么搞定了,也就是在提交表单的时候另外传递一个参数过去,这个参数不是那些
里面的东西,比如要编辑一篇新闻,原来转过来了这个新闻对应的编号 阅读全文
最近做毕业设计的时候,用了mysql5+tomcat5.5+jsp+servlet
用了数据库连接池,出现中文问题的原因倒不是它,都一样的,
发现插入数据是中文的时候就插不进去,tomcat后台大概都是这个错误
com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long for column 't
opic' at row 1
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2868)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1573)
at com.mysql.jdbc.ServerPreparedStatement.serverExecute(ServerPreparedSt
atement.java:1169)
at com.mysql.jdbc.ServerPreparedStatement.executeInternal(ServerPrepared
Statement.java:693)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java
:1404)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java
:1318)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java
在网上搜了好多方法,自己都调不大起来,今天小试了下,OK了
把主要过程记下
我的系统是xp的默认字符肯定是GB2312吧,我也没改系统的东西,
改了MYSQL的一些东西,就是Mysql的字符吧,安装的时候有选字符集
default character set的时候选择
best support for Multilinggualism 这样处理后反正我看到
在my.ini的配置文件里默认字符都utf-8的
连接数据库的URL 后面也没有跟setcharacter之类的,只有数据库的名字。
servlet里面接收变量的时候也没有getBytes这样的处理,直接
String subject = request.getParameter("subject");
我看到关键好象是在JSP页面上应该声明
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
还有一个关键是用PrepareStatement的话,
dbc.prepareStatement("insert into news(topic,body,adddate,adduser,rootid,pic ) values(?,?,?,?,?,? )");
dbc.setBytes(1,topic.getBytes("ISO-8859-1"));
记住这里需要转,也不能换成gb2312
改成gb2312就会出现上面的错误
我不太清楚原理,希望知道的人指定!
摘要: 这些天在学习struts2中Validation验证框架的时候,在struts.xml中新加了一个action ,原来什么样子忘记了,
现在发现应该是
class类写错了 阅读全文
由于直接编辑server.xml配置连接池很容易出现错误,我估计是tomcat版本问题,没个版本可能配置有点点差别,所以我建议使用在http://localhost/admin/中进行
数据源的配置,下载tomcat的admin包,安装过程如下
下载下来进行解压,得到三个文件,和两个包,一个叫conf包,另外一个叫做server包。
接着进行安装:那三个单独的文件不用管;把conf\Catalina\localhost\下面的一个配置文件admin.xml放在你tomcat安装目录下面的Tomcat 5.5\conf\Catalina\localhost\这个路径下,即跟host-manage.xml,manager.xml放在一起;再把server\webapps\下面的admin包拷贝到你的tomcat安装目录下的Tomcat 5.5\server\webapps\这个路径下面跟host-manager,manager包放在一块。
安装搞定,重新启动tomcat,在地址栏输入http://localhost/admin/,在出现的截面里面输入你安装tomcat的时候你输入的用户名和密码。
登录成功后,会出现Tomcat 的web应用管理界面(Tomcat Web Server Administration Tool)。
然后在左边的目录树点击“Data Sources”项,右边可以看到JNDI配置的页面。
在右上角的下拉框中选择“Create New Data Source”,接下来填写配置信息:
JNDI Name: jdbc/feng /*连接池的名称*/
Data Source URL: jdbc:mysql://localhost:3306/bbs /*bbs为数据库的名称*/
JDBC Driver Class: com.mysql.jdbc.Driver
User Name: root
Password: feng
Max. Active Connections: 可用默认值
Max. Idle Connections: 可用默认值
Max. Wait for Connection: 可用默认值
Validation Query: 可不填写。
然后,按下“save”按钮保存。
再按下“Commit Changes”按钮将配置更改提交完成。
下面这步比较重要,不加就会出现错误
在<Context></Context>的描述中加上本web应用对全局连接池的引用说明,如下文字:
<ResourceLink global="jdbc/feng" name="jdbc/feng" type="javax.sql.DataSource"/>
一般都是加在虚拟目录里
类似下面
<Context
crossContext="true"
docBase="D:/feng"
path="/feng"
reloadable="true">
<ResourceLink global="jdbc/feng" name="jdbc/feng" type="javax.sql.DataSource"/>
</Context>
上面完成后,还需要配置对应虚拟目录WEB应用的web.xml
内容可以参考下面
<web-app>
<resource-ref>
<description>MySQL DataSource example</description>
<res-ref-name>jdbc/feng</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
</web-app>
保存D:\feng\WEB-INF\web.xml 文件
应用示例
<%@ page import="java.io.*,java.util.*,java.sql.*,javax.sql.*,javax.naming.*"%>
<%@ page contentType="text/html;charset=GB2312"%>
<html>
<head><title>DataSourse Connection Test</title></head>
<body>
<%
try{
Connection con;
Statement stmt;
ResultSet rs;
Context ctx = new InitialContext();
DataSource ds=(DataSource)ctx.lookup("java:comp/env/jdbc/feng");
con=ds.getConnection();
stmt=con.createStatement();
rs=stmt.executeQuery("select * from user");
while(rs.next()){
out.println(rs.getString(1));
%>
<br>
<%
out.print(rs.getString(2));
}
rs.close();
stmt.close();
con.close();
}catch(Exception e){
out.print(e.getMessage());
}
%>
</body>
</html>
摘要: struts1.2
在使用struts-config.xml中的
来配置数据源的时候,
要是配置不正确的话,会发生一些奇怪的错误,在提交表单的时候可能会出现
阅读全文
最近看的例子会出现类似下面这样的东西
List feng=new ArrayList();
Collection feng=new ArrayList();
这样的东西,开始有点困惑为什么要这样使用,跟
ArrayList feng=new ArrayList();
有什么区别? 自己改了下,发现程序运行一点问题都没有的,后来请教了个人他说了几句,那时候还没有听明白类
今天又看到类似的例子,就在想了想这个问题,发现是这样的
Collection 是接口,用collection是把对象声明成接口,这样对程序扩展性好.就是说你指规定了要用这接口,而具体实现还是可以变化的,Arraylist是实现了Collection接口的具体的类,用ArrayList feng=new ArrayList();这样的形式就定死了,扩展性不好!
今天安装了Myeclipse的时候,把里面的东西都拷到eclipse去以后,就把Myeclipse删掉了,发现在启动eclipse的时候,启动画面就没有了,就是加载的那个画面就没有了,查了查也没有解决的办法
于是我就把原来下载的eclipse压缩包重新解压出来覆盖了下,发现启动画面又回来了,Myeclipse,汉化什么的都还是在的,今天发现装插件的时候最好用LINKS文件夹的方法来做,这样不会搞乱掉。
其实eclipse的启动画面是可以更换的,找到
eclipse根目录下的plugins目录下的org.eclipse.platform_3.2.0.v20060601文件夹,里面有一个Splash.bmp的文件既是启动画面,随意更换都可以,看着原来的画面久了就累了吧 ,换个美女养养眼吧 !哈哈
拷图片过来就可以,但是要注意文件的格式,一定要是 BMP的,大小最好也要把握下的,要不很难看哦!
换了就是下面的样子了