java控制台常见报错(有坑的)

使用jpa常见bug

关闭EntityManager的时间太早了,解决自己配置过滤器对没有返回的数据进行放行

could not initialize proxy - no Session

Error reading 'name' on type cn.itsource.jpa.domain.ProductDir_$$_jvst42f_1

org.hibernate.LazyInitializationException: could not initialize proxy - no Session

保存的时候选择产品类型为请选择,提交到后台的值为-1,数据库里面产品类型没有-1,所有报错

Cannot add or update a child row: a foreign key constraint fails (`jpa`.`t_product`, CONSTRAINT `FK_e4mu8be64w6bakl8kj2fbqrks` FOREIGN KEY (`dir_id`) REFERENCES `t_productdir` (`id`))

could not execute statement

org.hibernate.exception.ConstraintViolationException: could not execute statement

类型转换异常,返回对象数组Object[],强转为Emploee报错了

java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to cn.itsource.jpa.query.Employee

select o.name,o.department.name from Employee o

查询的时候需要2个参数,一个都没有设置

java.lang.IllegalArgumentException: org.hibernate.QueryException: Expected positional parameter count:2

 actual parameters: [] [select o from Employee o where o.department.name=? or o.department.name=?]

临时状态  没有ID会报错 不能保存

javax.persistence.RollbackException: Error while committing the transaction

Caused by: java.lang.IllegalStateException:

org.hibernate.TransientPropertyValueException:

object references an unsaved transient instance - save the transient instance before flushing : cn.yyg.domain.Product.dir -> cn.yyg.domain.ProductDir

Oracle数据库不支持identity主键生成策略

org.hibernate.MappingException: org.hibernate.dialect.Oracle10gDialect does not support identity key generation

MySQL数据库不支持sequences主键生成策略

org.hibernate.MappingException: org.hibernate.dialect.MySQLDialect does not support sequences

持久状态的对象是不能修改OID,也就是不能修改主键

org.hibernate.InstantiationException: No default constructor for entity

关闭资源太早,必须在获取完关联对象之后才进行关闭

org.hibernate.LazyInitializationException: could not initialize proxy - no Session

出现监听异常的处理方法,修改文件以下文件

entityManager.close();

The Network Adapter could not establish the connection

事务没有配置成功(或者你配置错了)

javax.persistence.TransactionRequiredException: No transactional EntityManager available

要保持的对象持有一个未持久化的对象导致:配置cascade关键字,级联操作cascade={CascadeType.PERSIST,CascadeType.MERGE}

Causedby:java.lang.IllegalStateException: org.hibernate.TransientPropertyValueException: object references an unsaved transient instance - save the transient instance before flushing : com.yyg.yxb.domain.Product.types -> com.yyg.yxb.domain.ProductType

at org.hibernate.jpa.spi.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1760)

at org.hibernate.jpa.spi.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1677)

at org.hibernate.jpa.internal.TransactionImpl.commit(TransactionImpl.java:82)

object references an unsaved transient instance - save the transient instance before flushingcom.yyg.yxb.domain.Product.types -> com.yyg.yxb.domain.ProductType

修改的时候数据库没有对应的数据会保存时要报错,配置级联会自动生成缺失的数据 ID生成策略  我设置的自动。解决办法要么去掉 @GeneratedValue(strategy = GenerationType.IDENTITY) 要么在多对一上配置cascade = CascadeType.REFRESH

org.hibernate.PersistentObjectException: detached entity passed to persist: com.yyg.yxb.domain.ProductType

===============================================================================================

其它bug

通过有参构造方法创建对象,没有找到构造器,需要给构造器参数赋值

Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [cn.yyg.domain.MyBean]: No default constructor found; nested exception is java.lang.NoSuchMethodException: cn.yyg.domain.MyBean.<init>()

at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:85)

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:1088)

... 41 more

没有加classpath:jdbc....,测试不影响

Caused by: java.io.FileNotFoundException: Could not open ServletContext resource [/jdbc.properties]

spring配置问题

spring容器没有启动

解决<!-- 添加一个监听器,来实例化spring容器 -->

<listener>

<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>

</listener>
严重: Exception starting filter struts2
Class: com.opensymphony.xwork2.spring.SpringObjectFactory
File: SpringObjectFactory.java
Method: getClassInstance
Line:245com/opensymphony/xwork2/spring/SpringObjectFactory.java:245:-1
at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:493)
at org.apache.struts2.dispatcher.ng.InitOperations.initDispatcher(InitOperations.java:74)
at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.init(StrutsPrepareAndExecuteFilter.java:57)
at org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:279)
at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:260)
at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:105)
at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4700)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5340)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1408)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1398)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)

Caused by: java.lang.NullPointerException at com.opensymphony.xwork2.spring.SpringObjectFactory.getClassInstance(SpringObjectFactory.java:245)
at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.verifyResultType(XmlConfigurationProvider.java:608)
at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.addResultTypes(XmlConfigurationProvider.java:578)
at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.addPackage(XmlConfigurationProvider.java:534)
at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadPackages(XmlConfigurationProvider.java:295)
at org.apache.struts2.config.StrutsXmlConfigurationProvider.loadPackages(StrutsXmlConfigurationProvider.java:112)
at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:264)
at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:67)
at org.apache.struts2.dispatcher.Dispatcher.getContainer(Dispatcher.java:967)
at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:435)
at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:479)
... 14 more

找不到spring加载资源

解决<!-- 添加一个上下文的初始化参数 -->

<context-param>

<param-name>contextConfigLocation</param-name>

<param-value>classpath:applicationContext.xml</param-value>

</context-param>
Caused by: java.io.FileNotFoundException: Could not open ServletContext resource [/WEB-INF/applicationContext.xml]
at org.springframework.web.context.support.ServletContextResource.getInputStream(ServletContextResource.java:141)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:330)
... 21 more

提示告诉开发者你没有配置文件上传解析器。

 Expected MultipartHttpServletRequest: is a MultipartResolver configured?

表示在当前spring的配置里面没有找到处理/controller3.do的控制器,springmvc配置不对

No mapping found for HTTP request with URI [/controller3.do] in DispatcherServlet with name 'dispatcher'

添加aop的jar文件

java.lang.ClassNotFoundException: org.springframework.aop.TargetSource

注册(替换)视图解析器

HTTP Status 500 - Circular view path [param1]: would dispatch back to the current handler URL [/param1] again. Check your ViewResolver setup! (Hint: This may be the result of an unspecified view, due to default view name generation.)

================================================================

Activiti查看流程部署延迟加载错误,不能写 原因是processDefinition有些属性是延迟加载,当把list转为json对象之后它不是一个持久化对象,service结束、与数据库断开连接,加载不了下面3个属性值,一个service对应一个session,解决办法有两个,写类继承、二map封装需要的字段;

Could not write content: Direct self-reference leading to cycle (through reference chain: java.util.ArrayList[0]->org.activiti.engine.impl.persistence.entity.ProcessDefinitionEntity["processDefinition"]); nested exception is com.fasterxml.jackson.databind.JsonMappingException: Direct self-reference leading to cycle (through reference chain: java.util.ArrayList[0]->org.activiti.engine.impl.persistence.entity.ProcessDefinitionEntity["processDefinition"])
description The server encountered an internal error that prevented it from fulfilling this request.
exception
org.springframework.http.converter.HttpMessageNotWritableException: Could not write content: Direct self-reference leading to cycle (through reference chain: java.util.ArrayList[0]->org.activiti.engine.impl.persistence.entity.ProcessDefinitionEntity["processDefinition"]); nested exception is com.fasterxml.jackson.databind.JsonMappingException: Direct self-reference leading to cycle (through reference chain: java.util.ArrayList[0]->org.activiti.engine.impl.persistence.entity.ProcessDefinitionEntity["processDefinition"])
org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.writeInternal(AbstractJackson2HttpMessageConverter.java:238)
org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.writeInternal(AbstractJackson2HttpMessageConverter.java:231)
org.springframework.http.converter.AbstractHttpMessageConverter.write(AbstractHttpMessageConverter.java:208)
org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor.writeWithMessageConverters(AbstractMessageConverterMethodProcessor.java:161)
org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor.writeWithMessageConverters(AbstractMessageConverterMethodProcessor.java:101)
org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.handleReturnValue(RequestResponseBodyMethodProcessor.java:199)
org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite.handleReturnValue(HandlerMethodReturnValueHandlerComposite.java:71)
org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:128)
org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethod(RequestMappingHandlerAdapter.java:781)
org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:721)
org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:83)
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:943)
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:877)
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:966)
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:857)
javax.servlet.http.HttpServlet.service(HttpServlet.java:624)
org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:842)
javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值