Struts中用DAO链接数据库问题

apache2007 2007-11-13 12:01:06
我初学struts想做一个简单的登陆模块,用DAO链接数据库。以下是部分代码:
//FirstDAO.java

package FirstDAO.DB.DAO;

import java.sql.*;
import java.util.*;
import FirstDAO.DB.DTO.*;
import FirstDAO.ActionForm.RegistActionForm;
import java.util.logging.Level;
import java.util.logging.Logger;

public class FirstDAO {
String driver = "com.microsoft.jdbc.sqlServer.SQLServerDriver";
String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=firstStruts";
String username="sa";
String password="28imark";
public boolean createUser(RegistActionForm user){
Connection con=null;
Statement stmt=null;
ResultSet rs=null;
boolean boo = false;
try{
Class.forName(driver);
con=DriverManager.getConnection(url,username,password);
String sql="insert into user(username,password,conpassword) values('"+user.getUsername()+"','"+user.getPassword()+"','"
+user.getConfirmpassword()+"')";
stmt=con.createStatement();
boo = stmt.execute(sql);
}catch(Exception e){e.printStackTrace();}
finally{
if(con!=null){
try {
con.close();
} catch (SQLException ex) {
Logger.getLogger(FirstDAO.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
return boo;
}
}

/*
* RegistAction.java
*
* Created on 2007-11-11, 23:35:11
*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/

package FirstDAO.action;

import FirstDAO.DB.DAO.*;
import org.apache.struts.action.*;
import FirstDAO.ActionForm.RegistActionForm;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class RegistAction extends Action{
@Override
public ActionForward execute(ActionMapping mapping,ActionForm form,HttpServletRequest request,HttpServletResponse response){
RegistActionForm regist=(RegistActionForm)form;
boolean boo =false;
FirstDAO dao = new FirstDAO();
boo = dao.createUser(regist);
if(boo){
return mapping.findForward("/success.jsp");
}
else
return mapping.findForward("/error.jsp");
}

}

//struts-config.xml
<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE struts-config PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 1.2//EN"
"http://jakarta.apache.org/struts/dtds/struts-config_1_2.dtd">


<struts-config>
<data-sources>
<data-source>
<set-property property="driverClassName" value="com.microsoft.jdbc.sqlServer.SQLServerDriver"/>
<set-property property="url" value="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=firstStruts"/>
<set-property property="username" value="sa"/>
<set-property property="password" value="28imark"/>
</data-source>
</data-sources>
<form-beans>
<form-bean name="registActionForm" type="FirstDAO.ActionForm.RegistActionForm"/>
</form-beans>

<global-exceptions>

</global-exceptions>

<global-forwards>
<forward name="welcome" path="/Welcome.do"/>
</global-forwards>

<action-mappings>
<action path="/Welcome" forward="/welcomeStruts.jsp"/>
<action path="/registAction" name="registActionForm" forward="/FirstDAO.action.RegistAction"/>
</action-mappings>

<controller processorClass="org.apache.struts.tiles.TilesRequestProcessor"/>

<message-resources parameter="com/myapp/struts/ApplicationResource"/>


<plug-in className="org.apache.struts.tiles.TilesPlugin" >
<set-property property="definitions-config" value="/WEB-INF/tiles-defs.xml" />
<set-property property="moduleAware" value="true" />
</plug-in>

<!-- ========================= Validator plugin ================================= -->
<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
<set-property
property="pathnames"
value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml"/>
</plug-in>

</struts-config>

但是运行程序确有错:
type Status report

message Servlet action is not available

description The requested resource (Servlet action is not available) is not available.
请问这是什么原因导致的错误?
是配置文件 没有配置好么? 还是数据库链接有问题??还是其他什么问题。
望各位朋友不吝赐教。
谢谢各位。
...全文
144 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
zxcvbnmluton 2008-02-25
  • 打赏
  • 举报
回复
能不能把你的解决方法写出来呢
apache2007 2007-11-15
  • 打赏
  • 举报
回复
谢谢各位了 已经好了。
lhzx_zjg 2007-11-14
  • 打赏
  • 举报
回复
1.数据库连接没配置好,我没用过Struts做过数据层
2.不能加载验证文件:WEB-INF/validator-rules.xml,/WEB-INF/validation.xml
看看是否路径对否或者有没有这两个文件,myeclipse默认值生成validator-rules.xml,而validator.xml好像不生成
apache2007 2007-11-14
  • 打赏
  • 举报
回复
package FirstDAO.ActionForm;

import org.apache.struts.action.*;
import org.apache.struts.validator.*;
public class RegistActionForm extends ActionForm{
private String username;
private String password;
private String confirmpassword;
int sex;
public void setUsername(String username){
this.username=username;
}
public String getUsername(){
return username;
}
public void setPassword(String password){
this.password=password;
}
public String getPassword(){
return password;
}
public void setConfirmpassword(String cpassword){
this.confirmpassword=cpassword;
}
public String getConfirmpassword(){
return confirmpassword;
}
public void setSex(int sex){
this.sex=sex;
}
public int getSex(){
return sex;
}

}
kidfang 2007-11-14
  • 打赏
  • 举报
回复
jf
apache2007 2007-11-13
  • 打赏
  • 举报
回复
这个我改了 是个不应该有的错误。但是还是不成。
这是tomcat的部分警告提示,但是我不太懂。

严重: Servlet /FirstDAO threw load() exception
javax.servlet.UnavailableException: Initializing application data source org.apache.struts.action.DATA_SOURCE
at org.apache.struts.action.ActionServlet.initModuleDataSources(ActionServlet.java:812)
at org.apache.struts.action.ActionServlet.init(ActionServlet.java:335)
at javax.servlet.GenericServlet.init(GenericServlet.java:211)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1161)
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:981)
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4042)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4348)
at org.apache.catalina.manager.ManagerServlet.start(ManagerServlet.java:1237)
at org.apache.catalina.manager.ManagerServlet.doGet(ManagerServlet.java:373)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:697)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:174)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:525)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:261)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:581)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:619)
2007-11-13 1:02:05 org.apache.catalina.core.StandardWrapperValve invoke
信息: Servlet action is currently unavailable
2007-11-13 1:13:40 org.apache.catalina.core.ApplicationContext log
信息: Marking servlet action as unavailable
2007-11-13 1:13:40 org.apache.catalina.core.StandardContext loadOnStartup
严重: Servlet /FirstDAO threw load() exception
javax.servlet.UnavailableException: Cannot load a validator resource from '/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml'
at org.apache.struts.validator.ValidatorPlugIn.init(ValidatorPlugIn.java:172)
at org.apache.struts.action.ActionServlet.initModulePlugIns(ActionServlet.java:869)
at org.apache.struts.action.ActionServlet.init(ActionServlet.java:336)
at javax.servlet.GenericServlet.init(GenericServlet.java:211)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1161)
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:981)
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4042)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4348)
at org.apache.catalina.manager.ManagerServlet.start(ManagerServlet.java:1237)
at org.apache.catalina.manager.ManagerServlet.doGet(ManagerServlet.java:373)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:697)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:174)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:525)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:261)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:581)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:619)
2007-11-13 1:13:54 org.apache.catalina.core.StandardWrapperValve invoke
信息: Servlet action is currently unavailable
2007-11-13 1:14:03 org.apache.catalina.core.StandardWrapperValve invoke
信息: Servlet action is currently unavailable
2007-11-13 1:19:24 org.apache.catalina.core.ApplicationContext log
信息: Marking servlet action as unavailable
2007-11-13 1:19:24 org.apache.catalina.core.StandardContext loadOnStartup
严重: Servlet /FirstDAO threw load() exception
javax.servlet.UnavailableException: Initializing application data source org.apache.struts.action.DATA_SOURCE
.......
Leo1734 2007-11-13
  • 打赏
  • 举报
回复
<action path= "/registAction" name= "registActionForm" forward="/FirstDAO.action.RegistAction "/>
Action配置错误,试试下面这个
<action path="/registAction" name="regisActionForm" type="FirstDAO.action.RegistAction"/>

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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