J'ai un projet Web qui est fait en utilisant JSF & J'ai également un module EJB. J'entre des données dans un FORMULAIRE & essayez de sauvegarder ces données dans la base de données via mon bean session.ClassCastException lors du transfert de données au module EJB
La séquence d'étapes est la suivante.
1) L'utilisateur ouvre l'écran avec une forme
2) Il remplit les champs de formulaire avec des données
3) le nombre de clics sur le bouton Enregistrer
4) Le managed bean capture toutes les valeurs saisies & les ajoute à un ArrayList (contenant des haricots entité. ci-dessous)
for(String tagName : formTagNames){ // For all the tag names in the FORM
String value = request.getParameter(tagName); // Get the value of the field
myArrayList.add(new DynamicForm(tagName, value)); // Create a bean & add to list
}
5) Ensuite myArrayList est envoyé au module EJB de persistance. (Je l'ai fait la mise en correspondance correctement aussi)
@EJB(name="DynamicFormFacadeLocal", mappedName="DynamicFormFacade/local")
private static DynamicFormFacadeLocal dynamicFormFacadeLocal;
// Send it to EJB module for persistence
dynamicFormFacadeLocal.addDynamicFormFields(myArrayList);
6) Quand je tends la bean session & essayer de itérer myArrayList
public Integer addDynamicFormFields(ArrayList<DynamicForm> formDetailsList) {
if(formDetailsList == null || formDetailsList.isEmpty()) return 0;
setupResources(); // Setting up all necessary connections & stuff
int count = 0;
try{
entityTransaction.begin();
for(DynamicForm form : formDetailsList){
entityManager.persist(form);
count++;
}
entityTransaction.commit();
}
catch(Exception e){
e.printStackTrace();
entityTransaction.rollback();
}
finally{
cleanupResources(); // Cleanup all connections & resources
}
return count;
}
7) Mais il me donne un ClassCastException & Je don Je ne comprends pas pourquoi .. !! :(
18:17:42,210 INFO [org.hibernate.impl.SessionFactoryImpl] building session factory
18:17:42,214 INFO [org.hibernate.impl.SessionFactoryObjectFactory] Not binding factory to JNDI, no JNDI name configured
18:17:42,219 ERROR [STDERR] java.lang.ClassCastException: com.test.dynamiform.beans.entity.DynamicForm cannot be cast to com.test.dynamiform.beans.entity.DynamicForm
18:17:42,219 ERROR [STDERR] at com.test.dynamiform.beans.session.DynamicFormFacade.addDynamicFormFields(DynamicFormFacade.java:32)
18:17:42,219 ERROR [STDERR] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
18:17:42,219 ERROR [STDERR] at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
18:17:42,219 ERROR [STDERR] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
18:17:42,219 ERROR [STDERR] at java.lang.reflect.Method.invoke(Unknown Source)
18:17:42,220 ERROR [STDERR] at org.jboss.aop.joinpoint.MethodInvocation.invokeTarget(MethodInvocation.java:122)
.... etc
Quelqu'un peut-il s'il vous plaît me aider celui-ci .. ???
Je suis totalement perdu ici que j'envoie & itérer le même type d'objets ... :(
Merci à l'avance.
Asela.
Comment web et ejb sont empaquetés? Dans une seule oreille ou en tant qu'applications autonomes? Et comment la classe DymanicForm est rendue visible aux deux? – Osw