Бобы, добавленные в Apache Wink с Spring, не зарегистрированы - PullRequest
0 голосов
/ 07 февраля 2012

Исходя из Как добавить боб Spring в 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"/>

В mystuff.ServiceImpl есть аннотация @Autowired, которая внедряет другие компоненты Spring, а mystuff.ServiceImpl реализует аннотированный интерфейс JAX-RS и сам включает аннотацию JAX-RS @Path("/services").

Я вижу, как Spring отлично загружает эти вещи, включая бин myservice. Однако, когда я запрашиваю мои ресурсы, я получаю 404 не найден. Когда Wink запускается, я вижу несколько записей в журнале, которые могут указывать на проблему:

applicationConfigLocation property was not defined

Using application classes null named in init-param applicationConfigLocation

Я что-то пропустил? Любой совет?

1 Ответ

0 голосов
/ 08 февраля 2012

Проблема была в том, что я неправильно понял документы.

Существует конфигурация Spring META-INF/server/wink-core-context.xml с wink-spring-support. Это регистрирует BeanPostProcessors, которые фактически выполняют настройку, и на них нужно ссылаться из contextConfigLocation.

Мне показалось, что я добавил туда свою конфигурацию, что объясняет, почему приложение не регистрировалось в Wink при запуске.

...