Saya menulis program sederhana dalam bentuk web java tetapi saya menerima kesalahan berikut:
WELD-000072 Kacang yang dikelola yang menyatakan ruang lingkup pasif harus mampu pasif. Bean: Bean Terkelola [kelas
BeanPakage.DemoBeans
] dengan kualifikasi [@Any
@Default
@Named
]
Adakah yang bisa memberi tahu saya dari mana kesalahan ini berasal?
import javax.enterprise.context.SessionScoped;
import javax.inject.Named;
@Named("DemoBeans")
@SessionScoped
public class DemoBeans {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
java
cdi
jboss-weld
christina
sumber
sumber
@Interceptors
masalah serializable adalah masalah saya!Ini harus dapat bersambung.
Lihat jawaban ini.
https://community.jboss.org/thread/179828
Hormat saya, Anders
sumber
Buat
DemoBeans
serial@Named("DemoBeans") @SessionScoped public class DemoBeans implements Serializable { private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } }
sumber
Anda juga dapat mengaktifkan perilaku pasif kacang Anda dengan anotasi:
@Stateful (pasvationCapable = true)
Dalam hal ini Anda tidak perlu mengimplementasikan antarmuka yang dapat diserialisasi.
Salam. Jorge
sumber
Verifikasi impor
(beberapa kali netbeans menggunakan yang lain dari perpustakaan lain)
Contoh. impor javax.faces.view.ViewScoped; ubah dengan import javax.faces.bean.ViewScoped;
sumber
javax.faces.bean.ViewScoped
mendukungjavax.faces.view.ViewScoped
. Apakah ini berarti saya harus memeriksa semua kacang cakupan tampilan saya dan membuatnya dapat diserialkan? Darijavax.faces.bean.ViewScoped
javadoc:@deprecated This has been replaced by {@code javax.faces.view.ViewScoped}. The functionality of this corresponding annotation is identical to this one, but it is implemented as a CDI custom scope.
Disebabkan oleh: org.jboss.weld.exceptions.DeploymentException: WELD-000072: Bean yang mendeklarasikan cakupan pasif harus mampu pasif. Bean: Bean Terkelola [class com.marcos.controller.PersonaBean] dengan qualifier [@Default @Named @Any]
Saya selesaikan, ternyata CDI, saya tidak mengenali kacang, saya hanya membuatnya lebih eksplisit
@Named @ViewScoped public class PersonaBean implements Serializable { @Inject private IPersonaService service; public void registrar() { try { service.registrar(null); }catch (Exception e) { e.printStackTrace(); } } }
solusi untuk saya:
@Named ("PersonaBean") @ViewScoped public class PersonaBean implements Serializable { @Inject private IPersonaService service; public void registrar() { try { service.registrar(null); }catch (Exception e) { e.printStackTrace(); } } }
sumber