2-9 报500的错误,原因和已有问题不一样

来源:2-10 验证Controller

Cris_hu

2018-01-09

url正确,假如我输入http://localhost:8080/o2o/能访问到欢迎页面,但是输入http://localhost:8080/o2o/superadmin/listarea会报如下错误:

HTTP Status 500 - org/springframework/context/ApplicationContextAware

type Exception report

message org/springframework/context/ApplicationContextAware

description The server encountered an internal error that prevented it from fulfilling this request.

exception

java.lang.NoClassDefFoundError: org/springframework/context/ApplicationContextAware
java.lang.ClassLoader.defineClass1(Native Method)
java.lang.ClassLoader.defineClass(Unknown Source)
java.security.SecureClassLoader.defineClass(Unknown Source)
org.apache.catalina.loader.WebappClassLoaderBase.findClassInternal(WebappClassLoaderBase.java:2474)
org.apache.catalina.loader.WebappClassLoaderBase.findClass(WebappClassLoaderBase.java:855)
org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1304)
org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1163)
java.lang.ClassLoader.defineClass1(Native Method)
java.lang.ClassLoader.defineClass(Unknown Source)
java.security.SecureClassLoader.defineClass(Unknown Source)
org.apache.catalina.loader.WebappClassLoaderBase.findClassInternal(WebappClassLoaderBase.java:2474)
org.apache.catalina.loader.WebappClassLoaderBase.findClass(WebappClassLoaderBase.java:855)
org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1304)
org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1163)
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:620)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:502)
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1132)
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:684)
org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1539)
org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1495)
java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
java.lang.Thread.run(Unknown Source)

root cause

java.lang.ClassNotFoundException: org.springframework.context.ApplicationContextAware
org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1335)
org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1163)
java.lang.ClassLoader.defineClass1(Native Method)
java.lang.ClassLoader.defineClass(Unknown Source)
java.security.SecureClassLoader.defineClass(Unknown Source)
org.apache.catalina.loader.WebappClassLoaderBase.findClassInternal(WebappClassLoaderBase.java:2474)
org.apache.catalina.loader.WebappClassLoaderBase.findClass(WebappClassLoaderBase.java:855)
org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1304)
org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1163)
java.lang.ClassLoader.defineClass1(Native Method)
java.lang.ClassLoader.defineClass(Unknown Source)
java.security.SecureClassLoader.defineClass(Unknown Source)
org.apache.catalina.loader.WebappClassLoaderBase.findClassInternal(WebappClassLoaderBase.java:2474)
org.apache.catalina.loader.WebappClassLoaderBase.findClass(WebappClassLoaderBase.java:855)
org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1304)
org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1163)
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:620)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:502)
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1132)
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:684)
org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1539)
org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1495)
java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
java.lang.Thread.run(Unknown Source)


写回答

5回答

翔仔

2018-01-10

请问同学的问题解决了吗?同学解决不了翔仔也和同学一样焦虑呢 :)

0
9
翔仔
回复
Cris_hu
不是呢 我意思说的是eclipse只有maven插件,并不是maven也就是说没有maven这个软件内嵌在eclipse里面 这个插件就类似一个接口服务,调用的是你本地的maven 因此需要配置好本地的maven,并与这个接口联通起来
2018-01-10
共9条回复

翔仔

2018-01-09

希望同学有时间一定一定要学习maven,这个是项目的很少有的门槛之一。。非常好学的,慕课网里面还有相关的免费课 讲得非常详细。。

0
0

翔仔

2018-01-09

同学先得明确下配置,以下的截图是开发前必须的,一般学习java的同学都需要有以下的环境,同学按照我的截图来配置一下,然后再看看项目的问题是否得到解决了

这个是cmd里必须的

//img.mukewang.com/szimg/5a54cb120001e9b519240662.jpg

下面是eclipse里对接的配置

//img.mukewang.com/szimg/5a54caf10001047513461046.jpg

//img.mukewang.com/szimg/5a54caf1000104b812681044.jpg

否则POM即便配置了 也是无效的

配置完成后右键你的项目

然后按照截图来

//img.mukewang.com/szimg/5a54cb930001f63914821378.jpg

这个已经够详细啦,并且是非常基础的,这块希望同学过后好好学习一下,接下来靠同学了


0
9
翔仔
回复
Cris_hu
一定要把问题搞定了 加油
2018-01-10
共9条回复

翔仔

2018-01-09

同学好,感觉还是项目配置的问题,跟maven或者跟tomcat相关

同学一般解决这类问题可以先定位错误,一般在cause语句附近,然后把错误贴上网去找找就能找到

这里是

root cause

java.lang.ClassNotFoundException: org.springframework.context.ApplicationContextAware

即找不到spring相关的类,即运行的时候缺乏这个jar包,虽然项目pom可能配置了,但是实际发布的时候还没有,需要看看:

  1. repository里面有spring相关jar并且下载是有效的,这个可以一刀切 直接清空repository下面的文件再次重新通过update maven project下载

  2. clean一下tomcat然后重新发布一版运行一下

具体也可以参照以下链接处理

http://blog.csdn.net/you23hai45/article/details/46897805

https://www.cnblogs.com/zhouyalei/archive/2011/11/30/2268606.html

http://blog.csdn.net/you23hai45/article/details/46897805

一般就这三种 同学分别看看,有问题继续提问哈 :)

0
8
翔仔
回复
Cris_hu
遇到问题不要慌不要心急,我们开发经常也赶进度,但是问题该解决还得解决。这个就是同学为什么报错的主要原因了 项目需要用maven而不是手动导jar包 这个需要配置好基本的开发环境 这个视频开头也交代了呢 同学需要配置好java maven 以及mysql 这些环境变量 不然后面还有问题 配置很简单 网上一搜一堆教程 版本尽量跟项目的保持一致 因为感觉同学还不具备用不同版本开发的能力:)
2018-01-09
共8条回复

Cris_hu

提问者

2018-01-09

Controller代码:

package com.o2o.web.superadmin;


import java.util.List;

import java.util.ArrayList;

import java.util.HashMap;

import java.util.Map;


import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.stereotype.Controller;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.RequestMethod;

import org.springframework.web.bind.annotation.ResponseBody;


import com.o2o.service.AreaService;

import com.o2o.entity.Area;

@Controller

@RequestMapping("/superadmin")


public class AreaController {


@Autowired

private AreaService areaService;

@RequestMapping(value="/listarea",method=RequestMethod.GET)

@ResponseBody

private  Map<String, Object> listArea(){

Map<String,Object> modelMap=new HashMap<String,Object>();

List<Area> list=new ArrayList<Area>();

try{

list=areaService.getAreaList();

modelMap.put("rows",list);

modelMap.put("total", list.size());

}catch(Exception e){

e.printStackTrace();

modelMap.put("success",false);

modelMap.put("errMSG", e.toString());

}

return modelMap;

}

}


0
0

Java双版本(SSM到SpringBoot)校园商铺全栈开发

SSM商铺V1.0,解决毕设痛点;SpringBoot商铺V2.0,满足工作刚需

5113 学习 · 8144 问题

查看课程