Java编程ssh整合常见错误解析

1. org.springframework.transaction.CannotCreateTransactionException: Could not open JPA EntityManager for transaction; nested exception is java.lang.UnsupportedOperationException: Not supported by BasicDataSource

Spring不能为JAP创建事务。原因是bean.xml设定了数据源persistence.xml中要把数据库连接去掉

<property name="hibernate.connection.username" value="xxx"/>
<property name="hibernate.connection.password" value="xxx"/>
<property name="hibernate.connection.url" value="jdbc:mysql://localhost:3306/xxx? useUnicode=true&characterEncoding=UTF-8"/>

2. org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'productServiceBean': Injection of persistence fields failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [beans.xml]: Invocation of init method failed; nested exception is javax.persistence.PersistenceException: org.hibernate.MappingException: Could not determine type for: java.util.Set, for columns: [org.hibernate.mapping.Column(childtypes)]

原因:@Id @GeneratedValue(strategy = GenerationType.AUTO)

这个注解写在get方法上不要写在属性声明上。

3. javax.persistence.PersistenceException: org.hibernate.exception.DataException: could not insert: [com.yufei.bean.product.ProductType]
Caused by: java.sql.SQLException: Data too long for column 'visible' at row 1

原因:实体类字段中的visible插入到数据库中所对应的值为ASCII码味49,超出范围。

换个mysql的jar包解决问题。

4. web容器出现

严重: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory

此问题多样化,查阅资料说是jar包commons-logging.jar问题 ,但解决的方式是重新导入项目...

5. org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'productTypeService': Injection of persistence fields failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [beans.xml]: Invocation of init method failed; nested exception is java.lang.NoSuchMethodError: org.objectweb.asm.ClassVisitor.visit(IILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)V

原因: Spring2.5下asm-2.2.3.jar 与hibernate下的asm.jar 冲突, 删除asm-2.2.3.jar 。

6. Failed to load or instantiate TagLibraryValidator class: org.apache.taglibs.standard.tlv.JstlCoreTLV
org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:40)
org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:407)
org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:88)
org.apache.jasper.compiler.Parser.processIncludeDirective(Parser.java:340)

原因:lib中缺少standard.jar , jstl.jar

7. java.lang.NoSuchFieldError: DIRECTORY
at net.fckeditor.connector.impl.AbstractLocalFileSystemConnector.getFolders(AbstractLocalFileSystemConnector.java:140)
at net.fckeditor.connector.Dispatcher.getFoldersAndOrFiles(Dispatcher.java:204)
at net.fckeditor.connector.Dispatcher.doGet(Dispatcher.java:156)
at net.fckeditor.connector.ConnectorServlet.doGet(ConnectorServlet.java:89)

原因:包冲突,删掉struts1.3自带的commons-io-1.1.jar,commons-fileupload-1.1.1.jar,加入commons-io-1.3.2.jar,commons-fileupload-1.2.1.jar

8.IOException while loading persisted sessions: java.io.EOFException
java.io.EOFException
at java.io.ObjectInputStream$PeekInputStream.readFully(ObjectInputStream.java:2281)
at java.io.ObjectInputStream$BlockDataInputStream.readShort(ObjectInputStream.java:2750)
at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:780)
at java.io.ObjectInputStream.<init>(ObjectInputStream.java:280)

原因是tomcat对硬盘的session读取失败,彻底解决办法一下:将work下面的文件清空,主要是*.ser文件,或者只是删除掉session.ser即可以解决。

9.javax.persistence.PersistenceException: org.hibernate.PersistentObjectException: detached entity passed to persist: com.dalton.domain.User
org.hibernate.ejb.AbstractEntityManagerImpl.throwPersistenceException

原因:

(1) 是entity bean的 @Id标记错了,标记在了String 等类型上
(2) 对id字段手工设定了值。

10 org.springframework.web.context.ContextLoader(line:215) - Context initialization failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with
name 'brand' defined in file [D:\Tomcat6\webapps\autoet\WEB-INF\classes\com\autoet\
action\brand\BrandAction.class]: Instantiation of bean failed; nested exception is
org.springframework.beans.BeanInstantiationException: Could not instantiate bean
class [com.autoet.action.brand.BrandAction]: Constructor threw exception; nested
exception is java.lang.NullPointerException

原因:项目使用了<context:component-scan/>扫描机制, 而类BrandAction没有标注为原型,
为类添加 @Scope("prototype")标注(与@Controller相同位置)

11 org.hibernate.tool.hbm2ddl.SchemaUpdate(line:222) - could not complete schema update
java.lang.UnsupportedOperationException: Not supported by BasicDataSource

原因 spring.xml 与 persistence.xml中都配置了数据库连接,注释掉persistence.xml中的连接信息

12 org.apache.struts2.dispatcher.Dispatcher(line:27) - Dispatcher initialization failed
Unable to load configuration. - [unknown location]
Cannot locate the chosen ObjectFactory implementation: spring - [unknown location]

原因 struts.xml中使用了<constant name="struts.objectFactory" value="spring"/>,将其注释掉

总结

以上就是本文关于Java编程ssh整合常见错误解析的全部内容,希望能对大家有所帮助。如有不足之处,欢迎留言指出,小编会及时更正。感兴趣的朋友可以参阅:Kryo框架使用方法代码示例、Java集合框架源码分析之LinkedHashMap详解、浅谈Zookeeper开源客户端框架Curator等以及本站其他相关专题,感谢大家对本站的支持!

(0)

相关推荐

  • 详解JAVAEE——SSH三大框架整合(spring+struts2+hibernate)

    一.整合原理 二.导包(41个) 1.hibernate (1)hibernate/lib/required (2)hibernate/lib/jpa | java persist api java的持久化规范(接口) (3)数据库驱动 2.struts2 (1)struts-blank.war/WEB-INF/lib/* 注意:javassist-3.18.1-GA.jar包与hibernate中的重复(只保留高版本即可) (2)struts整合spring插件包 注意:这个包一旦导入,那么s

  • Java编程ssh整合常见错误解析

    1. org.springframework.transaction.CannotCreateTransactionException: Could not open JPA EntityManager for transaction; nested exception is java.lang.UnsupportedOperationException: Not supported by BasicDataSource Spring不能为JAP创建事务.原因是bean.xml设定了数据源per

  • Java编程时间日期API实例解析

    本文实例主要是关于Java8中的新特性,时间日期api的相关实例,具体如下: package com.effective.common.base.date; import java.time.Instant; import java.time.LocalDate; import java.time.LocalDateTime; import java.time.LocalTime; import java.time.Period; import java.time.ZoneId; import

  • Jmeter工作原理及常见错误解析

    工作原理 错误解析汇总 JMeter结果树响应数据中文乱码解决办法 打开jmeter配置文件搜索encoding修改编码格式改为utf-8 Jmeter服务器反馈登陆不成功问题 导入到JMeter后,执行场景,发现登录校验成功,但后续的动作都未成功: 问题原因:在登录校验成功后,进行重定向时,Cookie被重置的: 解决办法:校验页面的HTTP请求中,有看到一个:自动重定向.跟随重定向的设置: 修改默认的"自动重定向"为"跟随重定向"重新执行场景.(改为追随重定向)

  • Java编程探索之泛型擦除实例解析

    1.问题引出 源码: public static void main(String[] args) { List<Integer> a = new ArrayList<Integer>(); List<String> b = new ArrayList<String>(); System.out.println(a.getClass() == b.getClass());//结果true } 编译后L public static void main(Stri

  • Java编程常见内存溢出异常与代码示例

    Java 堆是用来存储对象实例的, 因此如果我们不断地创建对象, 并且保证 GC Root 和创建的对象之间有可达路径以免对象被垃圾回收, 那么当创建的对象过多时, 会导致 heap 内存不足, 进而引发 OutOfMemoryError 异常. /** * @author xiongyongshun * VM Args: java -Xms10m -Xmx10m -XX:+HeapDumpOnOutOfMemoryError */ public class OutOfMemoryErrorTe

  • java编程多线程并发处理实例解析

    本文主要是通过一个银行用户取钱的实例,演示java编程多线程并发处理场景,具体如下. 从一个例子入手:实现一个银行账户取钱场景的实例代码. 第一个类:Account.java 账户类: package cn.edu.byr.test; public class Account { private String accountNo; private double balance; public Account(){ } public Account(String accountNo,double

  • java避免死锁的常见方法代码解析

    死锁 索是一个非常有用的工具,运用场景非常多,因为它使用起来非常简单,而且易于理解.但同时它也会带来一些困扰,那就是可能会引起死锁,一旦产生死锁,就会造成系统功能不可用.让我们先来看一段代码,这段代码会引起死锁,使线程 thread_1 和线程 thread_2 互相等待对方释放锁. package thread; public class DeadLockDemo { private static String A = "A"; private static String B = &

  • Java并发编程:volatile关键字详细解析

    volatile这个关键字可能很多朋友都听说过,或许也都用过.在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果.在Java 5之后,volatile关键字才得以重获生机. volatile关键字虽然从字面上理解起来比较简单,但是要用好不是一件容易的事情.由于volatile关键字是与Java的内存模型有关的,因此在讲述volatile关键之前,我们先来了解一下与内存模型相关的概念和知识,然后分析了volatile关键字的实现原理,最后给出了几个使用vola

  • Java编程接口回调一般用法代码解析

    接口回调是指:可以把使用某一接口的类创建的对象的引用赋给该接口声明的接口变量,那么该接口变量就可以调用被类实现的接口的方法.实际上,当接口变量调用被类实现的接口中的方法时,就是通知相应的对象调用接口的方法,这一过程称为对象功能的接口回调. Java接口回调一般用法:实现接口实际上和继承抽象类类似,只不过继承是在类的层面上操作,接口是在方法和常量集合的层面上操作,接口比抽象类更抽象.更简洁.可以把实现接口看成继承特定的一个或多个方法以及一些常量,关于接口的具体规则这里不赘述. 为什么要使用接口和抽

  • java多线程编程同步器Future和FutureTask解析及代码示例

    publicinterfaceFuture<V>Future表示异步计算的结果.它提供了检查计算是否完成的方法,以等待计算的完成,并获取计算的结果.计算完成后只能使用get方法来获取结果,如有必要,计算完成前可以阻塞此方法.取消则由cancel方法来执行.还提供了其他方法,以确定任务是正常完成还是被取消了.一旦计算完成,就不能再取消计算.如果为了可取消性而使用Future但又不提供可用的结果,则可以声明Future<?>形式类型.并返回null作为底层任务的结果. Future主要

随机推荐