No bean named '' is defined
在eclipse的控制台启动tomcat后,tomcat正常运行,可是通过tomcat访问页面时,tomcat报如下的错误信息:
信息: Server startup in 11766 ms
2007-7-29 22:29:33 org.apache.catalina.core.ApplicationContext log
信息: HTMLManager: init: Associated with Deployer 'Catalina:type=Deployer,host=localhost '
2007-7-29 22:29:33 org.apache.catalina.core.ApplicationContext log
信息: HTMLManager: init: Global resources are available
2007-7-29 22:29:33 org.apache.catalina.core.ApplicationContext log
信息: HTMLManager: list: Listing contexts for virtual host 'localhost '
2007-7-29 22:29:36 org.apache.catalina.core.ApplicationContext log
信息: HTMLManager: list: Listing contexts for virtual host 'localhost '
2007-07-29 22:29:37 ERROR [org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/spring].[jsp]] - <Servlet.service() for servlet jsp threw exception>
org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named ' ' is defined
at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanDefinition(DefaultListableBeanFactory.java:360)
at org.springframework.beans.factory.support.AbstractBeanFactory.getMergedBeanDefinition(AbstractBeanFactory.java:686)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:219)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:149)
at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:541)
at org.acegisecurity.util.FilterChainProxy.obtainAllDefinedFilters(FilterChainProxy.java:221)
at org.acegisecurity.util.FilterChainProxy.doFilter(FilterChainProxy.java:136)
at org.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:98)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:210)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:870)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685)
at java.lang.Thread.run(Thread.java:595)
向高手请指教错误的原因!
[解决办法]
在配一个类时,可能依赖另外一个类,但是你并没有配,对吗?
具体可以看下你的.xml配置文档...good luck!~
------解决方案--------------------
import 解析的类没有,No bean named ' ' is defined 说明tomacat没有解析到需要的类,查查类名称是否一致
[解决办法]
你的struts-config.xml中其中一个action没有配置name,也就是formbean
[解决办法]
我在web.xml文件里面添加了acegi的配置,去掉acegi配置可以正常打开index.jsp页面。只有加上acegi的配置,进入项目就报上面的错误。
下面是web.xml里面的acegi配置:
<filter>
<filter-name> Acegi Filter Chain Proxy </filter-name>
<filter-class> org.acegisecurity.util.FilterToBeanProxy </filter-class>
<init-param>
<param-name> targetClass </param-name>
<param-value> org.acegisecurity.util.FilterChainProxy </param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name> Acegi Filter Chain Proxy </filter-name>
<url-pattern> *.do </url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name> Acegi Filter Chain Proxy </filter-name>
<url-pattern> *.jsp </url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name> Acegi Filter Chain Proxy </filter-name>
<url-pattern> /j_acegi_security_check </url-pattern>
</filter-mapping>
<listener>
<listener-class> org.springframework.web.context.ContextLoaderListener </listener-class>
</listener>
<listener>
<listener-class> org.acegisecurity.ui.session.HttpSessionEventPublisher </listener-class>
</listener>
[解决办法]
applicationContext-acegi-security.xml的配置:
<?xml version= "1.0 " encoding= "UTF-8 "?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN " "http://www.springframework.org/dtd/spring-beans.dtd ">
<beans>
<bean id= "filterChainProxy " class= "org.acegisecurity.util.FilterChainProxy ">
<property name= "filterInvocationDefinitionSource ">
<value>
CONVERT_URL_TO_LOWERCASE_BEFORE_COMPARISON
PATTERN_TYPE_APACHE_ANT
/**=httpSessionContextIntegrationFilter,logoutFilter,authenticationProcessingFilter,
anonymousProcessingFilter,exceptionTranslationFilter,filterInvocationInterceptor
</value>
</property>
</bean>
<!-- Filter -->
<bean id= "httpSessionContextIntegrationFilter " class= "org.acegisecurity.context.HttpSessionContextIntegrationFilter "/>
<bean id= "logoutFilter " class= "org.acegisecurity.ui.logout.LogoutFilter ">
<constructor-arg value= "/login.jsp "/>
<constructor-arg>
<list>
<bean class= "org.acegisecurity.ui.logout.SecurityContextLogoutHandler "/>
</list>
</constructor-arg>
<property name= "filterProcessesUrl " value= "/logout.jsp "/>
</bean>
<bean id= "authenticationProcessingFilter " class= "org.acegisecurity.ui.webapp.AuthenticationProcessingFilter ">
<property name= "authenticationManager "> <ref bean= "authenticationManager "/> </property>
<property name= "authenticationFailureUrl "> <value> /login.jsp?login_error=1 </value> </property>
<property name= "defaultTargetUrl "> <value> /user.do?method=login </value> </property>
<property name= "filterProcessesUrl "> <value> /j_acegi_security_check </value> </property>
</bean>
<bean id= "anonymousProcessingFilter " class= "org.acegisecurity.providers.anonymous.AnonymousProcessingFilter ">
<property name= "key "> <value> foobar </value> </property>
<property name= "userAttribute "> <value> anonymousUser,AUTH_ANONYMOUS </value> </property>
</bean>
<bean id= "exceptionTranslationFilter " class= "org.acegisecurity.ui.ExceptionTranslationFilter ">
<property name= "authenticationEntryPoint ">
<bean class= "org.acegisecurity.ui.webapp.AuthenticationProcessingFilterEntryPoint ">
<property name= "loginFormUrl " value= "/login.jsp "/>
<property name= "forceHttps " value= "false "/>
</bean>
</property>
</bean>
<bean id= "filterInvocationInterceptor " class= "org.acegisecurity.intercept.web.FilterSecurityInterceptor ">
<property name= "authenticationManager "> <ref bean= "authenticationManager "/> </property>
<property name= "accessDecisionManager "> <ref local= "httpRequestAccessDecisionManager "/> </property>
<property name= "objectDefinitionSource ">
<value>
CONVERT_URL_TO_LOWERCASE_BEFORE_COMPARISON
PATTERN_TYPE_APACHE_ANT
/**/*.jpg=AUTH_ANONYMOUS,user,admin,bank,query
/**/*.gif=AUTH_ANONYMOUS,user,admin,bank,query
/**/*.png=AUTH_ANONYMOUS,user,admin,bank,query
/**/*.js=user,admin,bank,query
/**/*.css=AUTH_ANONYMOUS,user,admin,bank,query
/login.jsp=AUTH_ANONYMOUS,user,admin,bank,query
/**=admin,user,bank,query
</value>
</property>
</bean>
<bean id= "authenticationManager " class= "org.acegisecurity.providers.ProviderManager ">
<property name= "providers ">
<list>
<ref local= "daoAuthenticationProvider "/>
</list>
</property>
</bean>
<bean id= "daoAuthenticationProvider " class= "org.acegisecurity.providers.dao.DaoAuthenticationProvider ">
<property name= "userDetailsService "> <ref local= "jdbcDaoImpl "/> </property>
</bean>
<bean id= "httpRequestAccessDecisionManager " class= "org.acegisecurity.vote.AffirmativeBased ">
<property name= "allowIfAllAbstainDecisions "> <value> false </value> </property>
<property name= "decisionVoters ">
<list>
<ref bean= "roleVoter "/>
</list>
</property>
</bean>
<bean id= "roleVoter " class= "org.acegisecurity.vote.RoleVoter ">
<property name= "rolePrefix "> <value> </value> </property>
</bean>
<bean id= "jdbcDaoImpl " class= "org.acegisecurity.userdetails.jdbc.JdbcDaoImpl ">
<property name= "dataSource "> <ref bean= "dataSource "/> </property>
<property name= "usersByUsernameQuery ">
<value> SELECT CZYBM, CZYMM,QYBZ FROM T_XT_CZY WHERE CZYBM=?
</value>
</property>
<property name= "authoritiesByUsernameQuery ">
<value>
SELECT CZYBM,USERTYPE FROM T_XT_CZY WHERE CZYBM=? AND QYBZ=1
</value>
</property>
</bean>
<bean id= "loggerListener " class= "org.acegisecurity.event.authentication.LoggerListener "/>
</beans>
[解决办法]
找找是不是类名不对啊,如XxxAction,XxxForm
[解决办法]
配置漏了吧
[解决办法]
CONVERT_URL_TO_LOWERCASE_BEFORE_COMPARISON
PATTERN_TYPE_APACHE_ANT
/**=httpSessionContextIntegrationFilter,logoutFilter,authenticationProcessingFilter,
anonymousProcessingFilter,exceptionTranslationFilter,filterInvocationInterceptor
不能换行,你的错误是换行所致……
[解决办法]
再说一句,是各个过滤器之间不能换行哦^_^