Je suis en train de créer un programme pour enregistrer un utilisateur et lui permettre d '"acheter" un ebook via Corba. La principale erreur que je reçois est la suivante:IDL Abstract Method Error
BookServant is not abstract and does not override abstract method storeUserDetails(UserDetails) in distBkOperations
Le ebook.idl ressemble actuellement les suivantes:
module BookAny {
struct UserDetails {
string name;
string password;
};
struct BookDetails {
string bookID;
string title;
string price;
};
interface distBk {
void storeUserDetails(in UserDetails myUserDetails);
any getUserDetails(in string name, out any myUserDetails);
void storeBookDetails(in BookDetails myBookDetails);
any getBookDetails(in string title, out any myBookDetails);
}; };
BookServant.java se présente comme suit:
import java.io.*;
import java.util.*;
import BookAny.*;
import org.omg.CORBA.*;
public class BookServant implements distBkOperations{
public static Hashtable hashtable;
public static ORB orb;
public BookServant (org.omg.CORBA.ORB orb){
hashtable = new Hashtable();
this.orb=orb;
}
public void storeUserDetails (BookAny.UserDetails myUserDetails, AnyHolder password){
Any pass = orb.create_any();
myUserDetails.password="safepasswordlol";
pass.insert_string(myUserDetails.password);
password.value = pass;
hashtable.put(myUserDetails.name, myUserDetails);
System.out.println(myUserDetails.name + " You have registered and your password is " +myUserDetails.password+myUserDetails.name);
}
public Any getUserDetails (String name, AnyHolder myUserDetails){
Any anyAB = orb.create_any();
try {
UserDetails tempAddrBook = (UserDetails)hashtable.get(name);
UserDetailsHelper.insert(anyAB, tempAddrBook);
myUserDetails.value = anyAB;
}catch (Exception e) {
System.err.println("Error E: "+e);
e.printStackTrace(System.out);
}
}
/* public void getUserDetails (String name, org.omg.CORBA.AnyHolder myUserDetails){
Any anyAB = orb.create_any();
try {
UserDetails tempAddrBook = (UserDetails)hashtable.get(name);
UserDetailsHelper.insert(anyAB, tempAddrBook);
myUserDetails.value = anyAB;
}catch (Exception e) {
System.err.println("Error E: "+e);
e.printStackTrace(System.out);
}
}*/
}
je peux Générer les fichiers de l'IDL correctement, mais lorsque vous essayez de compiler le BookServant ou BookServer.java, j'obtiens l'erreur ci-dessus. J'ai essayé de changer l'interface d'idl de vide à tout et toujours rien. Toute aide serait appréciée!
Essayé et je me fais toujours la même erreur message, d'autres suggestions? – Kaneo71
vous devez toujours implémenter la version surchargée de 'storeUserDetails' à savoir celle avec le paramètre' BookDetails' – Reimeus