真善美

勇于承担责任; 如果你做不到,要提前跟别人说明,不要等到事情发生后再解释。

  BlogJava :: 首页 ::  :: 联系 :: 聚合  :: 管理 ::
  55 随笔 :: 0 文章 :: 29 评论 :: 0 Trackbacks
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
数据源名错了。
-------------------------------------------------------------------------------------------------------------------------
posted on 2008-02-27 11:51 真善美 阅读(1944) 评论(0)  编辑  收藏 所属分类: Java学习