0

このブログを使用して、プロジェクトに Oauth2 を実装しようとしています

私はSpringフレームワークの初心者なので、すべての準拠クラスは正しいパッケージの下に存在しますが、ClassNotFoundExceptionなどの例外が発生しました。ソース(maven プロジェクト)はgithubで見ることができ ます

エラーは次で始まります:

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping#0': Invocation of init method failed; nested exception is org.springframework.beans.factory.CannotLoadBeanClassException: Cannot find class [com.trafficalarm.rest.security.HierarchicalJsr250Voter] for bean with name 'roleVoter' defined in class path resource [spring/security/security-configuration.xml]; nested exception is java.lang.ClassNotFoundException: com.trafficalarm.rest.security.HierarchicalJsr250Voter
Related cause: org.springframework.beans.factory.CannotLoadBeanClassException: Cannot find class [com.trafficalarm.rest.security.HierarchicalJsr250Voter] for bean with name 'roleVoter' defined in class path resource [spring/security/security-configuration.xml]; nested exception is java.lang.ClassNotFoundException: com.trafficalarm.rest.security.HierarchicalJsr250Voter
Related cause: org.springframework.beans.factory.CannotLoadBeanClassException: Cannot find class [com.trafficalarm.rest.filter.spring.SpringCrossOriginResourceSharingFilter] for bean with name 'corsFilter' defined in class path resource [spring/oauth/oauth2-configuration.xml]; nested exception is java.lang.ClassNotFoundException: com.trafficalarm.rest.filter.spring.SpringCrossOriginResourceSharingFilter
Related cause: org.springframework.beans.factory.CannotLoadBeanClassException: Cannot find class [com.trafficalarm.rest.security.OAuthRestEntryPoint] for bean with name 'oauthRestEntryPoint' defined in class path resource [spring/oauth/oauth2-configuration.xml]; nested exception is java.lang.ClassNotFoundException: com.trafficalarm.rest.security.OAuthRestEntryPoint
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1553)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:539)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:475)
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:304)
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:228)
4

2 に答える 2

1

web.xml でスプリング コンテキストが正しく初期化されていることを確認してください: [更新]

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>
        classpath:app-config.xml
    </param-value>
</context-param>

直接の子でなければなりません。次に、 app-config で、次を使用してすべてのコンポーネントをスキャンできます

<context:component-scan base-package="your.component.package.here"/>

次に、すべての春の設定ファイルをインポートします

<import resource="classpath:your-resource.xml"/>

また、PropertiesPlaceholderConfigurer Bean が正しく構成されていないことに気付いたので、Spring 構成ファイルの 1 つで次のようなことをしなければなりませんでした。Spring がファイル プロパティを見つけられなかったため、どこでも例外がスローされていました。

<bean id="propertyPlaceholderConfigurer"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location"  value="WEB-INF/application.properties"/>`</bean>`

実際には必要ないクラスもいくつかありますが、それはあなた次第です。これらのヒントで解決できることを願っています。

よろしく

于 2015-03-26T00:16:39.940 に答える
0

例外に関する本質的な問題は、ビルド パスの問題でした。security-configuration.xml ファイルの内容を business-config.xml に移動すると、ビルド パスの問題について警告が表示されました。だから私はプロジェクトのビルドパスをチェックしました.mavenの依存関係はチェックされていないようです. 以前に JDK のバージョンを変更したことがあったため、未確認の状況が発生したと思います。残念ながら、気付くのに時間がかかりました...

于 2015-03-30T12:50:10.653 に答える