2011-07-21 9 views
0

JAX-WSを使い始めました。私はサービスクラスとDAOクラスを作成しました。私のサービスは正常に動作していますが、NullPointerExeption b'cozはDAOには見つかりません。私は、サービスクラスからDAOへの呼び出ししようとしています:JAX-WSを使用してWebサービスからDAOにアクセスする方法

package com.nmmc.works.service.impl; 
@WebService(serviceName="MyService") 
public class SecurityServiceImpl extends GenericServiceImpl implements ISecurityService 
{ 
    private ISecurityDAO securityDAO; 

....getter setter methods.... 

@WebMethod 
    public Integer getBidAcceptanceIdForSDPayment(Integer tMastNo) 
    { 
     InternalResultsResponse<Object> response = getSecurityDAO().getMyMethod(tenderMastNo); 
     if(response != null && response.getResultsList().size() > 0){ 
      return Integer.parseInt(response.getFirstResult().toString()); 
     }else{ 
      return -1; 
     } 

    } 

とSun-jaxws.xml ..... web.xmlに

<b> 
<?xml version="1.0" encoding="UTF-8"?> 
    <endpoints version="2.0" xmlns="http://java.sun.com/xml/ns/jax-ws/ri/runtime"> 
     <endpoint 
      implementation="com.nmmc.works.service.impl.SecurityDepositServiceImpl" 

      name="MyServices" 
      url-pattern="myPath/SecurityServiceImpl" 
      /> 
    </endpoints></b> 

を....

<b><listener> 
     <listener-class>com.sun.xml.ws.transport.http.servlet.WSServletContextListener</listener-class> 
    </listener> 

    <servlet> 
     <servlet-name>WebServices</servlet-name> 
     <servlet-class>com.sun.xml.ws.transport.http.servlet.WSServlet</servlet-class> 
     <load-on-startup>2</load-on-startup> 
    </servlet> 

    <servlet-mapping> 
     <servlet-name>WebServices</servlet-name> 
     <url-pattern>/ws/*</url-pattern> 
    </servlet-mapping></b> 
+0

getSecurityDAO()がdaoを正しくインスタンス化または返すかどうかを確認します。あなたのスタックトレースは何を言っていますか? – mezmo

+0

どこでDAO実装を注入していますか? – dbreaux

答えて

1

SecurityServiceImplには実行時にDAOがありません。あなたは、DAOが適切に作成され、それによって注入されることを保証する必要があります。

+0

実際にAnnotationをServiceから削除すると、上記のAnnotationsがServiceに到達したときに正しく動作しますが、dao.myをインスタンス化することはできませんwork-service-application-context.xml \t \t <プロパティ名=" securityDAO "REF = "securityDAOTarget"> \t \t \tと動作-DAO-アプリケーションのcontext.xml <ビーンID =" securityDAOTarget "クラス=" com.nmmc.works.dao.impl.SecurityDAOImpl "> \t \t <プロパティ名=" のHibernateTemplate」REF = "cessHibernateTemplate" /> \t – Balasaheb

+0

@mezmoこれはDAOをインスタンス化できないため、nullを返します...私はwork-service-application-context.xmlでサービスを設定しました。 \t \t <プロパティ名=" securityDAO "REF = "securityDAOTarget">作品-DAO-アプリケーションのcontext.xml <ビーンID =において \t \t \tとDAO "securityDAOTarget" クラス=" com.nmmc。 works.dao.impl.SecurityDAOImpl "> \t \t <プロパティ名=" のHibernateTemplate」REF = "cessHibernateTemplate" /> \t – Balasaheb

+0

@Balasaheb:何があなたのセキュリティサービスを使用し、どこで入手んトン彼はからのサービス? –

関連する問題