我有个问题是:
java.lang.Exception: ServletConfig尚未初始化
我找了将近两天,但我没有一个解决办法。每个人都说过必须使用super.init(config)。我试过了,但对我来说没有什么改变。
我的方法;
@Override
public void init(ServletConfig config) throws ServletException {
super.init(config);
AppServiceServlet service = new AppServiceServlet();
try {
service.getir();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
AutoCheckStatus.autoCheckStatus(600000);
}和我的AppServiceServlet;
public List<SswAppServiceDto> getir() throws Exception {
try {
final WebApplicationContext context = WebApplicationContextUtils.getWebApplicationContext(this
.getServletContext());
setiAppServiceBusinessManager((IAppServiceBusinessManager) context.getBean(BEAN_ADI));
List<SswAppService> result = getiAppServiceBusinessManager().getir();
List<SswAppServiceDto> list = DtoConverter.convertSswAppServiceDto(result);
for (int i = 0; i < result.size(); i++) {
AppService appService = new AppService();
appService.setServiceName(result.get(i).getName());
appService.setUid(result.get(i).getServiceUid());
appService.setHost(result.get(i).getHost());
appService.setPort((int) result.get(i).getPort());
SystemConfiguration.appServiceList.put(appService.getUid(), appService);
}
return list;
} catch (RuntimeException e) {
throw new Exception(e.getMessage(), e.getCause());
}
}在这一行中抛出异常;
final WebApplicationContext context = WebApplicationContextUtils.getWebApplicationContext(this.getServletContext());在AppServiceServlet中说:
java.lang.Exception: ServletConfig尚未初始化。
请帮帮忙。
发布于 2013-01-25 09:03:03
这一呼吁:
AppServiceServlet service = new AppServiceServlet();通过new实例化servlet实例,该实例绕过常规容器管理的servlet创建。因此,关键类变量(例如servlet配置)没有得到正确的初始化。
稍后,您将调用getServletContext,它只是重定向到getServletConfig().getServletContext(),但是由于servlet配置从未完成,所以会出现异常。
事实上,在servlet上以不符合规范的方式调用new -servlet应该由web应用程序容器来维护。启动servlet的正确方法要么是通过web.xml文件中的配置,要么通过注释。
https://stackoverflow.com/questions/14518089
复制相似问题