0

「Spring Bean を Apache Wink に注入するにはどうすればよいですか?」の続きです。

現在 wink-spring-support を使用していますが、正しくセットアップされていると思いました。

web.xml には以下が含まれます。

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>
        classpath:META-INF/wink/wink-core-context.xml
        classpath:applicationContext.xml
    </param-value>
</context-param>

<listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

<servlet>
    <servlet-name>restServlet</servlet-name>
    <servlet-class>org.apache.wink.server.internal.servlet.RestServlet</servlet-class>
</servlet>

<servlet-mapping>
    <servlet-name>restServlet</servlet-name>
    <url-pattern>/rest/*</url-pattern>
</servlet-mapping>

META-INF/wink/wink-core-context.xml には以下が含まれます。

<bean class="org.apache.wink.spring.Registrar">
    <property name="instances">
        <set>
            <ref bean="myservice" />
        </set>
    </property>
</bean>

<bean id="myservice" class="mystuff.ServiceImpl"/>

他のSpringのものを注入する@Autowiredアノテーションがあり、JAX-RSアノテーション付きインターフェースを実装し、それ自体にJAX-RSアノテーションが含まれています。mystuff.ServiceImplmystuff.ServiceImpl@Path("/services")

myserviceBeanを含め、Spring がこのようなものを問題なくロードしていることがわかります。ただし、リソースを要求すると、404 not found が表示されます。Wink が起動すると、問題を示している可能性のあるログ エントリがいくつか表示されます。

applicationConfigLocation property was not defined

Using application classes null named in init-param applicationConfigLocation

私はどこかで何かを逃しましたか?何かアドバイス?

4

1 に答える 1

0

問題は、私のドキュメントの誤解でした。

META-INF/server/wink-core-context.xmlで提供される Spring 構成がありますwink-spring-support。これにより、実際にセットアップを行い、から参照する必要がある BeanPostProcessors が登録されますcontextConfigLocation

そこに構成を入れたと思ったので、起動時にアプリケーションが Wink に登録されなかった理由が説明されています。

于 2012-02-08T12:03:16.880 に答える