私はeclipse axis2を使用してwsdlからWebサービスクライアントを作成しています。axis2 Webサービスのサーバーリクエストとしてjsf beanを取得します
私のimplの方法は次のとおりです。
public Output[] startProcess(Message[] Messages){
MyApplicationBean managementBean = (MyApplicationBean) FacesContext.getCurrentInstance().getExternalContext().getApplicationMap().get("myapp");
...
}
しかし、私は実行すると:
http://localhost:8080/MyProject/services/portStartProcessService方法startProcess
で、私はしかしFacesContext.getCurrentInstance()
戻りをnull、それは私の方法に到達したTomcatのデバッグ中に参照してください。私は、Webサービスの呼び出しに(アプリケーションスコープなど)JSF Beanを使用するにはどうすればよい
私のweb.xml(その一部)
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.jsf</url-pattern>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>AxisServlet</servlet-name>
<url-pattern>/servlet/AxisServlet</url-pattern>
</servlet-mapping>
?
非常に良い答え。実際には - JSFアプリケーションスコープBeanを置き換えたい場合、春にこのように定義する方法は、サーバーが起動するとメソッドを呼び出すでしょうか? – Dejell
@Odelya:Webアプリケーションでは、WebApplicationContextのインスタンスが作成され、カスタムApplicationContextListenerに登録されます。これは、すべてのシングルトンBeanが作成されているため、初期化としてマークされたメソッド(または@PostContructで注釈が付けられたメソッド)は、アプリケーションの起動前に実行されます。 – fdreger