struts过程中出现的问题,求助,散100分!!!!

programpoet 2007-05-11 09:40:51
是这样的,我是eclipes+tomcat,发布项目后,当打开JSP页时,提示:
2007-5-11 1:34:39 org.apache.struts.util.PropertyMessageResources <init>
信息: Initializing, config='org.apache.struts.taglib.html.LocalStrings', returnNull=true
2007-5-11 1:34:39 org.apache.struts.util.PropertyMessageResources <init>
信息: Initializing, config='org.apache.struts.util.LocalStrings', returnNull=true
2007-5-11 1:34:39 org.apache.struts.util.PropertyMessageResources <init>
信息: Initializing, config='org.apache.struts.taglib.html.LocalStrings', returnNull=true
2007-5-11 1:34:39 org.apache.struts.util.PropertyMessageResources <init>
信息: Initializing, config='org.apache.struts.taglib.html.LocalStrings', returnNull=true
2007-5-11 1:34:39 org.apache.struts.util.PropertyMessageResources <init>
信息: Initializing, config='org.apache.struts.taglib.html.LocalStrings', returnNull=true
2007-5-11 1:34:39 org.apache.struts.util.PropertyMessageResources <init>
信息: Initializing, config='org.apache.struts.taglib.html.LocalStrings', returnNull=true
2007-5-11 1:34:39 org.apache.struts.util.PropertyMessageResources <init>
信息: Initializing, config='org.apache.struts.taglib.html.LocalStrings', returnNull=true

当我输入完信息点按钮后,情况是刚开始好用,之后报错:

严重: Resources not defined for Validator
org.apache.commons.validator.ValidatorException: Resources not defined for Validator
at org.apache.commons.validator.Validator.validate(Validator.java:574)
at org.apache.struts.validator.DynaValidatorForm.validate(DynaValidatorForm.java:151)
at org.apache.struts.action.RequestProcessor.processValidate(RequestProcessor.java:942)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:255)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection

(Http11Protocol.java:744)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Thread.java:595)
2007-5-11 1:35:27 org.apache.struts.legacy.GenericDataSource getConnection
信息: getConnection()
2007-5-11 1:35:27 org.apache.struts.legacy.GenericDataSource getConnection
信息: Check for timeout, activeCount=3, useCount=0
2007-5-11 1:35:27 org.apache.struts.legacy.GenericDataSource getConnection
信息: Found available connection
2007-5-11 1:35:27 org.apache.struts.legacy.GenericDataSource getConnection
信息: Return allocated connection, activeCount=3, useCount=1
java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] 参数不足,期待是 1。
at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6958)
at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7115)
at sun.jdbc.odbc.JdbcOdbc.SQLExecDirect(JdbcOdbc.java:3111)
at sun.jdbc.odbc.JdbcOdbcStatement.execute(JdbcOdbcStatement.java:338)
at sun.jdbc.odbc.JdbcOdbcStatement.executeUpdate(JdbcOdbcStatement.java:288)
at com.yourcompany.dao.Access.save(Access.java:41)
at com.yourcompany.struts.action.RegistAction.execute(RegistAction.java:63)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection

(Http11Protocol.java:744)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Thread.java:595)
2007-5-11 1:35:27 org.apache.struts.legacy.GenericDataSource returnConnection
信息: releaseConnection(), activeCount=3, useCount=0
...全文
443 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
programpoet 2007-05-16
  • 打赏
  • 举报
回复
感谢个位回帖

是用的是ACCESS数据库

是自动主键的 后来我不用自动主键

采用select count(*) from 表 然后传给id

再id + 1

就好用了

再次谢谢
aaronyy2002 2007-05-11
  • 打赏
  • 举报
回复
<set-property property="minCount" value="3" />
把value值改成1试一下
programpoet 2007-05-11
  • 打赏
  • 举报
回复
java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] 参数不足,期待是 1。


主要这句不知道是怎么回事?

像我今天刚打开电脑,开始插数据好用,等插到第三个时就报这样的错误

求助各位啦啊
programpoet 2007-05-11
  • 打赏
  • 举报
回复
我的struts config.xml配制如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">

<struts-config>

<data-sources >
<data-source key="org.apache.struts.action.DATA_SOURCE">
<set-property property="password" value="" />
<set-property property="minCount" value="3" />
<set-property property="maxCount" value="1000" />
<set-property property="user" value="" />
<set-property property="driverClass" value="sun.jdbc.odbc.JdbcOdbcDriver" />
<set-property property="description" value="" />
<set-property property="url" value="jdbc:odbc:driver={Microsoft Access Driver (*.mdb)}; DBQ=D:\\数据库\\regist.mdb" />
<set-property property="readOnly" value="false" />
<set-property property="autoCommit" value="true" />
<set-property property="loginTimeout" value="" />
</data-source>

</data-sources>


<form-beans >
<form-bean name="registForm" type="org.apache.struts.validator.DynaValidatorForm">
<form-property name="userid" type="java.lang.String" />
<form-property name="userName" type="java.lang.String" />
<form-property name="password" type="java.lang.String" />
<form-property name="repassword" type="java.lang.String" />
<form-property name="email" type="java.lang.String" />
</form-bean>
</form-beans>


<global-exceptions />
<global-forwards />
<action-mappings >
<action
attribute="registForm"
input="/error.jsp"
name="registForm"
path="/regist"
scope="request"
type="com.yourcompany.struts.action.RegistAction">
<forward name="ok" path="/success.jsp" />
</action>

</action-mappings>

<message-resources parameter="com.yourcompany.struts.ApplicationResources" />
</struts-config>

javaboy2006 2007-05-11
  • 打赏
  • 举报
回复
password字段名是关键字。
lz把String sql输出看一下是否正确。
KevinXie 2007-05-11
  • 打赏
  • 举报
回复
com.yourcompany.dao.Access.save(Access.java:41)

这个类的41行代码出错,你去查查看看,应该是执行stat.executeUpdate(sql);这句的时候出错的,看看你的参数看看
Sunny319 2007-05-11
  • 打赏
  • 举报
回复
在rowCount=stat.executeUpdate(sql);之前把sql输出到控制台看看
rainyheart776 2007-05-11
  • 打赏
  • 举报
回复
建议把sql语句打印出来,再调试。
excignjord 2007-05-11
  • 打赏
  • 举报
回复
String sql = "insert into regist(userid,userName,password,email) values(";
楼主的sql语句中字段定义有问题,有可能是某个字段打错了!
backhamx7 2007-05-11
  • 打赏
  • 举报
回复
把sql语句打出来 ,执行一下
CrazyGou 2007-05-11
  • 打赏
  • 举报
回复
String sql = "insert into regist(userid,userName,password,email) values(";
===
password是关键字,这样试试:
String sql = "insert into regist([userid],[userName],[password],[email]) values(";
zzxiaoma 2007-05-11
  • 打赏
  • 举报
回复
创建连接的语句在哪里,应该是创建连接的参数少
asdex1999 2007-05-11
  • 打赏
  • 举报
回复
参数不足,期待是 1。
以前遇到过这样的问题 好象是数据库类型不同,现在我们自己有一个生成持久类的工具,现在就没出现这样的情况了
programpoet 2007-05-11
  • 打赏
  • 举报
回复
谢谢二位,数据库连接池的最好数值和最小数值我已经改了N遍,但无效

感觉好像是方法中数据库语句的问题

各位帮我看看 谢啦

SAVE方法:

package com.yourcompany.dao;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;


import com.yourcompany.bean.Regist;

public class Access {

private Connection conn; //连接数据库的三要素
private Statement stat;
private ResultSet re;

public Access(Connection conn1){ //创建构造,为了得到连接对象。
this.conn=conn1;
}

public boolean save(Regist regist)
{
String sql = "insert into regist(userid,userName,password,email) values(";
sql = sql +regist.getUserid()+",'"+regist.getUserName()+"','"+regist.getPassword()+"','"+regist.getEmail()+"')";

/*try {
stat.executeUpdate(sql);
System.out.println(sql);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return true;*/

try {
stat=conn.createStatement();
int rowCount=0;

rowCount=stat.executeUpdate(sql);
if(rowCount>0){
conn.commit();
}else{
conn.rollback();
return false;
}
return true;
} catch (SQLException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
try {
conn.rollback();
} catch (SQLException e1) {
// TODO 自动生成 catch 块
e1.printStackTrace();
}
}finally{
try {
stat.close();
conn.close();
} catch (SQLException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
}
return false;

}

}
Sunny319 2007-05-11
  • 打赏
  • 举报
回复
把插入数据的那部分代码贴出来。可能你的sql语句是错误的

81,092

社区成员

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

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