Springを使用する既存のJava EE Webアプリケーションを更新しています。私のweb.xmlにweb.xmlからspring beanを起動する
は、次のように定義されたサーブレットがあります:
今<servlet>
<display-name>My Example Servlet</display-name>
<servlet-name>MyExampleServlet</servlet-name>
<servlet-class>com.example.MyExampleServlet</servlet-class>
</servlet>
、このクラスでは、私は@Autowite注釈を追加する必要があります。
class MyExampleServlet extends HttpServlet {
@Autowired (required = true)
MyExampleBean myExampleBean;
[...]
}
問題があることですMyExampleBeanは、Application Server (私の場合、weblogic.servlet.internal.WebComponentContributor.getNewInstance ...)によって初期化されます。
so、Springは認識しませんSpringは "myExampleBean"を結ぶチャンスがありません。
どのように解決するには? つまり、myExampleServletがmyExampleBeanへの参照を取得できるように、web.xmlまたはMyExampleServletをどのように変更する必要がありますか?
この初期コードをMyExampleServlet、 に追加する可能性がありますが、servletContextへの参照が必要です。 servletContextへの参照を取得するには?お使いのアプリケーションコンテキストXMLで
ApplicationContext context = WebApplicationContextUtils.getWebApplicationContext(servletContext);
myExampleBean = (MyExampleBean) context.getBean("myExampleBean");
:
はhttp://tomcat.apache.org/tomcat-5.5-doc/servletapi/javax/servlet/GenericServlet.html
コード変更を参照してください。問題は、SpringがMyExampleServletのインスタンスを作成していないということです(Springを作成するのはWeblogicです)。したがって、SpringはmyExampleBeanをautowiringしません。 –