もー、ホントに下らない件ではまってしまった。。。
自分も、Confluenceのプラグインを作ってみる(7) Atlassian Templateを使ってみる - tohokuaikiのチラシの裏で書いてるのに、理解してなかったからはまってしまった。
おさらい。
UnsatisfiedDependencyException - Error creating bean with name - Atlassian Developersあたりに書いてあることです。
エラーが発生して、Servletが404になってしまう。
ログを見ると、
[INFO] [talledLocalContainer] com.atlassian.util.concurrent.LazyReference$InitializationException: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'jp.junoe.confluence.plugins.**************': Unsatisfied dependency expressed through constructor argument with index 3 of type [com.atlassian.sal.api.user.UserManager]: : No unique bean of type [com.atlassian.sal.api.user.UserManager] is defined: Unsatisfied dependency of type [interface com.atlassian.sal.api.user.UserManager]: expected at least 1 matching bean; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No unique bean of type [com.atlassian.sal.api.user.UserManager] is defined: Unsatisfied dependency of type [interface com.atlassian.sal.api.user.UserManager]: expected at least 1 matching bean
とか出てる。あれ?依存性でこけてる?
ConfluenceでUserManagerとかを使う時の注意
このコンポーネントを使う際のやり方。
pom.xmlに追加
SAL Services - Atlassian Developers
のサービスを使いたい。
APIリファレンスはこちら
下記のdependencyを追加
<dependency> <groupId>com.atlassian.sal</groupId> <artifactId>sal-api</artifactId> <version>2.10.17</version> <scope>provided</scope> </dependency>
このバージョンはNetBeansのエラーで出ていたので解決してもらったら現時点で一番新しい安定板がこれだったので追加した。すべてNetBeans任せ。こんな感じで依存性を追加すると、画面が出てきてインクリメンタル&サジェストしてくれるので便利。
atlassian-plugin.xmlに追加
これを忘れてハマってしまった。
<component-import key="userManager" interface="com.atlassian.sal.api.user.UserManager" /> <component-import key="loginUriProvider" interface="com.atlassian.sal.api.auth.LoginUriProvider" />
により、JavaでUserManager、LoginUriProvider、
import com.atlassian.sal.api.auth.LoginUriProvider; import com.atlassian.sal.api.user.UserManager; import com.atlassian.sal.api.ApplicationProperties;
ができるようになる。