2009-05-25 19 views
1

私はCXFを使用してwsdlからWebサービスを生成しています。 生成されたWebサービスの注釈は@WebServiceです WebサービスからSpring Beanへの参照を取得するにはどうすればよいですか? 私の春の豆にはすべて@Serviceという注釈が付いていて、Webアプリケーションの にアクセスできます。 Webサービスからもアクセスするにはどうすればよいですか?私は次のことを試してみた@WebServiceからSpring Beanへの参照を取得する

:私はgetRequiredWebApplicationContext でgetWebApplicationContextを交換した場合

public class TestWSImpl implements TestWSSoap{ 

    @Resource 
    public WebServiceContext wsContext; 

    @Override 
    public String getTest() { 

     ServletContext servletContext= (ServletContext) wsContext.getMessageContext().get(MessageContext.SERVLET_CONTEXT); 

     ApplicationContext context = WebApplicationContextUtils.getWebApplicationContext(servletContext); 

     return "Test"; 
    } 
} 

しかしgetWebApplicationContextメソッドはnull

を返す私は、エラーメッセージが表示されます:いいえWebApplicationContextが見つかりました:何のContextLoaderListenerが登録されていませんか?

誰でもアイデアはありますか?

おかげ アロン

答えて

1

あなたはJUnitの4.4を使用していた以上、あなたが春2.5 JUnitの注釈を使用して、それを注入することができれば。ここに例があります。もちろん

http://hamletdarcy.blogspot.com/2008/12/autowired-junit-tests-with-spring-25.html

それは、このアプローチは、テストが開始されたときに、Webサービスは、Webコンテキストで実行されている必要があることは言うまでもないです。あなたはそれをしましたか?

また、それは長い時間前だったSOAP UI.

+0

私はこの問題を解決するための標準的な方法ではないように私はこの作業にJUnitを使用したくありません。 とにかくSOAP UIツールを使用しています –

0

を使用してテストWSDLベースのサービスを好むかもしれません。 私は私のコードで見ていると私は私が春のinitすべき次のような方法 を置くことを参照してください。

@PostConstruct 
public void init(){ 
    JaxWsServerFactoryBean svrFactory = new JaxWsServerFactoryBean(); 
    svrFactory.setServiceClass(MyWebService.class); 
    svrFactory.setAddress("http://address.com"); 
    svrFactory.setServiceBean(wsHandler); 
    svrFactory.getInInterceptors().add(new LoggingInInterceptor()); 
    svrFactory.getOutInterceptors().add(new LoggingOutInterceptor()); 
    svrFactory.create(); 

}

それはあなたの問題を解決するなら、私に教えてください....

関連する問題