Ich verwechselte mit erweitert, ich ging mit der Theorie n löste einige Beispiele, Aber wenn ich zu meinem Hauptprojekt komme noch ich etwas falsch machen und ich bin nicht in der Lage, es zu finden .Wie zu verwenden erstreckt sich auf den Wert Super-Klasse
Kann mir jemand helfen.
ConnectionServiceImpl
wird von RPC
aufgerufen, wenn der Client die COnnectionServiceImpl ruft die connectionParameter gesetzt .Ich es in dem durch die Anzeige geprüft
Map<String, String>
aber als zweiter RPC-Aufruf an die ObjectStore
von Client getan es gibt mir Fehler NullPointerException
für die gleiche parameter
, die in der super
Klasse
public class ConnectionServiceImpl extends RemoteServiceServlet{
// some code including initialization
private ConnectionParameter connectionParameter ;
private Map<String, String> parameter;
public String connection() {
connectionParameter = new ConnectionParameter("abc","xyz",repositoryName);
setConnectionParameter();
setSession();
return getConnected();
}
protected Map<String, String> getConnectionParameter() {
Iterator iterator = parameter.keySet().iterator();
while(iterator.hasNext()){
String key = iterator.next().toString();
String value = parameter.get(key);
System.out.println("key " + key + " value "+value);
}
return parameter;
}
private void setConnectionParameter(){
this.parameter=connectionParameter.getParameter();
}
}
Diese obige Klasse funktioniert gut.
jetzt,
public class ObjectStore extends ConnectionServiceImpl {
// some code
public ObjectStore() {
// TODO Auto-generated constructor stub
this.parameter = getConnectionParameter(); **<--- NullPointer Error**
}
}
Kann das jemand erklären oder sagen, den Fehler
public class ConnectionParameter {
private String repositoryID;
private static String username;
private static String password;
private static String AtomPubUrl;
private static String bindingType;
private Map<String, String> parameter = new HashMap<String, String>();
public ConnectionParameter(String username, String password,
String repositoryId) {
// TODO Auto-generated constructor stub
AtomPubUrl = "http://192.168.1.32:9083/CaseManager/resources/Service";
bindingType = BindingType.ATOMPUB.value();
this.username = username;
this.password = password;
this.repositoryID=repositoryId;
setConnectionParameter();
}
Map<String, String> getParameter() {
return parameter;
}
private void setConnectionParameter() {
parameter.put(SessionParameter.USER,username);
parameter.put(SessionParameter.PASSWORD, password);
parameter.put(SessionParameter.ATOMPUB_URL,AtomPubUrl);
parameter.put(SessionParameter.BINDING_TYPE, bindingType);
parameter.put(SessionParameter.REPOSITORY_ID, repositoryID);
}
}
Stacktrace
java.lang.NullPointerException
at com.server.ConnectionServiceImpl.getConnectionParameter(ConnectionServiceImpl.java:107)
at com.server.ObjectStore.<init>(ObjectStore.java:27)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at java.lang.Class.newInstance0(Class.java:355)
at java.lang.Class.newInstance(Class.java:308)
at org.mortbay.jetty.servlet.Holder.newInstance(Holder.java:153)
at org.mortbay.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:428)
hinzufügen Stack-Trace sowie pls und mögliche weitere Details in Code – fmucar
Wie sieht der Elternklassenkonstruktor aus? Das Problem wird verschwinden, wenn der Standardkonstruktor der übergeordneten Klasse den Verbindungsparameter initialisiert. – Scorpion
@Scorpion: Es gibt keinen Konstruktor. – NewCodeLearner