0
개체를 내 RMI에서 보내지 만 null 값을 찾습니다.개체가 내 RMI 서버에서 null입니다.
Client.java :
service.InterfaceMathML stub = (service.InterfaceMathML) Naming.lookup("rmi://localhost:1099/BK");
System.out.println("id : " +this.MTI_creerFichier.getId()); // Show 10
int ValRetour = stub.Create(this.MTI_creerFichier, this.MTI_creerFichier.getId(), "CreateFichier");
내 인터페이스 :
import java.rmi.Remote;
import java.rmi.RemoteException;
public interface InterfaceMathML extends Remote{
public int Create(Object unObject,String user, String unType)throws RemoteException;
}
내 서버 :
public int Create(Object unObject, String user, String unType) throws RemoteException {
// TODO Auto-generated method stub
switch(unType)
{
case "CreateFichier" :
System.out.println("Create Fichier");
System.out.println((CreateFichier)unObject.getId()); // show Null
ystem.out.println(user); // show userTest
FichierImpl = new JDBCDAO_Fichier();
this.validation = FichierImpl.Validation_ADD((CreateFichier)unObject, user);
if (this.validation == 1) { this.entier = FichierImpl.add((CreateFichier)unObject, user); }
else { this.entier = this.validation; }
break;
그렇게 할 수없는 내 Object가 서버에 널 (null) I를 왜?
제발 도와주세요.
편집
내 RMI 서버
public static void main(String[] args) {
// TODO Auto-generated method stub
String url = "rmi://localhost:1099/BK";
try {
LocateRegistry.createRegistry(1099);
MathMLServiceImpl od = new MathMLServiceImpl();
// je met a dispo un objet dans un url
Naming.rebind("rmi://localhost:1099/BK", od);
System.out.println("Service pret");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
내 CLientRMI (내 serverRMI에) 내 MAINTestServer.java
od = new MathMLServiceImpl() CreateFichier fi = new CreateFichier();
fi.setLogin("test"); fi.setDossierParent("dossierparenttest");
fi.setNomFichier("nomfichiertest");
fi.setContenuFichier("essaie");
int val = od.Create(fi, "test", "CreateFichier"); System.out.println(val);
그것은의 작품에서 : 내가 다형성을 사용 lanch하기 클래스가 내 수업을 검색합니다 :
Class<?> actionClass = Class.forName("metierToInte." + nomDto + "Action");
System.out.println(actionClass);
Constructor<?> actionConstructe = actionClass.getConstructor(dto.getClass()); //dto.getClass()
System.out.println("constructeur : " + actionConstructe.toString());
ActionInteToMetier uneActione = (ActionInteToMetier) actionConstructe.newInstance(dto);
System.out.println("action : " + uneActione.toString());
//System.out.println("action : " + uneActione.toString());
uneActione.executer();
이 exemple 내 수업 "CreateFichierAction"에 대한 작품은, 나는 그것이 작동하지만 나의 목적 문자열을 보낼 수있어
this.MTI_creerFichier = creerFichier;
service.InterfaceMathML stub = (service.InterfaceMathML) Naming.lookup("rmi://localhost:1099/BK");
System.out.println("id : " +this.MTI_creerFichier.getId()); // Show 10
int ValRetour = stub.Create(this.MTI_creerFichier, this.MTI_creerFichier.getLogin(), "CreateFichier");
System.out.println("valeur retour rmi " + ValRetour);
soucr : CreerFichier
package dto.metierToInte;
import java.io.Serializable;
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "")
@XmlRootElement(name = "CreateFichier")
public class CreateFichier
extends Fichier
implements Serializable
{
private static final long serialVersionUID = 1L;
@XmlAttribute(name = "id")
protected int id;
public String getId() {
return id;
}
}
그렇지 않은 경우, 작업의 만 내 RMI CLIENT
이 작업을 수행합니다. CreateFichier val = (dto.metierToInte.CreateFichier) unObject; System.out.println (val.getId()); /// show null – Hann
다시 객체가 null이 아닙니다. getNomFichier()가 null을 반환합니다. – Sanjeev
mainTest로 서버에 Lanch 객체가 있으면 작동합니다.하지만 내 RMI 클라이언트에 객체를 안치하면 null입니다. – Hann