出现的错误
1.
Error creating bean with name 'dataSource' defined in class path resource [applicationContext.xml]: Initialization of bean failed; nested exception is javax.naming.NoInitialContextException:
用java代码直接测试由于连接池要用到tomcat的问题,先改为JDBC连接方式
2.
Unknown entity: dj.fantlam.myssh.vo.User 没有在spring配置
<property name="mappingResources">
<list>
<value>org/lxh/myzngt/vo/User.hbm.xml</value>
</list>
</property>
3.
Exception in thread "main" org.hibernate.exception.SQLGrammarException: could not insert: [dj.fantlam.myssh.vo.User]
Caused by: java.sql.SQLException: Table 'myssh.myssh__user' doesn't exist
在User.hbm.xml里面
<hibernate-mapping>
<class name="dj.fantlam.myssh.vo.User" table="user"
将(catalog="myssh")去掉>
</class>
</hibernate-mapping>
4.
严重: IOException while loading persisted sessions: java.io.EOFException
严重: Exception loading sessions from persistent storage
原因是tomcat对硬盘的session读取失败,彻底解决办法一下:将tomcat的work目录下面的文件清空,主要是*.ser文件,或者只是删除掉session.ser即可以解决。
5.
Struts无法验证 因为Struts默认执行public ActionForward execute
用分发Action的时候注意把execute的名字改掉
6.
在UserForm里面 最好所有属性都有setter和getter方法
由于type没有setter和getter方法 导致UserForm都无法验证错误信息 生成之后问题解决
7.
spring没有把dataSource配上去 user.do会找不到
index.html
<html>
<head>
<title>fantlam</title>
<META NAME="Generator" CONTENT="Struts + Spring + Hibernate + MySQL + Tomcat + CP">
<META NAME="Author" CONTENT="fantlam">
<META NAME="Keywords" CONTENT="SSH,tomcat,mysql">
<META HTTP-EQUIV="refresh" CONTENT="0;URL=jsp/index.jsp">跳转页面
</head>
<body>
</body>
</html>
UserAction.java 的register里 插入数据 密码进行加密
MD5Code mc=new MD5Code();
User user = new User();
user.setUserid(userForm.getUserid());
user.setUserpwd(mc.getMD5ofStr(userForm.getUserpwd()));
user.setUserques(userForm.getUserques());
user.setUserans(userForm.getUserans());
user.setGrade(1);
this.userdao.register(user);
request.getSession().setAttribute("userid", user.getUserid());
request.getSession().setAttribute("grade", user.getGrade());
return mapping.findForward("regsuc");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
return mapping.findForward("regfail");
}
8.
this.userdao.register(user);
出现空指针异常java.lang.NullPointerException
出现原因:没有把struts交给spring管理 没有实例化UserDAO类
解决办法:
在applicationContext.xml中加入
<bean name="/jsp/user" class="dj.fantlam.myssh.struts.action.UserAction">
<property name="userdao">
<ref bean="userdaoimpl" />
</property>
</bean>
index.jsp
<logic:present name="userid" scope="session">
欢迎${userid}光临
头衔:${grade}级
</logic:present>
进行注册测试,可以成功插入
以上用JDBC连接方式可以成功注册用户
现在改为用 JNDI 数据源 又出现了这样的问题
org.hibernate.exception.GenericJDBCException: Cannot open connection
这个地方暂时还没解决 以后的代码只能用JDBC方式代替了
在注册之前要检查用户ID是否已经存在,不存在才插入,存在要返回错误信息
UserDAOImpl.java
public User queryByUserid(String userid) throws Exception {
// TODO Auto-generated method stub
// HibernateDaoSupport的方法取得session
// protected net.sf.hibernate.Session getSession()
User user=null;
String hql="from User as u where u.userid=?";
User注意不要写成user
Query q=super.getSession().createQuery(hql);
q.setString(0, userid);
List l=q.list();
if(l.size()>0){
user=(User)l.get(0);
}
return user;
}
org.hibernate.QueryException: Expected positional parameter count: 1, actual parameters: [] [from user as u where u.userid=?]
原因是忘了设值q.setString(0, userid);
UserAction里register方法
User user =this.userdao.queryByUserid(userForm.getUserid());
if (user == null) {
user.setUserid(userForm.getUserid());
user.setUserpwd(mc.getMD5ofStr(userForm.getUserpwd()));
user.setUserques(userForm.getUserques());
user.setUserans(userForm.getUserans());
user.setGrade(1);
this.userdao.register(user);
request.getSession().setAttribute("userid", user.getUserid());
request.getSession().setAttribute("grade", user.getGrade());
return mapping.findForward("regsuc");
} else {
ActionMessages errors = new ActionMessages();
errors.add("exist", new ActionMessage("user.id.exist"));
super.saveErrors(request, errors);
return mapping.getInputForward();
}
相关推荐
标题中的"x11-ssh-askpass-1.2.4.1.tar.gz"是一个开源软件包,主要用于在没有图形界面的远程服务器上提供SSH密码输入功能。这个软件包是X11 SSH Askpass的1.2.4.1版本,它是一个用于SSH连接的安全凭证助手,特别适用...
3. **Windows与SSH的兼容性**:虽然SSH主要用于Linux和Unix系统,但通过工具如DameWare SSH Client,Windows用户也能方便地接入SSH服务器,进行跨平台的系统管理。 4. **教育用途**:作为教育类Shareware,DameWare...
2024年3月12日制作 适用于centos 7 redhat 7 x86架构操作系统升级更新openssh 9.7 版本,修复...此包为二进制rpm包,包含ssh-copy-id命令 2024年3月11日 官方发布9.7版本,此包基于官方源码制作,无ssl信息显示。
ganymed-ssh2-build210.7zganymed-ssh2-build210.7zganymed-ssh2-build210.7zganymed-ssh2-build210.7zganymed-ssh2-build210.7zganymed-ssh2-build210.7zganymed-ssh2-build210.7z
适用银河麒麟 v10 sp2 aarch64架构的二进制openssh 9.7 rpm包 修复安全漏洞、更新升级openssh 版本,显示openssl版本信息,内含ssh-copy-id命令 2024年3月28日制作
这个功能可以集成到GUI应用中,创建一个模拟的终端界面,用户可以直接在界面上输入命令,应用通过上述方式在后台执行并显示结果。这样不仅提高了用户体验,也为自动化操作提供了便利。 总之,Java结合ganymed-ssh2-...
Paramiko是Python编程语言中一个重要的开源库,主要用于实现SSHv2协议,提供安全的网络通信功能...通过`paramiko-1.15.0-py2.py3-none-any.whl`文件,你可以快速地在项目中引入这个强大的库,开始安全的远程操作之旅。
在这个"SSH项目后台JSP页面.zip"压缩包中,主要包含的是项目的Web内容部分,尤其是JSP页面,这是用户与服务器交互的前端界面。 首先,让我们深入了解SSH框架的每个组件: 1. **Struts2**:这是一个MVC(Model-View...
2024年3月12日制作 适用于centos 7 redhat 7 x86架构的二进制...2024年3月11日官方发布9.7版本,内含ssh-copy-id命令,安装后显示openssl版本,此包基于openssl 1.1.1w制作,因此安装后会显示1.1.1w版本的openssl信息
一、 竞赛简介 - 3 - 二、 竞赛注意事项 - 3 - 三、 竞赛结果文件的提交 - 3 - 四、 初始化环境 - 3 - 1.默认账号及默认密码 - 3 - 2.操作系统配置 - 4 - 五、 项目任务描述 - 4 - 1.拓扑图 - 4 - 2.网络地址规划 - ...
ms-vscode-remote.remote-ssh-edit-0.86.0
com.springsource.org.aopalliance-1.0.0.jar 。Spring的AOP开发依赖,AOP联盟jar。
基于开源项目制作的openssh 9.7版本二进制rpm包,内含ssh-copy-id命令,显示openssl版本信息 2024年3月12日制作,适用于centos 7 redhat 7 x86架构升级更新openssh到当前最新版
Linux运维-4.服务管理-001网络服务基础-2、视频012基础-ssh密钥对验证模式.avi
SSHSecureShellClient-3.2.9.exe--ssh连接工具;用于连接linux,unix操作系统
python库。资源全名:ssh_jump_hive-0.1.6-py2.py3-none-any.whl
python库。 资源全名:ssh_jump_hive-0.3.0-py2.py3-none-any.whl
在WebSSH2项目中,xterm.js是用户与远程服务器交互的界面,用户可以在这个终端中输入命令并查看返回的结果。 其次,socket.io是一个实时应用程序库,它在客户端和服务器之间提供了双向通信。在WebSSH2中,socket.io...
1. ApacheJMeter_ssh-1.2.0.jar:这是SSH插件的主要实现,它扩展了JMeter的功能,使用户能够创建SSH Samplers。这个组件允许你配置服务器地址、端口、用户名、密码或密钥文件等参数,以建立安全的SSH连接,并执行...