我的tomcat的连接池的配置是: <WatchedResource>WEB-INF/web.xml </WatchedResource>
<Resource name="jdbc/sqlserver" suth="Container" type="javax.sql.DataSource" maxActive="100" maxIdle="30" maxWait="10000"
username="tom" password="cat" driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver" url="jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=guestbook "/> 用数据源获得连接的程序是:package com.example; import java.sql.SQLException;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.ResultSetHandler; public class Sqlserver { private DataSource ds;
private String datasourcename; public Sqlserver() { } public Sqlserver(String datasourcename) {
this.datasourcename = datasourcename;
} public void setDatasourcename(String datasourcename) {
this.datasourcename = datasourcename;
} public void init() {
try {
Context context = new InitialContext();
ds = (DataSource) context.lookup(datasourcename);
context.close();
} catch (NamingException e) {
e.printStackTrace();
}
} public int update(String sql, String[] params) {
int result = 0;
QueryRunner qr = new QueryRunner(ds);
try {
result = qr.update(sql, params);
} catch (SQLException e) { e.printStackTrace();
} return result;
} @SuppressWarnings("deprecation")
public Object query(String sql, String[] params, ResultSetHandler rsh) {
Object result = null;
QueryRunner qr = new QueryRunner(ds);
try {
result = qr.query(sql, params, rsh);
} catch (SQLException e) {
e.printStackTrace();
}
return result;
}
} 运行时抛出:HTTP Status 500 - -------------------------------------------------------------------------------- type Exception report message description The server encountered an internal error () that prevented it from fulfilling this request. exception org.apache.jasper.JasperException: An exception occurred processing JSP page /addMessageHandler.jsp at line 31 28:
29: db.setDatasourcename("java:/comp/env/jdbc/sqlserver");
30: db.init();
31: result=db.update(sql,params);
32: if(result==0){%>
33: 瀵逛笉璧凤紝鎮ㄧ殑鐣欒█娌℃湁娣诲姞鎴愬姛锛岃閲嶆柊杈撳叆! <br>
34: <a href=' <%=context%>/addMessage.jsp'>鐐规閲嶆柊杈撳叆 </a>
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:505)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:398)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
root cause javax.servlet.ServletException: java.lang.AbstractMethodError: com.microsoft.jdbc.base.BasePreparedStatement.getParameterMetaData()Ljava/sql/ParameterMetaData;
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:852)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:781)
org.apache.jsp.addMessageHandler_jsp._jspService(addMessageHandler_jsp.java:175)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
root cause java.lang.AbstractMethodError: com.microsoft.jdbc.base.BasePreparedStatement.getParameterMetaData()Ljava/sql/ParameterMetaData;
org.apache.tomcat.dbcp.dbcp.DelegatingPreparedStatement.getParameterMetaData(DelegatingPreparedStatement.java:223)
org.apache.commons.dbutils.QueryRunner.fillStatement(QueryRunner.java:174)
org.apache.commons.dbutils.QueryRunner.update(QueryRunner.java:593)
org.apache.commons.dbutils.QueryRunner.update(QueryRunner.java:653)
com.example.Sqlserver.update(Sqlserver.java:42)
org.apache.jsp.addMessageHandler_jsp._jspService(addMessageHandler_jsp.java:145)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.18 logs.
<Resource name="jdbc/sqlserver" suth="Container" type="javax.sql.DataSource" maxActive="100" maxIdle="30" maxWait="10000"
username="tom" password="cat" driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver" url="jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=guestbook "/> 用数据源获得连接的程序是:package com.example; import java.sql.SQLException;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.ResultSetHandler; public class Sqlserver { private DataSource ds;
private String datasourcename; public Sqlserver() { } public Sqlserver(String datasourcename) {
this.datasourcename = datasourcename;
} public void setDatasourcename(String datasourcename) {
this.datasourcename = datasourcename;
} public void init() {
try {
Context context = new InitialContext();
ds = (DataSource) context.lookup(datasourcename);
context.close();
} catch (NamingException e) {
e.printStackTrace();
}
} public int update(String sql, String[] params) {
int result = 0;
QueryRunner qr = new QueryRunner(ds);
try {
result = qr.update(sql, params);
} catch (SQLException e) { e.printStackTrace();
} return result;
} @SuppressWarnings("deprecation")
public Object query(String sql, String[] params, ResultSetHandler rsh) {
Object result = null;
QueryRunner qr = new QueryRunner(ds);
try {
result = qr.query(sql, params, rsh);
} catch (SQLException e) {
e.printStackTrace();
}
return result;
}
} 运行时抛出:HTTP Status 500 - -------------------------------------------------------------------------------- type Exception report message description The server encountered an internal error () that prevented it from fulfilling this request. exception org.apache.jasper.JasperException: An exception occurred processing JSP page /addMessageHandler.jsp at line 31 28:
29: db.setDatasourcename("java:/comp/env/jdbc/sqlserver");
30: db.init();
31: result=db.update(sql,params);
32: if(result==0){%>
33: 瀵逛笉璧凤紝鎮ㄧ殑鐣欒█娌℃湁娣诲姞鎴愬姛锛岃閲嶆柊杈撳叆! <br>
34: <a href=' <%=context%>/addMessage.jsp'>鐐规閲嶆柊杈撳叆 </a>
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:505)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:398)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
root cause javax.servlet.ServletException: java.lang.AbstractMethodError: com.microsoft.jdbc.base.BasePreparedStatement.getParameterMetaData()Ljava/sql/ParameterMetaData;
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:852)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:781)
org.apache.jsp.addMessageHandler_jsp._jspService(addMessageHandler_jsp.java:175)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
root cause java.lang.AbstractMethodError: com.microsoft.jdbc.base.BasePreparedStatement.getParameterMetaData()Ljava/sql/ParameterMetaData;
org.apache.tomcat.dbcp.dbcp.DelegatingPreparedStatement.getParameterMetaData(DelegatingPreparedStatement.java:223)
org.apache.commons.dbutils.QueryRunner.fillStatement(QueryRunner.java:174)
org.apache.commons.dbutils.QueryRunner.update(QueryRunner.java:593)
org.apache.commons.dbutils.QueryRunner.update(QueryRunner.java:653)
com.example.Sqlserver.update(Sqlserver.java:42)
org.apache.jsp.addMessageHandler_jsp._jspService(addMessageHandler_jsp.java:145)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.18 logs.
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货