java web菜鸟求教,弄了一个星期了,环境都没搭建好!求好人

lxpandsq 2012-01-16 03:40:14
环境是eclipse3.7加tomcat6.x,jdk是1.5,sql2000+sq4驱动,jdbc连接方式,有那三个包,
我在eclipse上写了一个类可以从sql中添加、删除数据都没有问题,当然运行的时候选的应用程序服务器!
现在我配置了三个文件:
第一个:context.xml
<?xml version="1.0" encoding="UTF-8"?>

<Context antiJARLocking="true" path="/test" docBase="test" debug="5" reloadable="true" corssContext="true">
<Resource name="jdbc/ConnectionPool"
auth="Container"
type="javax.sql.DataSource"
driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver"
url="jdbc:microsoft:sqlserver://localhost:1433;DtatbaseName=db_net"
username="sa"
password="123"
maxActive="50"
maxIdle="20"
maxWait="10000"
factort ="org.apache.commous.dbcp.BasicDataSourceFactory"
/>
</Context>
第二个web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
<display-name>test</display-name>
<resource-ref>
<description>sql</description>
<res-ref-name>jdbc/ConnectionPool</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
</web-app>
第三个test.jsp文件:
<%@ page contentType= "text/html; charset=UTF-8" language= "java" errorPage= " " %>
<%@ page import= "java.sql.* "%>
<%@ page import= "javax.sql.* "%>
<%@ page import= "javax.naming.* "%>
<html>
<head>
<meta http-equiv= "Content-Type " content= "text/html; charset=UTF-8">
<title> myfirst </title>

</head>
<body>
<%
DataSource ds = null;
Connection conn = null;
Statement stmt = null;

try{
InitialContext ctx = new InitialContext();
ds = (DataSource)ctx.lookup("java:/comp/env/jdbc/ConnectionPool");
conn = ds.getConnection();
}
catch(Exception e)
{
e.printStackTrace();
}
if(conn!=null)
{



try{
stmt=conn.createStatement();
out.println(stmt);
String tsql = "insert into test1(t) values('5')";
out.println(tsql);
stmt.executeUpdate(tsql);
}

catch(Exception e)
{
e.printStackTrace();
}
}
%>

</body>
</html>


报错如下:
信息: Server startup in 478 ms
java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]对象名 'test1' 无效。
at com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source)
at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processErrorToken(Unknown Source)
at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processReplyToken(Unknown Source)
at com.microsoft.jdbc.sqlserver.tds.TDSExecuteRequest.processReplyToken(Unknown Source)
at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processReply(Unknown Source)
at com.microsoft.jdbc.sqlserver.SQLServerImplStatement.getNextResultType(Unknown Source)
at com.microsoft.jdbc.base.BaseStatement.commonTransitionToState(Unknown Source)
at com.microsoft.jdbc.base.BaseStatement.postImplExecute(Unknown Source)
at com.microsoft.jdbc.base.BaseStatement.commonExecute(Unknown Source)
at com.microsoft.jdbc.base.BaseStatement.executeUpdateInternal(Unknown Source)
at com.microsoft.jdbc.base.BaseStatement.executeUpdate(Unknown Source)
at org.apache.tomcat.dbcp.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
at org.apache.tomcat.dbcp.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:228)
at org.apache.jsp.test_jsp._jspService(test_jsp.java:93)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:388)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:291)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Unknown Source)



我估计还是配置问题,eclipse现在如果只是访问简单的jsp文件没有问题,一涉及到数据库,我就配置不好,但是我的java类却是可以访问sql的,现在我已经试过将那三个jdbc驱动放在jre下的exc、eclipse项目下的lib、tomcat下的lib。
真的无语,求高手。整了一星期了
...全文
364 41 打赏 收藏 转发到动态 举报
写回复
用AI写文章
41 条回复
切换为时间正序
请发表友善的回复…
发表回复
blinwen 2012-01-17
  • 打赏
  • 举报
回复
可怜的娃啊............
lxploveyxl 2012-01-17
  • 打赏
  • 举报
回复
问题找到了,拼错了一个单词,url="jdbc:microsoft:sqlserver://localhost:1433;DtatbaseName=db_net"这里面的Dtat应该是Data,第一个写错了,后面都是复制的。悲剧啊,谢大家了!
五哥 2012-01-17
  • 打赏
  • 举报
回复
java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]对象名 'test1' 无效。

test1这个表 在库中存在么 ?你可以一在查询分析器中运行一下
select * from test1 ;

或者 insert into test1(t) values('5') ;

看看有什么结果没有

天堂的眼泪 2012-01-17
  • 打赏
  • 举报
回复
转一圈
tanshi 2012-01-17
  • 打赏
  • 举报
回复
尝试一下select * from test1
看有结果不
lxpandsq 2012-01-17
  • 打赏
  • 举报
回复
[Quote=引用 34 楼 dracularking 的回复:]
一点点排查,确定是哪个环节的问题,如果怀疑是连接,那可以先用最简单的保证无错的select语句来排除
[/Quote]

数据库是新建的,用insert可以减少代码操作,我系统都重装了3次了,确实排查不什么结果了,所有才求救的,排查了一星期了。
dracularking 2012-01-16
  • 打赏
  • 举报
回复
一点点排查,确定是哪个环节的问题,如果怀疑是连接,那可以先用最简单的保证无错的select语句来排除
lxpandsq 2012-01-16
  • 打赏
  • 举报
回复
.....问题是java web的运行环境和java 应用程序应用环境是不同的。java web 是eclipse+tomcat所以这个类那运行并不能说明配置没有问题。
eachFunction 2012-01-16
  • 打赏
  • 举报
回复
那就不是数据库配置的问题了,就是insert的问题,你可以慢慢改了
lxpandsq 2012-01-16
  • 打赏
  • 举报
回复
[Quote=引用 30 楼 eachfunction 的回复:]
还有我这个的sql你看对不对。用正确的sql
[/Quote]

你这个改了两个地方就对了,一个是表名是test1,第二个是我就一个字段。有我数据库的结果
1

2

3
eachFunction 2012-01-16
  • 打赏
  • 举报
回复
还有我这个的sql你看对不对。用正确的sql
eachFunction 2012-01-16
  • 打赏
  • 举报
回复
不要用java,你就用现在的jsp上面,查值,输出值!我不觉得是数据库配置的问题,你先测是不是数据配置的事情,如果能查表输出出来就不是数据库配置的事情。
lxpandsq 2012-01-16
  • 打赏
  • 举报
回复
[Quote=引用 26 楼 eachfunction 的回复:]
不要瞎猜一个一个的测试
[/Quote]

一个星期了,我实在很无语
lxpandsq 2012-01-16
  • 打赏
  • 举报
回复
[Quote=引用 23 楼 eachfunction 的回复:]
String sql="select * from test";
ResultSet rs=stmt.executeQuery(sql);
while(rs.next()) {% >
您的第一个字段内容为:< %=rs.getString(1)% >
您的第二个字段内容为:< %=rs.getString(2)% >
< %}% >
< %out.print("数据库操作成……
[/Quote]

我测试过了,java类可以正常运行
eachFunction 2012-01-16
  • 打赏
  • 举报
回复
不要瞎猜一个一个的测试
eachFunction 2012-01-16
  • 打赏
  • 举报
回复
如果错了就是数据库配置的问题
lxpandsq 2012-01-16
  • 打赏
  • 举报
回复
[Quote=引用 20 楼 z6683227 的回复:]
SQL code
insert into test1 (t) values ('5')

请复制我写的这个写到项目里试试是否还报错。
[/Quote]

测试证明,还是一样的错误,我决定应该是配置的问题
eachFunction 2012-01-16
  • 打赏
  • 举报
回复
String sql="select * from test";
ResultSet rs=stmt.executeQuery(sql);
while(rs.next()) {% >
您的第一个字段内容为:< %=rs.getString(1)% >
您的第二个字段内容为:< %=rs.getString(2)% >
< %}% >
< %out.print("数据库操作成功,恭喜你");% >
< %rs.close();
stmt.close();
conn.close();
你这样试试,如果执行没错,那就是insert的问题
arikara 2012-01-16
  • 打赏
  • 举报
回复
String tsql = "insert into test1(t) values('5')";

你确定你的test1表中的t 是varchar吗? 先看下t 是varchar 还是number
你的('5')是对应varchar 的
lxpandsq 2012-01-16
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 eachfunction 的回复:]
我看了仔细看了下代码,怎么觉得这么奇怪呢。。你不要用insert。你执行select。我还真没直接在jsp弄过insert。事实上我觉得直接在jsp上弄上这段代码就很奇怪,我才疏学浅了。你去找一个简单的示例看看,你这种方式弄web肯定有问题。不能都写在jsp上面
[/Quote]
那不是测试吗,而且网页的显示就是用的out打印的
加载更多回复(20)

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧