1、2006-10-24 20:00:04 org.apache.catalina.core.StandardContext listenerStart
嚴重: Skipped installing application listeners due to previous error(s)
2006-10-24 20:00:04 org.apache.catalina.core.StandardContext start
嚴重: Error listenerStart
解決:
將jdk1.4換成jdk1.5就成。
--------------------------------------------------------------------------------------
2、 嚴重: Begin event threw exception
java.lang.reflect.InvocationTargetException
at org.apache.xerces.parsers.AbstractXMLDocumentParser.emptyElement(Unknown Source)
……
Caused by: java.lang.UnsupportedClassVersionError:
com/jc/test/action/TestListForm
(Unsupported major.minor version 49.0)
解決:
這是因為jdk版本問題,可能是本項目的jdk版本問題,也有可能是別的項目的版本問題。
所以要看一下路徑
com/jc/test/action/TestListForm ,找到項目修改版本:
(project-->properties-->Java compiler 把jdk compliance level修改一下)
或者直接把tomcat下的發布文件刪除:
D:\Tomcat 5.0\work\Catalina\localhost 下的相應文件
D:\Tomcat 5.0\webapps 下的相應文件。
------------------------------------------------------------------------------------------
3、tomcat報錯:
[JDBCExceptionReporter] ERROR Cannot create PoolableConnectionFactory ([Microsoft][SQLServer 2000 Driver
for JDBC]Error establishing socket.)
或用eclipse的DB Browser連接數據庫時提示Error establishing socket錯誤
原因及解決方案:xp 系統上無法安裝sql server 企業版,只可以安裝個人版,本來個人版也是可以的,但是由于微軟公司關于一個安全性問題的考慮,讓個人版的sql server 不監聽1433端口.因此通過驅動連接數據庫的時候會報Error establishing socket錯誤,所以如果通過jdbc連接sql server 就必須給數據庫打補丁,(sp3,sp4都可以)我用的是chs_sql2kasp3.exe,執行這個exe文件后,找到安裝的文件夾,再執行里面的setup.bat,這樣你的數據庫就打上了補丁了,并且1433端口就監聽了。
--------------------------------------------------------------------------------------------------
4、tomcat報錯:
[轉]java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]對象名 ‘xxx’ 無效
根本原因:
訪問數據庫的用戶有登錄權限,但無操作表的權限
解決辦法:
1. 在[企業控制臺]窗口–[樹]子窗口–[安全性]子樹–[登錄]項里將你使用的登陸用戶的默認數據庫設為你所使用的數據庫。
2. 在[企業控制臺]窗口–[樹]子窗口–[安全性]子樹–[登錄]項里新增一個登錄用戶(在其中選擇SQL Server 身份驗證、服務器角色和要訪問的數據庫),以后便可用些新增用戶訪問你勾選的數據庫了。
大家在用java連接ms sql時可能會這樣的問題
原因是sa用戶為系統用戶,它雖然能夠登陸數據庫,但是數據庫里邊的權限都是dbo的,所以,我們現在為這個數據庫重新建立一個用戶.
當然,這個情況只發生在java里邊. .net是不會這樣的.
只要新建立一個用戶,再在權限那分配權限做好就行了.
我的測試代碼:
<%@ page language="java" contentType="text/html; charset=gb2312" %>
<%@ page import="java.lang.*, java.io.*, java.sql.*, java.util.*" %>
<html>
<body>
<%
String driverName = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
String dbURL = "jdbc:microsoft:sqlserver://localhost:1433; DatabaseName=sample";
String userName = "sa";
String userPwd = "sa";
Connection dbConn;
try {
Class.forName(driverName).newInstance();
Connection conn = DriverManager.getConnection(dbURL, userName, userPwd);
Statement stmt = conn.createStatement();
String sql="select * from userInformation";
ResultSet rs=stmt.executeQuery (sql);
while(rs.next())
{
out.println(rs.getString(1));
out.println(rs.getString(2));
}
out.println("Connection Successful!");
}
catch (Exception e) {
e.printStackTrace();
}
%>
</body>
</html>
SQLServer2000的表格:
運行結果:
1 用戶1 2 用戶2 3 用戶3 4 用戶4 5 用戶5 Connection Successful!
-------------------------------------------------------------------------------------------------------------------------
5、tomcat報錯:
java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Connection reset by peer: socket write error
剛改動sqlServer配置,重啟一下tomcat就OK了。
--------------------------------------------------------------------------------------------------------------------------
6、tomcat報錯:
is not bound in this Context
數據源名錯了。
-------------------------------------------------------------------------------------------------------------------------