Spring Rest CXF [ошибка компонента] Tomcat - PullRequest
0 голосов
/ 10 апреля 2011

Я выполняю веб-сервис в rest, spring, cxf и tomcat.

Полный проект ссылки: http://www55.zippyshare.com/v/99585767/file.html

Я получил эту ошибку на бобе.Не можете понять, почему это происходит?

SEVERE: Context initialization failed org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'restContainer': Cannot resolve reference to bean 'timeService' while setting bean property 'serviceBeans' with key [0]; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'timeService' is defined<br> at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:328)<br> at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:106)

timeService.java

@Service("timeService")  
@Path("/time")  
public class TimeService {

    @GET
    @Produces("text/plain")
    public String getDateTime()
    {
        DateFormatter formatter = new DateFormatter("dd/MM/yyyy hh:mm:ss");
        return formatter.print(Calendar.getInstance().getTime(), Locale.getDefault());
    }
}

beans.xml

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

    <import resource="classpath:META-INF/cxf/cxf.xml"/>
    <import resource="classpath:META-INF/cxf/cxf-extension-jaxrs-binding.xml"/>
    <import resource="classpath:META-INF/cxf/cxf-servlet.xml"/>

    <jaxrs:server id="restContainer" address="/">
        <jaxrs:serviceBeans>
            <ref bean="timeService"/>
        </jaxrs:serviceBeans>
    </jaxrs:server>

</beans>

Это мои файлы, и я не могу понять, что не так.Это сводит меня с ума!

1 Ответ

0 голосов
/ 10 апреля 2011

В документации Spring говорится, что вам нужно добавить элемент, чтобы направлять поиск ваших @Service -аннотированных компонентов.Например, если ваши компоненты были в пакете org.example или в одном из его подпакетов, вы бы использовали конфигурацию компонентного сканера в вашем beans.xml, например:

<context:component-scan base-package="org.example"/>

(Покаон внутри элемента <beans>, хорошо, идет ли он выше или ниже элемента <jaxrs:server>.)

...