Spring Dependency не работает с веб-сервисами - PullRequest
0 голосов
/ 23 сентября 2011

Я выставил сервис в приложении как Webservice, но он не получает поддержки для Dao, который вводится через Dao, у кого-нибудь есть idaa? Стек

23 сентября 2011 г. 18:48:58 com.sun.jersey.spi.container.ContainerResponse mapMappableContainerException SEVERE: RuntimeException не удалось быть сопоставлены с ответом, повторно выбрасывая в контейнер HTTP java.lang.NullPointerException в com.scor.omega2.reference.services.impl.CurrencyServiceImpl.getCurrency (CurrencyServiceImpl.java:33) в com.scor.omega2.reference.services.impl.CurrencyServiceImpl.getCurrency (CurrencyServiceImpl.java:41) в sun.reflect.NativeMethodAccessorImpl.invoke0 (собственный метод) в sun.reflect.NativeMethodAccessorImpl.invoke (неизвестный источник) в sun.reflect.DelegatingMethodAccessorImpl.invoke (неизвестный источник) в java.lang.reflect.Method.invoke (неизвестный источник) в com.sun.jersey.spi.container.JavaMethodInvokerFactory $ 1.invoke (JavaMethodInvokerFactory.java:60) в com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider $ TypeOutInvoker._dispatch (AbstractResourceMethodDispatchProvider.java:185)

Код

@Path("/currency")
@Named("currencyService")
@Scope(BeanDefinition.SCOPE_SINGLETON)
public class CurrencyServiceImpl implements CurrencyService {

    @Inject
    private CurrencyDao currencyDao;

    /**
     * Service to get Currency Code Value
     * 
     * @param cur_cf
     * @param lag_cf
     * @return entity.
     */
    public BrefTcurl getCurrency(String cur_cf, char lag_cf) {
        return currencyDao.getCurrency(cur_cf, lag_cf);
    }

    @GET
    @Produces( { MediaType.APPLICATION_XML})
    @Path("{cur_cf}/{lag_cf}")
    public BrefTcurl getCurrency(@PathParam("cur_cf") String cur_cf, @PathParam("lag_cf") String lag_cf) {
        System.out.println("cur_cf "+cur_cf +" lag_cf "+lag_cf);
        return getCurrency(cur_cf,lag_cf.charAt(0));
    }
}

Валюта Дао Класс

@Named("currencyDao")
@Scope(BeanDefinition.SCOPE_SINGLETON)
public class CurrencyDaoImpl implements CurrencyDao
{

@PersistenceContext
private EntityManager entityManager;

/**
 * Service to get Currency Code Value
 * 
 * @param cur_cf
 * @param lag_cf
 * @return entity.
 */
public BrefTcurl getCurrency(String cur_cf, char lag_cf)
{
    return entityManager.find(BrefTcurl.class, new BrefTcurlId(lag_cf, cur_cf));
}

}

1 Ответ

0 голосов
/ 24 сентября 2011

Я думаю, что сервлет, который вы настроили в web.xml, неправильный. Вам нужно использовать тот, который знает о Spring и делегирует Spring bean-компонентам для обработки запроса.

com.sun.jersey.spi.spring.container.servlet.SpringServlet
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...