快捷搜索: 王者荣耀 脱发

java.lang.IllegalArgumentException异常解决

在maven项目中测试代码的时候,碰到java.lang.IllegalArgumentException异常:

严重: Servlet.service() for servlet [e3-manager] in context with path [] threw exception [Request processing failed; nested exception is java.lang.IllegalArgumentException: No converter found for return value of type: class cn.e3mall.pojo.TbItem] with root cause java.lang.IllegalArgumentException: No converter found for return value of type: class cn.e3mall.pojo.TbItem at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor.writeWithMessageConverters(AbstractMessageConverterMethodProcessor.java:178) at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor.writeWithMessageConverters(AbstractMessageConverterMethodProcessor.java:153) at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.handleReturnValue(RequestResponseBodyMethodProcessor.java:165) at org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite.handleReturnValue(HandlerMethodReturnValueHandlerComposite.java:80) at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:126) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:814) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:737) at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:959) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:893) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:969) at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:860) at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
eclipse运行异常截图:

问题原因:是因为springmvc默认是没有对象转换成json的转换器的,需要手动添加jackson依赖,而maven中的json的 jar 包没有加载到项目中去,导致这个异常出现

解决方法:

在web的pom.xml中添加以下依赖

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-core</artifactId>
    <version>2.8.5</version>
</dependency>

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.8.5</version>
</dependency>

默认把json的jar包添加到项目中。

but 添加之后,我的整个web项目都报错了,这就很尴尬,

还好有大神指点,找到我的maven中的settings.xml文件,添加国内镜像(因为maven默认的是国外的镜像)

<mirror>
            <id>cn_central</id>
            <name>cn_central</name>
            <mirrorOf>central</mirrorOf>
            <url>http://repo1.maven.org/maven2/</url>
</mirror>

然后再在web中pom.xml文件中,按住Ctrl键,点击鼠标左键,就会有链接:

<groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-core</artifactId>
    <version>2.8.5</version>
</dependency>

说明配置好了(真的是不容易啊)

注:如果maven更新的太慢,可以打开网页,输入“鸠摩智”就会变快,很神奇!!!

测试运行结果:


经验分享 程序员 微信小程序 职场和发展