2011-09-23 31 views
0

我已經在應用程序中公開了一個服務作爲Webservice,但是它並沒有通過Dao注入Dao,任何人都有idaa? 堆棧Spring依賴不能使用Webservices

2011年9月23日下午6時48分58秒com.sun.jersey.spi.container.ContainerResponse mapMappableContainerException重度:在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) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMet hodAccessorImpl.invoke(Unknown Source)at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)at java.lang.reflect.Method.invoke(Unknown Source)at com.sun.jersey.spi.container.JavaMethodInvokerFactory $ 1。調用(JavaMethodInvokerFactory.java:60) 在 com.sun.jersey.server.impl.model.method.dispatch.Abs​​tractResourceMethodDispatchProvider $ 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)); 
    } 
} 

貨幣Dao Cla ss

@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)); 
} 

} 
+0

這是通過xml還是註釋配置的?如果xml,我們可以看到xml配置嗎?如果註釋可以看到xml配置和'CurrencyDao'類? –

+0

這是通過詮釋。我明天早上到辦公室時會盡快添加班級代碼.. – Gaurav

+0

添加了道碼。如果您發現任何問題,請提出建議。該代碼適用於正常的Web應用程序流程(無Web服務)。 – Gaurav

回答

0

我想你在web.xml中配置的servlet是錯誤的。您需要使用知道spring和委託的類來彈出託管bean來處理請求。

com.sun.jersey.spi.spring.container.servlet.SpringServlet 
+0

我們使用基於註解的依賴關係。 – Gaurav

+0

謝謝,上面的配置已經解決了這個問題。 – Gaurav