在tomcat下很好,部署到weblogic10下也很好,唯独有一个地方报错了:ApplicationContextUtil.java ---import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;public class ApplicationContextUtil {
private static ApplicationContext applicationContext;
static{
applicationContext = new ClassPathXmlApplicationContext("applicationContext*.xml");
}
public static Object getBean(String beanId){
return applicationContext.getBean(beanId);
}
}在一个jsp中:
FiltRateDao filtRateDao = (FiltRateDao)ApplicationContextUtil.getBean("filtRateDao");
List list = filtRateDao.findFundCompany();然后当执行这个jsp的时候就报错了:
org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'filtRateDao' is defined
at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanDefinition(DefaultListableBeanFactory.java:360)
at org.springframework.beans.factory.support.AbstractBeanFactory.getMergedBeanDefinition(AbstractBeanFactory.java:701)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:220)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:144)
at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:546)
Truncated. see log file for complete stacktrace其他功能都很好,就是用了ApplicationContextUtil.getBean()的地方会报这个错。但是tomcat下又可以。工程是直接从tomcat下拷贝到weblogic部署的,没有差异的。
import org.springframework.context.support.ClassPathXmlApplicationContext;public class ApplicationContextUtil {
private static ApplicationContext applicationContext;
static{
applicationContext = new ClassPathXmlApplicationContext("applicationContext*.xml");
}
public static Object getBean(String beanId){
return applicationContext.getBean(beanId);
}
}在一个jsp中:
FiltRateDao filtRateDao = (FiltRateDao)ApplicationContextUtil.getBean("filtRateDao");
List list = filtRateDao.findFundCompany();然后当执行这个jsp的时候就报错了:
org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'filtRateDao' is defined
at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanDefinition(DefaultListableBeanFactory.java:360)
at org.springframework.beans.factory.support.AbstractBeanFactory.getMergedBeanDefinition(AbstractBeanFactory.java:701)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:220)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:144)
at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:546)
Truncated. see log file for complete stacktrace其他功能都很好,就是用了ApplicationContextUtil.getBean()的地方会报这个错。但是tomcat下又可以。工程是直接从tomcat下拷贝到weblogic部署的,没有差异的。
No bean named 'filtRateDao'你还是检查一下,你的filtRateDao这个Bean到底在哪里吧。
FilterInvocation filterInvocation = (FilterInvocation) filter;
String requserUrl = filterInvocation.getRequestUrl();
logger.debug("the requser url is --- "+requserUrl);
SecurityUserDetailService userDetailService =(SecurityUserDetailService) ApplicationContextUtil.getBean("securityManager");
抛个IllegalArgumentException
<bean id="filtRateDao"
class="fund.dao.impl.FiltRateDaoImpl">
<property name="hibernateTemplate">
<ref bean="hibernateTemplate" />
</property>
</bean>应该是有的 因为tomcat下可以执行的