`
saiyaren
  • 浏览: 228260 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

我做spring项目以来的一些问题解决方法,给大家分享一下,呵呵!

阅读更多
引用

[list]
[1]
如果我们碰到控制台报这个错误:
com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: Table 'hbstpdb.hbstpdb__newskinds' doesn't exist
如去我们的XXXX.hbm.xml文件中找到这个语句
<class name="com.ngworld.bookstore.vo.Newskinds" table="newskinds" catalog=”hbstpdb”>
把上面的这个模式名(catalog=”hbstpdb”)删掉就不会出现上面的错误了
[2]

org.hibernate.id.IdentifierGenerationException: ids for this class must be manually assigned before calling save():



异常原因:
<id>元素配置不正确,<id>元素缺少其子元素<generator></generator>的配置。
解决方法:
<id>元素映射了相应数据库表的主键字段,对其子元素<generator  class="">,其中class的取值可以为increment、identity、sequence、hilo、native……等,更多的可参考hibernate参考文档,一般取其值为native  。

所以我们去我们的vo包中,找我们对应的.hbm.xml的文件,把文件中的<id>配置改成increment就可以了(mysql)
如果我们用的是oracle数据库的话,多表的话我们是要建立sequence(序列的),所以也要把相应的序列文件加到里面
如:
<id name="id" type="java.lang.Long">
  <column name="ID" precision="22" scale="0" />
 <generator class="sequence" >
<param name="sequence">productseq</param>
</generator>
  </id>

[3]request的一个问题,解释如下:
这个是我们的action的页面准备文件:
protected Object FormBackingObject(HttpServletRequest request) throws Exception {
		String id = request.getParameter("articleId");
		Article list = articleService.getArticleById(id);
		request.setAttribute("article",list);
		return super.formBackingObject(request);
	}


Article 是表 list是取出表中指定id的字段,然后通过request把list的值返回到页面中,在页面中就可以用article了,比如$(article.id) 这个里面的id是表的字段,然后通过这个jstl语句就可以取出article表中的id了,但是${article.id}的artciel必须和request.setAttribute("article",list);中引号中的变量一致,如果引号中换了别的变量则在引用中则用那个变量名,如:
request.setAttribute("articlelist",list);
那么在jsp中就这么引用${articlelist.id},所这个参数就可以直接在我们的jsp中引用了
[4]
Lazy错误:
如果在控制台中报了如下的错误:
2008-08-20 17:09:57,812 ERROR [org.hibernate.LazyInitializationException] - <could not initialize proxy - the owning Session was closed>
org.hibernate.LazyInitializationException: could not initialize proxy - the owning Session was closed


这里告诉我们session已经关闭了,所以我们要把我们的hibernate的.hbm.xml文件中的
Class中要把我们的lazy设置成false这样的错误就可以解决了。(注:记住这个是外键表的.hbm.xml文件,比如a表ID和b表ID是关联,b表ID是a表的外键,这个文件是b表的文件,只有lazy加在b表才有作用)
例:
<hibernate-mapping>
    <class name="com.ngworld.bookstore.vo.Department" table="department" lazy="false" >
    .......   
    </class>
</hibernate-mapping>


[5]
For input string: "name"问题:

当控制台返回以下的错误时:
java.lang.NumberFormatException: For input string: "name"
我们可以去我们的action文件中输出些文件来看看具体是哪里出了问题:
public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
		// TODO Auto-generated method stub
		List categoryList=categoryService.getCategoryList();
		for (int i=0;i<categoryList.size();i++){
			System.out.println(categoryList.get(i).getClass());   
		}
		request.setAttribute("categoryList", categoryList);
		return new ModelAndView("/category/categoryList.jsp");
	}


这个是我的action代码(controller),在这里我们可以用:
这个是我的action代码(controller),在这里我们可以用:
System.out.println(categoryList.get(i).getClass());
来输出看看我们哪个类出了问题
我报这个错误的时候是因为的hql语句写错了,所以改完了后就好了
String hql=”from category”;
Return getHibernateTemplelate.find(hql);
这个是我改后的正确代码
我之前错误的代码是这个:
String hql="from Category p left join p.department order by p.id";
return getHibernateTemplate().find(hql);
所以报了上面的错误,具体的我们可以在输出的类中我们把我们错误给找到!

[6]
"table" is not mapped 解决方法:
这个问题是出在我们的hql语句当中的,其中查询的表是我们的pojo文件的名字而不是我们的表名字
例:
比如我们的pojo文件是CategoryPojo.java而我们的表的名字是category
如果我们的写下面的语句就会报上面的错误:
hql=”from category”
return getHibernateTemplelate.find(hql);

如果改成这个就不会有错误了
hql=”from CategoryPojo”
return getHibernateTemplelate.find(hql);


[7]
Property 'name' not found on type java.lang.String问题解决方法:
当我们的控制台返回下面的错误时:
严重: Servlet.service() for servlet jsp threw exception
javax.el.PropertyNotFoundException: Property 'name' not found on type java.lang.String
at javax.el.BeanELResolver$BeanProperties.get(BeanELResolver.java:193)
	at javax.el.BeanELResolver$BeanProperties.access$400(BeanELResolver.java:170)
	at javax.el.BeanELResolver.property(BeanELResolver.java:279)
	at javax.el.BeanELResolver.getValue(BeanELResolver.java:60)
	at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:53)



这里的错误告诉我们是我们的el表达式中出了错误
我到我的jsp文件中去看了看
<c:forEach items="categoryList" var="category" varStatus="status">
  <tr> 
    <td><c:out value="${status.index+1}"/></td> 
    <td>${category.name}</td>
    <td>${category.department.name}</td>
    <td>${category.description }</td>
  </tr>
  </c:forEach>


看看我们的items这里,categoryList是我们request的一个参数,这里应该用items=${ categoryList } 用${}把我们的参数引起来,这个是jstl的语法,我们这样给改了之后,错误就可以解决了!






以上是我在学习spring 做个小小的项目的时候遇到的一些错误,因为控制台返回的信息不够明确所以在许多的地方遇到了问题,而且请教了许多的人才解决了以上的问题,希望这些对于大家来说有很大的帮助
[/list]
分享到:
评论

相关推荐

    springcloud项目,解决unknown问题

    在开发基于Spring Boot和Spring Cloud的应用程序时,经常会遇到各种挑战,其中之一就是“unknown”问题。这通常出现在IDEA环境中,意味着系统无法正确识别或解析某些依赖或配置。本篇文章将详细探讨这个问题,并提供...

    spring 小项目

    1. **检查错误日志**:查看控制台输出或日志文件,错误信息通常会提供解决问题的线索。 2. **验证配置**:确认`application.properties`或`application.yml`文件中的配置正确无误,如端口设置、数据库连接信息等。 3...

    spring cloud完整项目

    目前也是初次学习使用 spring boot、 spring cloud 、分布式, 搭建了一个简单spring cloud项目,没经验 使用不熟导致很多地方处理都很牵强, 本次分享出来也是希望有高人帮忙提点一二,给一些建设性意见,帮助提升,...

    springcloud完整项目

    【标题】:SpringCloud完整项目 该项目是一个基于SpringBoot 2.x版本和SpringCloud Finchley构建的完整微服务系统。SpringBoot是Spring框架的一个模块,它简化了创建独立的、生产级别的基于Spring的应用程序的过程...

    Spring项目主配置文件

    初学Spring的小伙伴,还在为找不到主配置文件而着急吗,该配置文件是基于Spring4.10版本的,不用再自己到官网页面上到处找了,分享给大家,也希望大家别再像我一样因为这个坑耽误了大半天的时间,如果要自己配置也...

    spring2.5.5+JDK1.8 版本报错的解决办法(修改后jar)

    org.springframework.core.JdkVersion 于是找到一个spring-core-3.x.RELEASE.jar,用其中的JdkVersion这个类替换spring-2.5.5.jar对应class,问题解决! 注意:别用spring-core-4.x.RELEASE.jar,JdkVersion....

    Spring源码项目

    Spring源码项目,集成了Spring主要源码到项目中,方便初学者查看及跟踪Spring源码。该项目SRC下面包含一个简单的例子可做参考。 使用方法:解压,用eclipse import,选择Existing Projects into Workspace,接着下...

    Spring攻略PDF版

    Spring专家力作 理论与实践完美结合 问题描述→解决方案→实现方法 第一部分 核心概念  第1章 控制反转和容器   1.1 使用容器管理组件   1.1.1 问题描述   1.1.2 解决方案   1.1.3 实现方法  ...

    spring项目所需jar包

    本资源包含了一系列Spring Framework的核心jar包,以及与Spring项目相关的其他重要库,如Junit、Log4j和Commons-Logging。 1. Spring Framework核心组件: - `spring-core-5.0.1.RELEASE.jar`:这是Spring框架的...

    基于javaspring+mysql的知识分享系统源码+数据库文件(高分项目).zip

    基于javaspring+mysql的知识分享系统源码+数据库文件(高分项目).zip该项目是个人大作业项目源码,评审分达到95分以上,都经过严格调试,确保可以运行!放心下载使用。 基于javaspring+mysql的知识分享系统源码+...

    Spring Cloud项目技术解决方案闪电战

    项目集成了以下功能: 1、服务注册与发现 2、Eureka用户认证 3、服务续约保活(心跳机制) 4、Eureka高可用 5、Eureka健康检测 6、服务下线 7、远程调用 8、负载均衡 9、服务雪崩 10、服务降级 11、Hystrix熔断器 12...

    spring 问题总结实用知识库分享知识分享

    本文将总结 Spring 框架中的一些常见问题和解决方法,旨在帮助开发者更好地掌握 Spring 框架。 Attribute "scope" must be declared for element type "bean" 在 Spring 配置文件中, Bean 的 scope 属性是必须...

    Spring攻略中文版PDF

    Spring专家力作 理论与实践完美结合 问题描述→解决方案→实现方法 第一部分 核心概念  第1章 控制反转和容器   1.1 使用容器管理组件   1.1.1 问题描述   1.1.2 解决方案   1.1.3 实现方法  ...

    Spring Boot非Web项目运行的方法

    Spring Boot非Web项目运行的方法 Spring Boot是一个基于Java的开源框架,主要用于构建基于Web的应用程序。然而,在某些情况下,我们可能不需要提供Web服务,例如跑定时任务的项目。在这种情况下,我们需要了解如何...

    spring cloud和spring boot两个完整项目

    核心技术采用Eureka、Fegin、Ribbon、Zuul、Hystrix、Security、OAth、Mybatis、Ace-cache等主要框架和中间件,UI采用Bootstrap、jquery等前端组件 spring boot项目是使用spring boot + thymeleaf 开发个人博客项目

    Spring框架之快速搭建Spring Boot项目教程指南!0基础!!易懂!!.html

    该教程《Spring框架之快速搭建Spring Boot项目教程指南》主要介绍如何从零开始快速搭建和开发一个Spring Boot项目。内容涵盖了Spring Boot的基本概念、环境搭建、项目创建、控制器编写、数据库操作、错误处理、安全...

    spring2.5 mvc 完整项目

    《Spring 2.5 MVC 完整项目:深入解析与实践》 在IT行业中,Spring框架作为Java领域的重要支柱,其MVC(Model-View-Controller)模块在Web应用程序开发中占据着举足轻重的地位。本文将针对“Spring 2.5 MVC 完整...

    普通javaweb项目调用springCloud接口(超级实用,很详细)

    ### 普通JavaWeb项目调用Spring Cloud接口详解 #### 前言 在现代软件开发中,微服务架构已成为构建大型复杂系统的主流选择之一。Spring Boot 和 Spring Cloud 作为构建微服务的重要工具,其易用性和强大的功能受到...

    springcloud项目Demo

    Spring cloud 实战项目(Spring cloud zuul、spring cloud eureka、spring cloud config、 spring cloud admin 、spring cloud 微服务1、微服务2、spring cloud zipkin、网关的熔断+负载均衡、 微服务调用的熔断+...

    spring cloud项目源码

    一个完整结构 spring cloud 分布式项目 基于spring boot

Global site tag (gtag.js) - Google Analytics