idea创建spring项目报错汇总

一、idea创建spring项目报错

1、保存数据至数据库为何部分字段为null

@RequestBody部分属性为null的问题

Controller方法中使用@RequestBody接收到的值为空?

关于Springboot | @RequestBody 接收到的参数对象属性为空的问题

2、spring项目中,sql映射类型不一致,异常报错

解决异常报错java.sql.SQLException: Value '0000-00-00 00:00:00' can not be represented as java.sql.Timestamp

除了这种,还有别的类型,都可以归类为一种,就是处理myql字段,通常这种异常报错,copy相应的sql代码并不会出现什么问题,基本可以成功在直接数据库的操作中得到一个结果集,但是,系统会异常,因为字段类型和项目中返回数据集中某个字段类型不一致;

  • 诸如这里是因为时间,存在时间类型的字段,为0000-00-00这个值没有意义,在正式库中不会出现,测试库中会有这个报错导致整个功能不能成功进行排查测试;按照上面的链接进行处理,目前,不成功;

但是因为是测试库数据不合理,所以我直接修改测试库数据内容即解决,解决方案治标不治本;

  • 另一个问题是同样在测试过程中,数据查询一直报错,原因排查到是因为,数据库中a 字段为varchar字符串类型,但是实体类中为Integer类型,a数值通常为1,2,3,5这几个表示状态的数值,而且实体类是一个共用的返回类型,不能轻易更改类型,这里原系统有考虑到这个问题,直接在service中写了一个方法,先把a保存为另一个名称的字段,然后把这个字段用java代码使用数据字典这种类型的数据,进行获取具体的Integer类型字段,然后再对a字段赋值,保存,就没有问题了;

结论:

这种情况通常会是数据库操作没有问题,但是系统没办法成功运行,代码会报错;隐藏性比较高,容易找不到具体缘由;因此在此记录,避免浪费时间;

3、idea使用Easycode新建UserService无法正常生成;

3.1 报错内容

3.2 报错原因

因为不知名原因,把UserService设置成一个模板类型,个人解决方案不同于参考链接,但性质一致;

如下图,最后在相应位置发现有UserService,这就是唯一创建UserService这个文件的原因了;

已解决;

3.3 解决方案

Unable to parse template "Class" Error message: Selected class file name 'ProductServlet.java' mappe

二、EasyCode类型的配置

1、使用default_srm一系列配置生成代码结构

1.1 首先是dao层代码未添加@Mapper 注解导致项目无法正常启动;

1.2 default_srm系列配置中文乱码

设置成XX.vm的文件格式,然后记得apply,重新设置成中文不乱码模式,然后导出配置;

关于EasyCode模板配置以及一些问题的处理:

easycode使用碰到的问题以及自定义的模板

改模板仅供参考其中的中文内容部分,对照EasyCode中Default_SRM配置乱码部分;目前EasyCode配置已备份至20220331;可以成功生成mp结构,但是,配置本身的中文乱码,参照价值为零;

三、项目启动型错误

1、项目启动失败 原因为端口被占用

触发条件:

通常为当前项目启动同时有页面在运行,占用端口造成的(猜测)

解决方案:

解决 Disconnected from the target VM, address: ‘127.0.0.1:51458‘, transport: ‘socket‘

2、项目多模块类型启动报错 about maven

问题描述:

[ERROR] [Help 1] DependencyResolutionException - Apache Maven - Apache Software Foundation

解决方案:

参考的解决链接:bug:jar:1.0-SNAPSHOT is missing, no dependency information available

找到idea的右侧maven管理侧边栏,确定其中的root根文件目录,然后clean再install ; 而后可以执行对应的文件;

3、spring测试类启动报错

解决java.lang.IllegalStateException: Unable to find a @SpringBootConfiguration, you need to use

总结:单元测试的测试类一定要和启动类在同一个根目录下。

4、Spring项目启动过程中的错误(一个系列)

以下错误是从下往上进行记录的,最新的放在最前面,

以下一系列错误皆源自pom引入依赖导致依赖冲突形成的,解决方案是,把pom文件中原来的引入依赖变更为如下:增加了exclusions即可;

如何找到解决方案的:

复制其中一行错误提示,发现有回答和我使用场景非常相似,不出意外,的确如博主所说,为此类错误,之前百度的关键错误error code 并非切合实际,因此没有找到具体的解决方案;

 <!--EasyExcel相关依赖-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>easyexcel</artifactId>
            <version>3.0.2</version>
            <exclusions>
                <exclusion>
                    <artifactId>ehcache</artifactId>
                    <groupId>org.ehcache</groupId>
                </exclusion>
            </exclusions>
        </dependency>
Caused by: java.lang.annotation.IncompleteAnnotationException: org.terracotta.statistics.Statistic missing element type
    at sun.reflect.annotation.AnnotationInvocationHandler.invoke(AnnotationInvocationHandler.java:81)
    at com.sun.proxy.$Proxy101.type(Unknown Source)
    at org.terracotta.statistics.StatisticsManager.parseStatisticAnnotations(StatisticsManager.java:114)
    at org.terracotta.context.ContextManager.contextCreated(ContextManager.java:183)
    at org.terracotta.context.ContextManager.getOrCreateTreeNode(ContextManager.java:136)
    at org.terracotta.context.ContextManager.associate(ContextManager.java:114)
    at org.terracotta.context.ContextManager.access$000(ContextManager.java:38)
    at org.terracotta.context.ContextManager$1.withChild(ContextManager.java:57)
    at 
    ... 104 common frames omitted
​​​​​​​Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [net.sf.ehcache.CacheManager]: Factory method 'ehCacheCacheManager' threw exception; nested exception is net.sf.ehcache.CacheException: java.lang.annotation.IncompleteAnnotationException: org.terracotta.statistics.Statistic missing element type at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:185)

5、java.lang.IllegalStateException启动类型报错

问题描述:

java.lang.IllegalStateException: The product Cache is not alive (STATUS_SHUTDOWN)
    at net.sf.ehcache.Cache$CacheStatus.checkAlive(Cache.java:4108)
    at net.sf.ehcache.Cache.checkStatus(Cache.java:2799)
    at net.sf.ehcache.Cache.putInternal(Cache.java:1567)
    at net.sf.ehcache.Cache.put(Cache.java:1543)
    at net.sf.ehcache.Cache.put(Cache.java:1508)
    at org.springframework.cache.ehcache.EhCacheCache.put(EhCacheCache.java:125)
    at com.core.dic.DictLoad.loadData(DictLoad.java:50)
    at com.core.dic.DictLoad$DicThread.run(DictLoad.java:69)
Disconnected from the target VM, address: '127.0.0.1:60926', transport: 'socket'

解决方案:

暂无

四、项目开发调试错误

1、HttpMessageNotReadableException错误

1.1 问题解决方案:

参考链接:HttpMessageNotReadableException错误

1.2 可能原因

产生的原因有以下三种:

1.后端的实体类与前端的传入参数数据不一样,这时候我们可以通过检查前端传入的数据和后端接收的数据,进行比较,把他们改为相同即可。

2.我们使用@RequestBody注解,但是我们请求方式是get请求,这个时候我们要把get请求改为post请求,但是如果我们不想改动请求方式,坚持使用get请求的话,可以考虑使用@RequestParam和@PathVariable。

3.如果我们没有解决跨域问题的话,那么跨域问题也可能会导致该报错的产生,如果我们后端被@RequestBody修饰的参数实体类没有实现序列化接口,如果不序列化也会出错。

错误concole输出:

ERROR[http-nio-8089-exec-1] com.css.handler.GlobalDefultExceptionHandler(98) 
​
Method:POST
Exception Type:org.springframework.http.converter.HttpMessageNotReadableException
​
Exception Details:
org.springframework.http.converter.HttpMessageNotReadableException: Required request body is missing: public void com.css.controller.refund.RefundBillContorller.refundBillExcelOut(com.alibaba.fastjson.JSONObject,javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse) throws java.io.IOException
    at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.readWithMessageConverters(RequestResponseBodyMethodProcessor.java:161)
    at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.resolveArgument(RequestResponseBodyMethodProcessor.java:130)
    at org.springframework.web.method.support.HandlerMethodArgumentResolverComposite.resolveArgument(HandlerMethodArgumentResolverComposite.java:124)
    at org.springframework.web.method.support.InvocableHandlerMethod.getMethodArgumentValues(InvocableHandlerMethod.java:161)
    at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:131)
    at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102)
    at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:870)
    at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:776)
    at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:991)
    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:925)
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:978)
    at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:881)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)
    at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:855)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:109)
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:81)
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:496)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
    at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:803)
    at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
    at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:790)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1459)
    at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Thread.java:748)

2、GlobalDefultExceptionHandler报错

2.1 问题产生原因

查询接口在apifox中测试,前提是故意不登录,会Response一个具体的错误,包括not login,不会产生异常报错;

同样接查询接口进行同样内容的导出,报如下异常错误,但不会返not login的错误提示。代码的权限校验方式一致,返回设计一致,但是返回不一致;

2.2 报错行显示

【****】[****] ERROR[http-nio-8089-exec-10] com.css.handler.GlobalDefultExceptionHandler(98) 
---Exception Log Begin---
url:http://127.0.0.1:808*/**/refundBillExcelOut
Method:POST
Exception Type:java.lang.NullPointerException
Exception Details:
java.lang.NullPointerException: null

五、项目配置连接型错误

1、Java通过ssh连接访问数据库error

1.1 参考链接

使用Java中的JSch转发端口时,“本地端口...无法绑定”

1.2 小结: 解决方案归纳

  • pom添加相关依赖;

  • mysqlUtil中添加连接的方法和变量,封装调用的方法便于整体的调用;

  • 添加JeCommon适配css原系统的连接数据库的方式,结合yml配置文件以及MyUtil中方法

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
您好!要创建一个Spring项目,您可以按照以下步骤进行操作: 1. 首先,确保您已经安装了Java开发工具包(JDK)。您可以在Oracle官网上下载并安装适合您系统的JDK版本。 2. 接下来,您需要安装一个集成开发环境(IDE),例如Eclipse、IntelliJ IDEASpring Tool Suite(STS)。选择一个您喜欢的IDE并进行安装。 3. 打开您选择的IDE,创建一个新的Java项目。根据IDE的界面和操作步骤创建一个新的空白项目。 4. 在项目中添加Spring框架的依赖。这可以通过在项目的构建文件(例如Maven的pom.xml或Gradle的build.gradle)中添加相关依赖来实现。您可以参考Spring官方文档或搜索引擎上的示例来获取正确的依赖配置。 5. 创建一个Java类作为您的Spring应用程序的入口点。这个类需要使用`@SpringBootApplication`注解进行标记,以启用Spring Boot自动配置和组件扫描。 6. 在入口类中,您可以定义Spring Bean(组件)并配置它们。使用`@Component`、`@Service`、`@Repository`等注解来标记和管理组件。 7. 根据您的需求,您可以创建控制器类、服务类、数据访问类等。使用适当的注解和Spring提供的功能来管理它们。 8. 配置应用程序的属性和数据库连接等信息。可以使用`application.properties`或`application.yml`文件来配置这些信息。 9. 编写代码逻辑和业务逻辑来实现您的应用程序功能。 10. 运行您的Spring应用程序。您可以使用IDE提供的运行功能来启动应用程序,或者使用命令行工具(如Maven或Gradle)进行构建和运行。 这些步骤可以帮助您开始创建一个基本的Spring项目。当然,根据您的具体需求,还可以添加其他组件、配置和功能。希望对您有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值