2017-08-24 103 views
0

,当我试图运行Java应用程序,我得到了错误错误运行Java应用程序

39e50b6c8500","container_id":"10.0.137.104","type":"log","logger":"org.springframework.web.context.ContextLoader","thread":"localhost-startStop-1","level":"ERROR","categories":[],"msg":"Context initialization failed","stacktrace":["org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.security.filterChains': Cannot resolve reference to bean 'org.springframework.security.web.DefaultSecurityFilterChain#0' while setting bean property 'sourceList' with key [0]; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.security.web.DefaultSecurityFilterChain#0': Cannot resolve reference to bean 'resourceServerFilter' while setting constructor argument with key [2]; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'resourceServerFilter': Cannot create inner bean '(inner bean)#54de2a69' of type [org.springframework.security.oauth2.provider.authentication.OAuth2AuthenticationManager] while setting bean property 'authenticationManager'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name '(inner bean)#54de2a69': Cannot resolve reference to bean 'offlineTokenServices' while setting bean property 'tokenServices'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'offlineTokenServices' is defined","at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:336)","at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:108)","at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveManagedList(BeanDefinitionValueResolver.java:359)","at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:157)","at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1457)","at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1198)","at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:537)","at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:475)","at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:302)","at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:229)","at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:298)","at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193)","at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:687)","at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:762)","at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:482)","at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:403)","at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:306)","at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:106)","at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4745)","at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5207)","at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)","at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1419)","at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1409)","at java.util.concurrent.FutureTask.run(FutureTask.java:266)","at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)","at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)","at java.lang.Thread.run(Thread.java:808)","Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.security.web.DefaultSecurityFilterChain#0': Cannot resolve reference to bean 'resourceServerFilter' while setting constructor argument with key [2]; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'resourceServerFilter': Cannot create inner bean '(inner bean)#54de2a69' of type [org.springframework.security.oauth2.provider.authentication.OAuth2AuthenticationManager] while setting bean property 'authenticationManager'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name '(inner bean)#54de2a69': Cannot resolve reference to bean 'offlineTokenServices' while setting bean property 'tokenServices'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'offlineTokenServices' is defined","at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:336)","at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:108)","at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveManagedList(BeanDefinitionValueResolver.java:359)","at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:157)","at org.springframework.beans.factory.support.ConstructorResolver.resolveConstructorArguments(ConstructorResolver.java:632)","at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:140)","at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1115)","at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1018)","at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:504)","at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:475)","at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:302)","at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:229)","at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:298)"] } 
{ "written_at":"2017-08-24T07:21:18.874Z","written_ts":1261972550043975,"component_type":"application","component_id":"e3b133e6-4a3b-4f39-ae1e-cde2bc778e64","space_name":"automation","component_name":"I053322-fg00k8se6s2ce433-mtaTest-java","component_instance":"0","organization_id":"-","correlation_id":"-","organization_name":"-","space_id":"01769eda-4790-45e8-9333-39e50b6c8500","container_id":"10.0.137.104","type":"log","logger":"org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/]","thread":"localhost-startStop-1","level":"ERROR","categories":[],"msg":"Exception sending context initialized event to listener instance of class [org.springframework.web.context.ContextLoaderListener]","stacktrace":["org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.security.filterChains': Cannot resolve reference to bean 'org.springframework.security.web.DefaultSecurityFilterChain#0' while setting bean property 'sourceList' with key [0]; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.security.web.DefaultSecurityFilterChain#0': Cannot resolve reference to bean 'resourceServerFilter' while setting constructor argument with key [2]; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'resourceServerFilter': Cannot create inner bean '(inner bean)#54de2a69' of type [org.springframework.security.oauth2.provider.authentication.OAuth2AuthenticationManager] while setting bean property 'authenticationManager'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name '(inner bean)#54de2a69': Cannot resolve reference to bean 'offlineTokenServices' while setting bean property 'tokenServices'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'offlineTokenServices' is defined","at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:336)","at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:108)","at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveManagedList(BeanDefinitionValueResolver.java:359)","at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:157)","at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1457)","at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1198)","at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:537)","at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:475)","at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:302)","at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:229)","at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:298)","at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193)","at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:687)","at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:762)","at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:482)","at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:403)","at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:306)","at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:106)","at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4745)","at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5207)","at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)","at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1419)","at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1409)","at java.util.concurrent.FutureTask.run(FutureTask.java:266)","at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)","at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)","at java.lang.Thread.run(Thread.java:808)","Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.security.web.DefaultSecurityFilterChain#0': Cannot resolve reference to bean 'resourceServerFilter' while setting constructor argument with key [2]; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'resourceServerFilter': Cannot create inner bean '(inner bean)#54de2a69' of type [org.springframework.security.oauth2.provider.authentication.OAuth2AuthenticationManager] while setting bean property 'authenticationManager'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name '(inner bean)#54de2a69': Cannot resolve reference to bean 'offlineTokenServices' while setting bean property 'tokenServices'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'offlineTokenServices' is defined","at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:336)","at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:108)","at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveManagedList(BeanDefinitionValueResolver.java:359)","at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:157)","at org.springframework.beans.factory.support.ConstructorResolver.resolveConstructorArguments(ConstructorResolver.java:632)","at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:140)","at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1115)","at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1018)","at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:504)","at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:475)","at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:302)","at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:229)","at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:298)"] } 

这是在web.xml

<?xml version="1.0" encoding="UTF-8"?> 
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
    id="WebApp_ID" version="2.5"> 

    <welcome-file-list> 
     <welcome-file>index.html</welcome-file> 
    </welcome-file-list> 
    <error-page> 
     <exception-type>java.lang.Throwable</exception-type> 
     <location>/error.jsp</location> 
    </error-page> 
    <error-page> 
     <error-code>404</error-code> 
     <location>/error.jsp</location> 
    </error-page> 
    <error-page> 
     <error-code>500</error-code> 
     <location>/error.jsp</location> 
    </error-page> 
    <servlet id="Servlet_1487837886290"> 
     <servlet-name>ODataServlet</servlet-name> 
     <servlet-class>com.cloud.oataServlet</servlet-class> 
     <load-on-startup>1</load-on-startup> 
    </servlet> 
    <servlet-mapping id="ServletMapping_1487837886286"> 
     <servlet-name>ODataServlet</servlet-name> 
     <url-pattern>/odata/v4/*</url-pattern> 
    </servlet-mapping> 


    <context-param> 
     <param-name>package</param-name> 
     <param-value>com.company.extension.java</param-value> 
    </context-param> 

    <context-param> 
     <param-name>contextConfigLocation</param-name> 
     <param-value>/WEB-INF/spring-security.xml</param-value> 
    </context-param> 
    <filter> 
     <filter-name>springSecurityFilterChain</filter-name> 
     <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class> 
    </filter> 
    <filter-mapping> 
     <filter-name>springSecurityFilterChain</filter-name> 
     <url-pattern>/*</url-pattern> 
    </filter-mapping> 
    <listener> 
     <listener-class>com.service.prov.v4.web.ServiceInitializer</listener-class> 
    </listener> 
    <listener> 
     <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 
    </listener> 
</web-app> 

我添加的文件弹簧security.xml文件WEB-INF

<?xml version="1.0" encoding="UTF-8" ?> 
<beans xmlns="http://www.springframework.org/schema/beans" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:oauth="http://www.springframework.org/schema/security/oauth2" 
    xmlns:sec="http://www.springframework.org/schema/security" 

    xsi:schemaLocation="http://www.springframework.org/schema/security/oauth2 
     http://www.springframework.org/schema/security/spring-security-oauth2-1.0.xsd 
     http://www.springframework.org/schema/security 
     http://www.springframework.org/schema/security/spring-security-3.2.xsd 
     http://www.springframework.org/schema/beans 
     http://www.springframework.org/schema/beans/spring-beans-3.1.xsd"> 

    <!-- protect secure resource endpoints ================================================ --> 

    <sec:http pattern="/**" create-session="never" 
     entry-point-ref="oauthAuthenticationEntryPoint" 
     access-decision-manager-ref="accessDecisionManager" 
     authentication-manager-ref="authenticationManager" 
     use-expressions="true"> 
     <sec:anonymous enabled="false" /> 

     <!-- section to protect your endpoints --> 

     <!-- Example: Check a specific OAuth Scope (i.e., authorization) on a resource --> 
     <!-- sec:intercept-url pattern="/odata/v4/CustomerService/**" access="isAuthenticated()" method="GET" /--> 
     <!-- sec:intercept-url pattern="/odata/v4/CustomerService/ProposedCustomers/**" access="#oauth2.hasScope('${xs.appname}.Approve')" method="PUT" /--> 
     <!-- Example: Check only authentication on a resource --> 
     <sec:intercept-url pattern="/**" access="isAuthenticated()" /> 

     <sec:custom-filter ref="resourceServerFilter" before="PRE_AUTH_FILTER" /> 
     <sec:access-denied-handler ref="oauthAccessDeniedHandler" /> 
    </sec:http> 

    <bean id="oauthAuthenticationEntryPoint" 
     class="org.springframework.security.oauth2.provider.error.OAuth2AuthenticationEntryPoint"> 
    </bean> 

    <bean id="oauthWebExpressionHandler" 
     class="org.springframework.security.oauth2.provider.expression.OAuth2WebSecurityExpressionHandler"> 
    </bean> 

    <bean id="accessDecisionManager" 
     class="org.springframework.security.access.vote.UnanimousBased"> 
     <constructor-arg> 
     <list> 
      <bean class="org.springframework.security.web.access.expression.WebExpressionVoter"> 
       <property name="expressionHandler" ref="oauthWebExpressionHandler" /> 
      </bean> 
      <bean class="org.springframework.security.access.vote.AuthenticatedVoter" /> 
     </list> 
     </constructor-arg> 
    </bean> 

    <sec:authentication-manager alias="authenticationManager"/> 

    <oauth:resource-server id="resourceServerFilter" 
     resource-id="springsec" token-services-ref="offlineTokenServices" /> 



    <bean id="oauthAccessDeniedHandler" 
     class="org.springframework.security.oauth2.provider.error.OAuth2AccessDeniedHandler" /> 

    <!-- define properties file =========================================================== --> 
    <bean class="com.sap.xs2.security.commons.SAPPropertyPlaceholderConfigurer"> 
     <property name="location" value="classpath:/application.properties" /> 
    </bean> 
</beans> 

回答

0

offlineTokenServices找到bean。你引用

<oauth:resource-server id="resourceServerFilter" 
    resource-id="springsec" token-services-ref="offlineTokenServices" /> 

但没有offlineTokenServices的定义

+0

抱歉,我在春天是新的。我需要修复或删除什么? – user1365697

+0

您需要定义bean或引用现有bean。我不知道你试图实施的逻辑。事实上,你需要令牌服务,并且你引用了不存在的令牌服务。 – StanislavL