#
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的,大小最好也要把握下的,要不很難看哦!
換了就是下面的樣子了
