NullPointerException bei Parameterübergabe an Webservice mittels kSoap2

  • Themenstarter Gelöschtes Mitglied 12486
  • Beginndatum
G

Gelöschtes Mitglied 12486

Gast
Hallo,

ich entwickle derzeit eine Android Anwendung, welche mit ksoap2 einen Webservice konsumieren soll. Mein Problem bei der ganzen Sache liegt derzeit aber weniger auf der Androidseite, sondern eher auf der Serverseite. Der Server ist im Grunde nur eine einfache Version dessen, was später eingesetzt werden soll und implementiert ausschließlich einen Webservice, welcher ein paar primitive Datentypen zurückgeben soll. Um jedoch an die Daten zu kommen, muss vorher natürlich eine Authentifizierung stattfinden, was durch Benutzername- und Passwortübergabe gemacht werden soll (Sicherheit ist hier mal außen vor). Der Server wurde mit Hilfe von NetBeans erzeugt, d.h. auch der Webservice wurde mit Hilfe der Tools von NetBeans erzeugt.

Hier mal Auszüge des Codes auf der Serverseite, ich hab mal nur die vermeintlich wichtigen Teile rausgesucht.

Zuerst der Webservice:
Java:
@WebService()
public class ItemService {
    @EJB
    private ItemControl ejbRef;

@WebMethod(operationName = "getNextItem")
    public ItemStruct getNextItem(@WebParam(name = "username")
    String username, @WebParam(name = "pwd")
    String pwd) {
        return ejbRef.getNextItem(username, pwd);
    }
}

Dieser verweist auf die Klasse ItemControl, welche an der Stelle wie folgt aussieht:
Java:
@Stateless
public class ItemControl {
    private static final String name = "name";
    private static final String pass = "pass";

public ItemStruct getNextItem(String username, String pwd) {
        ItemStruct is = getIs(true);
        
        //falls nicht korrekte name u pwd - leeres struct mit fehlerMsg senden
        if(!checkLoginDetails(username, pwd)){
            is.setErrorMsg("Falscher Benutzername oder Passwort");
            is.setFlag(true);
        }
        return is;
    }
public boolean checkLoginDetails(String username, String pwd){
        if(username.equals(name) && pwd.equals(pass))
            return true;
        else
            return false;
                    
    }
private ItemStruct getIs(boolean valid){
        ItemStruct is = new ItemStruct();
        if(!valid){
            is.setFlag(true);
            is.setErrorMsg("Ein Fehler trat auf. Falscher LogIn?");
        }
        else{
            is.setFlag(false);
            is.setMsg("Alles Super, weiter so!");
        }
        
        return is;
    }

Die Klasse ItemStruct kann ich hier vernachlässigen, da sie nur einfache Datentypen kapselt.

Auf der Androidseite füge ich dem SoapRequest über folgende Zeilen die Parameter hinzu und führe dann den SoapRequest durch.

Java:
SoapObject request = new SoapObject(NAMESPACE, METHOD);
PropertyInfo pi1 = new PropertyInfo();
				pi1.setName("username");
				pi1.setValue("name");
				PropertyInfo pi2 = new PropertyInfo();
				pi2.setName("pwd");
				pi2.setValue("pass");
request.addProperty(pi1);
				request.addProperty(pi2);
SoapSerializationEnvelope soapEnvelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
		soapEnvelope.dotNet = true;
		soapEnvelope.setOutputSoapObject(request);

		AndroidHttpTransport aht = new AndroidHttpTransport (URL);
aht.debug = true;
			aht.call(soapMap.getSoapAction(method), soapEnvelope);
Log.e("SOAP_DUMP", aht.requestDump);
			SoapObject response = (SoapObject) soapEnvelope.getResponse();
			Log.e("SOAP_DUMP", aht.responseDump);
... // Verarbeitung der response-nachricht

Ich kann gern noch weitere Informationen posten, jedoch stehen in den Klassen noch viele andere Methoden und es wird schnell unübersichtlich.

Mein Problem ist nun, dass jedes Mal wenn ich per Android auf diesen Webservice zugreife, dass der Server eine EJBException aufgrund einer NullPointerException wirft. Und zwar tritt jedes Mal in der Zeile
" if(username.equals(name) && pwd.equals(pass))" der Methode checkLoginDetails() der NullPointer auf. Also bekommt der Server entweder keine Parameter übergeben oder er "verschluckt" diese irgendwie. Ich habe aber absolut keine Ahnung, woran das liegen könnte. Bei anderen Webservices funktioniert die Parameterübergabe auf diese Weise problemlos.

Kann mir da jemand weiterhelfen? Woran könnte es liegen, dass der Webservice hier den NullPointer wirft?

Gruß
huetz
 
G

Gelöschtes Mitglied 12486

Gast
Ich habe das Problem lösen können.

Es lag anscheinend nicht am Server selbst, sondern daran, dass ich in der Androidapp die Anweisungen für den Soapteil in verschiedene Callable's ausgelagert habe, welche dann passend erzeugt und an einen ExecutorService weitergegeben wurden. Nachdem ich jedoch diesen Teil einfach mal weggelassen habe und das ganze in einer großen verschachtelten switch-case-Anweisung untergebracht habe, funktionierte der Soapaufruf auf einmal.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
R NullPointerException außerhalb von NetBeans [Anfänger] SOA 4
T Error beim Versuch, einen Webservice zu kontaktieren SOA 4
J SOA WebService JAX-WS Java-Klasse per wsimport generieren lassen SOA 3
K Webservice: 4 counts of IllegalAnnotationExceptions SOA 0
D Zertifikat Authentifizierung am Webservice SOA 0
P JBOSS 7 und Restful Webservice SOA 1
N WebService Ausgabe einer ArrayList SOA 2
N Web Services Client aus externen WebService erstellen SOA 4
I SOAP Webservice Methoden und Parameter auslesen SOA 3
F [WebService] Array von eigenen Objekten SOA 0
P SOAP Webservice mit HTTP Basic Authentifizierung SOA 1
M JAVA Webservice Währungsrechner DRINGEND Hilfe SOA 1
A Up-/ Download von Dateien zu WebService SOA 6
D WebService Technik - Aufwand Änderung des Application Server SOA 3
R Webservice Timeout Konfiguration SOA 3
D SOAP Webservice (SAP) SOA 3
MQue WebService Versionierung SOA 9
L [AXIS2] OutOfMemory Exception bei Übertragung von größerer Datei via Webservice SOA 3
A Funktion mit Map als WebService SOA 4
T Webservice serviceName im Handler ermitteln SOA 3
N Webservice Einbinden wsdl SOA 7
M Edit und Remove über Webservice SOA 3
F Client Problem gegen Webservice SOA 3
P Java Webservice mit JWS Bindingnamen customizen SOA 4
L wie ArrayList an Webservice geben? SOA 3
B Webservice Config / SoapStub: Best Practice SOA 3
S Objektübertragung Fehler über Webservice SOA 10
E Webservice durch Java ansprechen SOA 7
L Webservice HTTPS Netbeans SOA 2
M Webservice per URL ansprechen SOA 14
M Webservice Client erstellen und XML Request senden SOA 3
T Verwendung von Eclipse Projekten im Axis2 Webservice SOA 8
S Webservice als "CronJob" SOA 4
M Webservice (JaxWS) extern verfügbar machen SOA 5
M Welches WebService Framework ist denn das beste FRAMEWORK? SOA 5
D Webservice fürs Internet sichtbar machen SOA 2
W WebService aus einer HTML-Seite SOA 9
T WebService innerhalb von Seam-Projekt, komplexe Datentypen SOA 6
N JAX-WS WebService und Tomcat 7 SOA 11
E Trennung von Daten und WebService und Wiederverwendung der Daten SOA 2
D Sicherheit bei REST-Webservice SOA 19
G WebService, was darf der Client alles sehen SOA 19
M Nutzen des Webservice AWSECommerceService SOA 1
S AXIS2 Webservice: Umgang mit komplexen Datentypen SOA 5
G Webservice Contract first SOA 8
G WebService -> ServletFilter SOA 2
G WebService Concurrency SOA 19
M Fehler beim Veröffentlichen eines Webservice SOA 6
G WebService Types SOA 7
G OpenLigaDB Webservice Client SOA 4
G WebService WSDL SOA 3
A PHP WebService aus Java aufrufen SOA 2
R Proxy WebService erstellen SOA 3
G JPA/ Webservice: Passwort Feld einer Klasse fürs Lesen "verschleiern" SOA 10
G WebService mit wsdl erstellen SOA 4
P WebService SOA 6
H Webservice: BindingProvider SOA 6
D WebService DB abfrage SOA 4
mabe83 EJB Klassen für Webservice nutzen SOA 2
S Webservice-Client-Klasse gibt immer null zurück SOA 3
G WebService mit komplexen Objekten SOA 5
C Problem mit Java Webservice - SOAPBinding.Style - Wrapper class fehlt SOA 1
T Rest Webservice der 2 verschiedene XML Objekte(JaxB) entgegennimmt SOA 10
S Webservice, Vererbung und Netbeans SOA 3
E Lesen der kompletten SOAP als WebService Provider/Server SOA 4
T WebService Authentifizierung SOA 11
mabe83 Suche Hilfe zum Thema Webservice + EJB SOA 3
T WebService erstellen SOA 28
T Krankes Vorhaben: Von VB auf Java Webservice SOA 10
M Webservice RuntimeModelerException? SOA 5
G Webservice mit Java aufrufen SOA 2
G WebService: mehrere methoden mit demselben Namen SOA 4
T einfacher Webservice SOA 3
G Webservice im JBoss: runtime modeler error SOA 3
V webservice von aussen (webbrowser) ansprechen SOA 2
V Webservice, allgemeine Fragen SOA 9
G Alfresco - WebDav oder WebService SOA 2
0 Webservice nutzen (rpc/enc style) SOA 2
R XML verschicken mit Webservice Server Client SOA 2
R Webservice aufrufen mit SOAP Style.DOCUMENT ? SOA 5
G Webservice zugreifen SOA 6
G Deploy Apache CXF WebService mit Eclipse SOA 2
G Webservice mit JSON SOA 8
T Webservice über Tomcat loggen SOA 5
thE_29 WebService - JAXBElement - richtige Klasse? SOA 2
L Probleme mit komplexen Datentypen in einen Webservice SOA 2
O brauche hilfe bei java/webservice geschichte SOA 29
M Webservice/ Axis/ Bea Weblogic Server 8.1 SOA 12
E Webservice konfigurieren SOA 2
Y Webservice erstellen SOA 4
F Tutorial zu WebService mit JBoss, Eclipse und Jax-ws? SOA 3
C Webservice im Unternehmen SOA 4
L webservice frage (eclipse/wtp, wsdl) SOA 12
U Webservice mit Axis, Hello World Beispiel SOA 2
J Frage zu Webservice SOA 3
L WebService TestClient Problem SOA 2

Ähnliche Java Themen

Neue Themen


Oben