在写代码的时候出现过很多的异常( 针对一些不能即时查询出来的情况 ),现在把它们一一整理出来,以后再次出现的时候可以有地方可查。
Caused by: java.sql.BatchUpdateException: You have an error in your SQL syntax; check the manual tha
解决:
使用了数据库的关键字index,如果有类似的错误,看看自己有没有使用关键字!
编写第一个Hibernate程序的时候,就发现出现了错误
Exception in thread "main" org.hibernate.exception.SQLGrammarException: could not insert: [zhongfucheng.domain.User] at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:92) at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66) at org.hibernate.id.insert.AbstractReturningDelegate.performInsert(AbstractReturningDelegate.java:64) at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2327) at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2834) at org.hibernate.action.EntityIdentityInsertAction.execute(EntityIdentityInsertAction.java:71) at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:273) at org.hibernate.event.def.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:320) at org.hibernate.event.def.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:203) at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:129) at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:210) at org.hibernate.event.def.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:56) at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:195) at org.hibernate.event.def.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:50) at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:93) at org.hibernate.impl.SessionImpl.fireSave(SessionImpl.java:713) at org.hibernate.impl.SessionImpl.save(SessionImpl.java:701) at org.hibernate.impl.SessionImpl.save(SessionImpl.java:697) at zhongfucheng.domain.App.main(App.java:39) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at com.intellij.rt.execution.application.AppMain.main(AppMain.java:147) Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'zhongfucheng.user' doesn't exist at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:525) at com.mysql.jdbc.Util.handleNewInstance(Util.java:406) at com.mysql.jdbc.Util.getInstance(Util.java:381) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1030) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956) at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3515) at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3447) at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1951) at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2101) at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2554) at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1761) at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2046) at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1964) at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1949) at org.hibernate.id.IdentityGenerator$GetGeneratedKeysDelegate.executeAndExtract(IdentityGenerator.java:94) at org.hibernate.id.insert.AbstractReturningDelegate.performInsert(AbstractReturningDelegate.java:57) ... 21 more
它说是由引起的...
Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'zhongfucheng.user' does
因为我在配置映射关系的时候,使用了自动增长序列,而我的id字段又是为String,所以出错了!
<!--主键映射,属性名为id,列名也为id--> <id name="id" column="id"> <!--根据底层数据库环境自动增长主键--> <generator class="native"/> </id>
因此, 将JavaBean对象的id设置成int类型就可以解决问题了!
如果出现了这个错误, 看看在使用Hibernate的时候有没有在事务的环境下执行操作!
查看HQL的语句是否写错了, 是否有在From后面加空格 。我就是没有加空格报了错误!
return sessionFactory.getCurrentSession().createQuery("from " + " "+clazzName).list();
如果出现类似下面的错误:
Exception in thread "main" org.hibernate.MappingException: You may only specify a cache for root <class> mappings at org.hibernate.cfg.Configuration.getRootClassMapping(Configuration.java:2724) at org.hibernate.cfg.Configuration.applyCacheConcurrencyStrategy(Configuration.java:2764) at org.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:1375) at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1826) at zhongfucheng.aa.App5.main(App5.java:17) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at com.intellij.rt.execution.application.AppMain.main(AppMain.java:147) Process finished with exit code 1
查看你设置的在 配置文件设置的缓存类是否是继承着别的类, 也就是说:我开始的时候是配置的是Monkey这个类...而Monkey这个类继承着Animal,因此报错了。。
也就是说: Hibernate在二级缓存中不能配置子类
今天在 使用一对多,多对一保存数据的时候出现了这个错误
Hibernate错误:
Exception in thread "main" org.hibernate.TransientObjectException: object references an unsaved transient instance - save the transient instance before flushing: zhongfucheng.domain.Employee
为啥出现这个错误呢??? 在保存对象的时候,发现这个对象还有存在外键,这个外键是在另一个实体里面。这个实体如果不存在或者实体的主键为空,就会报这个错误!
而我在保存的时候, 并没有把拥有外键的对象保存进去....只保存了“一”方面的对象。
//创建对象 Dept dept = new Dept(); dept.setDeptName("开发部"); Employee zs = new Employee(); zs.setEmpName("张珊"); zs.setSalary(1111); Employee ls = new Employee(); ls.setEmpName("李四"); ls.setSalary(2222); //添加关系 dept.getSet().add(zs); dept.getSet().add(ls); session.save(dept); /*当时我没有把Emploey对象保存一起保存...因此出现了这个错误 session.save(zs); session.save(ls);*/
还有一个解决方案: 在映射文件中配置级联保存更新
如果出现类似下面的错误,原因就是JDK版本太高了,我换成1.7就没事了
Caused by: org.springframework.core.NestedIOException: ASM ClassReader failed to parse class file - probably due to a new Java class file version that isn't supported yet: file [C:/SSM/out/production/SSM/zhongfucheng/dao/DeptDao.class]; nested exception is java.lang.IllegalArgumentException
今天在写ajax的时候,后台返回数据给前台, 可是总是不能把数据正常显示在页面上. ..
明明已经进入了success函数了,并且在该代码的前后都能够正常执行..
success: function (responseTest) { if (responseTest == "no") { alert("进来no"); $(this).next("span").html("品牌的名称不能相同!!"); alert("为啥没变?"); isSubmit = false; return false; }else{ $(this).next("span").html(""); } },
调试了半天,原来在ajax中使用this,就不再是我们原来页面上的this了
下面是我找到的答案:
你那个this指向的是ajax的配置,不是按钮,请认真看jquery的API,要做个闭包
所以说,以后 在ajax上就不要随便使用this了!
如果出现类似这样的错误, 检查一下是否sql语句和参数的位置对调了 。
java.lang.RuntimeException: java.sql.SQLException: Too many parameters: expected 0, was given 1 Query: 1 Parameters: [SELECT COUNT(*) FROM book WHERE category_id=?]
今天重新打开原来的项目,想编译一下做下测试,但是一直编译不成功,一个类怎么都找不到。
后来再看一下的时候发现 该类下有个小叉叉
原来是设置了编译时忽略它了,不知道idea为啥帮我这样做。
解决:
今天使用把 eclipse的包复制到Intellij Idea下,结果在编译的时候,它说我的数据是GBK,而Idea默认的数据是UTF-8 ,因此出错了。。。
解决:在项目中直接把对象的encoding.xml配置文件删除了就行了
在Idea导入eclipse项目的时候,启动Tomcat时出现了 严重: Error listenerStart
这么一个错误
导致Tomcat无法启动起来,之前都没有遇到过这种情况....
在网上找了很多资料,有的说是 <listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener>
的问题,有的说是包冲突的问题....
上面的都不能解决我的问题,后来把idea的缓存清掉,重开,然后就解决了这个问题了。。
我也是挺无语的。
如果idea下使用autowire注解注入对象,结果初始化不到类,明明使用快捷键alt+insert是可以找到该注入的对象的。
而我们在使用的时候,缺报错了???
注意,当我们在注入对象的时候,我们留意在编辑面板上是否有对应的对象:
如果没有这个标识的话,我们就查查我们是否把其他模块中的spring配置文件加载了。
当我们配置好pom文件的时候,准备启动Tomcat, Tomcat缺报找不到类的错误. .
可是明明我们的pom文件是没有问题的,在web.xml中也是可以ctrl+鼠标左键把类找到...为啥就报这么一个错误呢??
另我百思不得其解,我开始思考的是不是pom错了,可是折腾一番缺没发现错误...
后来去找了相关的参考博文:
参考博文1
参考博文2
我就尝试根据他们说讲的,
上面这两个操作并不能解决掉我的问题...
后来我又怀疑是不是maven配置错误了....就很烦..其实是没有错误的...
值得声明的是: 我原本是没有使用任何模版去创建maven项目的【我学的时候就没有,因此都是自己手动创建的】
最后,我 使用webapp模版去生成maven项目,然而却可以运行成功了【就不知道缺少了哪里东西...】
如果遇到了在Idea下找不到类的情况下,可以借鉴一下....
另外,如果知道原因的同学可在评论下告诉我,谢谢!
IDEA 进行编译代码的时候,特别是新项目 特别容易出现 编码错误,但是 File-Encoding中设置的又没有问题,而且maven 是能打包的,就是用 idea 自带的 编译的时候 就会出现提示 找不到字符,错误开头会提示
未结束的注释、非法类型的开始、缺少符号
java: Multiple encodings set for module chunk test "GBK" will be used by compiler
但是我们的 设置里面 设置的 是 UTF-8 那么显然哪个地方把它设置为 GBK 了 ;
最后解决办法 是: 检查.idea/encodings.xml是否对某些类指定了charset,删除即可
今天在做SSH项目的时候,出现了这个错误。百思不得其解,网上的答案都不能解决我的问题.....
后来,一气之下就重新写, 写了之后发现在JSP遍历集合的时候出错了 。
<s:iterator value="rolePrivilegeSet"> <s:property value="#privilegeMap[compositeKey.code]"/> </s:iterator>
最后发现是Hibernate懒加载的问题,在配置文件中设置不懒加载,就解决掉这个问题了。
Struts Problem Report Struts has detected an unhandled exception: Messages: Stream closed File: org/apache/jasper/runtime/JspWriterImpl.java Line number: 210 Stacktraces java.io.IOException: Stream closed org.apache.jasper.runtime.JspWriterImpl.ensureOpen(JspWriterImpl.java:210) org.apache.jasper.runtime.JspWriterImpl.flushBuffer(JspWriterImpl.java:115) org.apache.jasper.runtime.JspWriterImpl.flush(JspWriterImpl.java:177) org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:915) org.apache.jasper.runtime.PageContextImpl.include(PageContextImpl.java:656) org.apache.struts2.dispatcher.ServletDispatcherResult.doExecute(ServletDispatcherResult.java:132) org.apache.struts2.dispatcher.StrutsResultSupport.execute(StrutsResultSupport.java:188) com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:369) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:273) org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:54) org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:564) org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:81) org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:99) org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:244) org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240) org.apache.catalina.core.StandardContextValve.__invoke(StandardContextValve.java:161) org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java) org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164) org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100) org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:550) org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:380) org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:243) org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:188) org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:288) java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) java.lang.Thread.run(Thread.java:722)
二次更新:
我把getContextMap()换成是getApplicatoin(),也会出现这样的错误....ActionContext.getContext().getContextMap().put("privilegeMap", Constant.PRIVILEGE_MAP);
留意域对象有没有错误!
常见的Maven错误
当遇到401错误的时候,看看自己当前使用的Maven是集成的还是自己下载的,然后去配置setting.xml文件
在做项目的时候,关联List集合的数据可以使用Collection标签来进行关联。
在教程里边是使用ofType属性拿到数据的, 但我觉得resultMap和ofType没什么区别呀。于是我就使用了resultMap属性了。
<!--与最小销售单元的关系--> <collection property="ebSkus" resultMap="com.rl.ecps.sqlMap.EbSkuMapper.BaseResultMap"> <!--最小销售单元与规格值的关系--> <collection property="specList" resultMap="com.rl.ecps.sqlMap.EbSpecValueMapper.BaseResultMap"></collection> </collection>
但是死活拿不到speceList的数据....
<collection property="skuList" ofType="com.rl.ecps.model.EbSku"> <id column="SKU_ID" jdbcType="DECIMAL" property="skuId" /> <result column="ITEM_ID" jdbcType="DECIMAL" property="itemId" /> <result column="SKU" jdbcType="VARCHAR" property="sku" /> <result column="SKU_PRICE" jdbcType="DECIMAL" property="skuPrice" /> <result column="SHOW_STATUS" jdbcType="DECIMAL" property="showStatus" /> <result column="STOCK_INVENTORY" jdbcType="DECIMAL" property="stockInventory" /> <result column="SKU_UPPER_LIMIT" jdbcType="DECIMAL" property="skuUpperLimit" /> <result column="LOCATION" jdbcType="VARCHAR" property="location" /> <result column="SKU_IMG" jdbcType="VARCHAR" property="skuImg" /> <result column="SKU_SORT" jdbcType="DECIMAL" property="skuSort" /> <result column="SKU_NAME" jdbcType="VARCHAR" property="skuName" /> <result column="MARKET_PRICE" jdbcType="DECIMAL" property="marketPrice" /> <result column="CREATE_TIME" jdbcType="TIMESTAMP" property="createTime" /> <result column="UPDATE_TIME" jdbcType="TIMESTAMP" property="updateTime" /> <result column="CREATE_USER_ID" jdbcType="DECIMAL" property="createUserId" /> <result column="UPDATE_USER_ID" jdbcType="DECIMAL" property="updateUserId" /> <result column="ORIGINAL_SKU_ID" jdbcType="DECIMAL" property="originalSkuId" /> <result column="LAST_STATUS" jdbcType="DECIMAL" property="lastStatus" /> <result column="MERCHANT_ID" jdbcType="DECIMAL" property="merchantId" /> <result column="SKU_TYPE" jdbcType="DECIMAL" property="skuType" /> <result column="SALES" jdbcType="DECIMAL" property="sales" /> <result column="RES_CODE" jdbcType="VARCHAR" property="resCode" /> <result column="PACK_ID" jdbcType="DECIMAL" property="packId" /> <collection property="specList" ofType="com.rl.ecps.model.EbSpecValue"> <id column="SPEC_ID" jdbcType="DECIMAL" property="specId" /> <result column="SKU_ID" jdbcType="DECIMAL" property="skuId" /> <result column="FEATURE_ID" jdbcType="DECIMAL" property="featureId" /> <result column="SPEC_VALUE" jdbcType="VARCHAR" property="specValue" /> </collection> </collection>
如果关联的对象仅仅是当前对象的本身,那么我们可以使用resultMap
如果关联对象中还有其他关联属性的话,那只能使用ofType了。
上次遇到的是向mysql插入中文数据,中文数据乱码了。这次直接就不能插入中文数据了!!!!
参考博文:http://blog.csdn.net/generalyy0/article/details/7598027
总结:
①: 检查数据表所有字段的状态
show full columns from 表名;
②:发现Collation项非utf8,修改它! 【两处的字段名要相同的】
alter table 表名 change 字段名 字段名 varchar(100) character set utf8 collate utf8_unicode_ci not null default '';
例子:
alter table a_employee change password password varchar(255) character set utf8 collate utf8_unicode_ci not null default '';
在使用JDBC连接Mysql数据库, 向Mysql数据库插入一条带有中文的记录,在查询的时候,发现全都是??????
查询了一些资料, 最简单的解决办法如下 :
①:设置当前库的编码
ALTER DATABASE zhongfucheng CHARACTER SET utf8;
②:设置当前表的编码
ALTER TABLE customer CHARACTER SET utf8;
③:使用JDBC连接数据库时,指定编码
jdbc:mysql://localhost:3306/zhongfucheng?characterEncoding=utf8
当我们完成这三个步骤的时候,再插入数据:
如果出现了类似这样的警告: Request method DELETE not supported
但是我们的页面可以正常的运行,那么就去查看一下。 Controller是否返回了JSON对象,而我们没有写@Resoponse注解。
如果在使用SpringMVC中使用文件上传的MultipartFile对象时,出现了以下的错误:
Could not instantiate bean class[org.springframework.web.multipart.MultipartFile]: Specified class
那么就在参数前加入: @RequestParam
注解即可...
原因就是传过来的参数名称和我们在Controller参数的名称不一致!
今天在写多个删除功能的时候出现了这么一个错误: 意思是删除操作的时候,没有找到对应的外键。
Cannot delete or update a parent row: a foreign key constraint fails (`ssh03`.`role_privilege`, CONSTRAINT `FK45FBD628F05C38CB` FOREIGN KEY (`role_id`) REFERENCES `role` (`roleId`)) Cannot delete or update a parent row: a foreign key constraint fails (`ssh03`.`role_privilege`, CONSTRAINT `FK45FBD628F05C38CB` FOREIGN KEY (`role_id`) REFERENCES `role` (`roleId`)) Could not execute JDBC batch update Could not execute JDBC batch update; SQL [delete from role where roleId=?]; constraint [null]; nested exception is org.hibernate.exception.ConstraintViolationException: Could not execute JDBC batch update
org.springframework.dao.DataIntegrityViolationException: Could not execute JDBC batch update; SQL [delete from role where roleId=?]; constraint [null]; nested exception is org.hibernate.exception.ConstraintViolationException: Could not execute JDBC batch update
在网上找了很久,都没有找到对应的错误。。 我的删除操作是先查找Role对象,再通过删除它 。
后来debug起来又是匪夷所思的: 后台能够得到外界传递过来的id
在查询对象的时候,就死活查不了外键的数据【让我搞了很久很久】。。
最后发现id上多了一个空格???????至于为什么多了一个空格,,我现在还不知道。。。 于是把空格去掉,就解决这个bug了 。。。
/*批量删除*/ public String deleteSelect() { for (String s : selectedRow) { roleServiceImpl.delete(s.trim()); } return "list"; }
.... 如果知道为什么会多出一个空格的,请在评论下告诉我 ....
如果在SSM整合的时候出现以下的错误:
留意一下是不是既在Mybatis配置文件中加载了映射文件,又在Spring配置文件中使用扫描式去加载映射文件了。两者是不能够重合使用的!
Caused by: org.springframework.core.NestedIOException: Failed to parse mapping resource: 'file [C:/SSM/out/production/SSM/zhongfucheng/dao/DeptMapper.xml]'; nested exception is java.lang.RuntimeException: Error parsing Mapper XML. Cause: java.lang.IllegalArgumentException: Result Maps collection already contains value for zhongfucheng.entity.DeptMapper.deptResultMap
这次在上传的时候发现JSON返回的值是这样子的:
而后台明明返回的是原生的JSON数据:
{"realPath":"http://localhost:8081/file/upload/20170904190650266529.png","relativePath":"/upload/20170904190650266529.png"}
在前端我们可以把无关的数据删除了,因此, 解析的JSON代码如下 :
var jsonObj = $.parseJSON(responseText.replace(/<.*?>/ig,""));
当然了,在别的博客看到这样的解决思路:
可以参考一下,我并没有证实..
今天在使用反射的时候,出现了 java.lang.IllegalArgumentException: object is not an instance of declaring class
错误...具体是invoke()调用的时候
String returnFlag = (String) m.invoke(t, request, response);
今天做动态代理的时候,出现了 java.lang.NoSuchMethodException
错误.....主要是我使用method反射方法的时候,忘记把参数带上了,于是一直就出现这个错误......
总结起来其实就是一句话: 反射的时候要记得参数!!!!
//反射真实具体方法的时候,要把参数带上!!!! Method method1 = t.getClass().getMethod(methodName,method.getParameterTypes());
第一个参数应该是调用该方法的对象,而我粗心直接把Class对象给过去了..... 实际上第一个参数应该是Object
在使用C3P0连接池的时候,发现了这个错误....原来要使用C3P0的使用, 不仅仅要导入 c3p0-0.9.2-pre1.jar
这个jar包,还要导入 mchange-commons-0.2.jar
这个jar包
反正我用Oracle使用C3P0连接池就出现了这种情况!
今天在使用SSH框架做项目的时候出现了这个错误,找了我非常非常多的时间!!!!!!!
Struts Problem Report Struts has detected an unhandled exception: Messages: 1.Provided id of the wrong type for class zhongfucheng.user.entity.User. Expected: class java.lang.String, got class zhongfucheng.user.entity.User 2.Provided id of the wrong type for class zhongfucheng.user.entity.User. Expected: class java.lang.String, got class zhongfucheng.user.entity.User; nested exception is org.hibernate.TypeMismatchException: Provided id of the wrong type for class zhongfucheng.user.entity.User. Expected: class java.lang.String, got class zhongfucheng.user.entity.User File: org/hibernate/event/def/DefaultLoadEventListener.java Line number: 135
去网上搜也有类似的, 一般都是Integer和String匹配不同。。。而我明明要的是String,给了我一个User对象 。
Expected: class java.lang.String, got class zhongfucheng.user.entity.User
原来我在Service层的时候根据id删除记录,我把对象传递过去了。因为我的User对象也实现了Serializable接口!!!!这样就没有报任何错误!!!
原本我只要把id传递过去就行了!!!!!!我传了对象!!!很烦!!!!!
将网上上线了以后,发送邮件却发不了了...明明在本地上还是可以发送的。
原因如下:
http://blog.csdn.net/a2279860a/article/details/59012885
如果用的是阿里云的话,那么很可能我们得使用587端口。!
问题原因:XML文件中有多余的字符,是不是在Ctrl+V的时候把不该弄的东西弄进去了。 空格也有可能是一个问题
参考博文: http://blog.csdn.net/ludonqin/article/details/51056837
在刚开始遇到的时候还以为是Spring配置哪里错误了,结果搞了那么久,才知道Quartz与Spring注入对象是不关联的。。
因为Quartz的业务Job对象是由Quartz来自行管理的....
参考博文: http://www.cnblogs.com/dupang/p/6063734.html#3749301 和 https://www.tuicool.com/articles/Qjyamu
我是在这篇中找到答案的: http://www.cnblogs.com/feiqihang/p/5358100.html ,与之类似的: http://blog.csdn.net/himly_zhang/article/details/59112721
还有一点需要说明的是,如果使用了 SpringBeanAutowiringSupport.processInjectionBasedOnCurrentContext(this);
的话,那么JobDetail传入的参数就需要使用DataMap来获取了,不能使用成员变量+setter方法获取了...
今天在做项目的时候,使用Junit测试Quartz写得对不对的时候,死活得不到激活,可是sleep了之后却有结果了。
这令我百思不得其解,而在public static void main方法中却可以得到结果,最后查到资料:
http://blog.csdn.net/ubuntu_yanglei/article/details/62041724
因为,job是一个线程,junit线程结束了,job线程还在运行,导致了job获取不到一些bean;
解决:
junit线程sleep一段时间,足够job去启动测试。
当我们使用jersy把图片上传到我们的图片服务器中【tomcat】,我们可能会有以下的错误:
returned a response status of 403 OR 409
403和409我都遇到过, 不过都是把我们的配置文件修改成可写即可!
<servlet> <servlet-name>default</servlet-name> <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class> <init-param> <param-name>debug</param-name> <param-value>0</param-value> </init-param> <init-param> <param-name>readonly</param-name> <param-value>false</param-value> </init-param> <init-param> <param-name>listings</param-name> <param-value>false</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet>
我使用的开发环境是idea,因此只能修改原有的总Tomcat配置文件了:
加入高亮标识出来的那段代码,重启服务器即可!
2018年1月10日09:41:34
还有就是在upload目录下先得有东西。。不然还是会报上面那个错误。(随便丢一个文件进去->1.jsp)
Spring Boot: HttpMediaTypeNotAcceptableException: Could not find acceptable representation原因及解决方法:
今天在写项目的时候出现了这个问题,上网查了一下资料。主要是以下两种情况:
后来,我弄了一下,都不是上面两种情况。
最后发现是由于在跳转的时候,Web服务器的路径改变了。导致一些本来能够加载的静态资源,现在加载不到了。
最后改写了路径,就没有这个错误了。
解决博文:https://segmentfault.com/a/1190000004318632
我使用的是windows来进行开发的。我原本以为在IDEA下使用命令行也是可以解决的。可是在运行上篇博文的第三步的时候就一直报错。
说我的email不对、
后来使用windows下git的命令行方式就可以了。
使用Git不知道为啥在操作的时候切换到head了,于是在提交的时候老是有:detached head
于是上网查找了资料,就说head指向了?????,于是就切换回来。
git checkout master