日期:2014-05-19  浏览次数:20689 次

jsp页面获取注入的spring bean 求高手来看看
Java code

jsp页面获取注入的spring bean 

<%@page import="org.springframework.context.ApplicationContext"%>
<%@page import=
"org.springframework.web.context.support.WebApplicationContextUtils"%>

<%
ApplicationContext context = 
WebApplicationContextUtils. getWebApplicationContext(application);
MstAllMapTypeServiceImpl service =
(MstAllMapTypeServiceImpl)context.getBean("mstAllMapTypeServiceImpl");  
%>

说不能强转成 我想要的类不知道怎么解决 
严重: Servlet.service() for servlet jsp threw exception
java.lang.ClassCastException: $Proxy28 cannot be cast to 
com.common.service.impl.MstAllMapTypeServiceImpl
at org.apache.jsp.carmap_jsp._jspService
(org.apache.jsp.carmap_jsp:109)
未完……



------解决方案--------------------
注入的Bean是代理的
不要用具体的Impl类型,用父接口类型强转试试看。
------解决方案--------------------
请检查配置文件看看,mstAllMapTypeServiceImpl 这个bean 的Class配置是否为MstAllMapTypeServiceImpl。

可以尝试转换为 MstAllMapTypeService 这个接口看看,我觉得应该不是这个问提。

仔细看看对应的包路径是否一致。
------解决方案--------------------
应该是接口名:
MstAllMapTypeService service =
(MstAllMapTypeService)context.getBean("MstAllMapTypeService");
另外你的spring配置文件
<bean id="mstAllMapTypeService" class="包名.mstAllMapTypeServiceImpl"/>
------解决方案--------------------
MstAllMapTypeServiceImpl service =
(MstAllMapTypeServiceImpl)context.getBean("mstAllMapTypeServiceImpl");

这里不能用实现类转换

得用 MstAllMapTypeServiceImpl 的接口,换 接 口 吧
------解决方案--------------------
spring 注入的mstAllMapTypeServiceImpl 是个什么?接口还是类?