私はMVCフレームワークとしてjsf2.0を使用し、依存性注入のためだけにSpringを使用しています。私はそれを機能させましたが、Spring Bean を作成するときに問題はほとんどありません。My JSFBean (ManagedBean) では、Spring の @Component アノテーションを使用する必要があります。そうしないと、機能させることができません。そのため、ManagedBean のコンストラクターにコードがあると、Spring が例外をスローします。コンストラクターコードなしで完璧に機能しています。他に必要なものがあればコメントしてください。
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'myBean' defined in file [C:\Documents and Settings\KshiS\My Documents\NetBeansProjects\Sp_Js_1\build\web\WEB-INF\classes\com\ksh\excel\MyBean.class]: Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [com.ksh.excel.MyBean]: Constructor threw exception; nested exception is java.lang.NullPointerException
私のJSF Beanコードは
package com.ksh.excel;
import java.util.ArrayList;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;
import org.springframework.beans.factory.annotation.Autowired;
/**
*
* @author KshiS
*/
@ManagedBean
@ViewScoped
public class MyBean {
@Autowired
private Userdao userdao;
ArrayList<String> arrayList = new ArrayList<String>();
public MyBean()
{
Object object = FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("Userid");
if(object != null)
{
arrayList.add("Session Value");
}
else
{
arrayList.add("Temp Value");
}
}
public void print()
{
System.out.println(userdao.print());
}
}
それを解決する方法。? または、ManagedBean の @Component アノテーションなしで機能させる可能性はありますか。?
J2EE6依存性注入を使用するのではなく、SpringをDIとして使用したくないというもう1つの重要な質問。しかし、glassFish や JBOSS のような純粋な j2EE サーバーを使用しなければならないという 1 つの問題もあります。Tomcatで使用することは可能ですか。? Tomcat が純粋な j2ee サーバーではないことはわかっていますが、DI を使用したいだけです。