Objektübertragung Fehler über Webservice

SirBaros

Bekanntes Mitglied
Hallo,

ich habe ein Datenobjekt, welches ich gerne über ein Webservice an den Client schicken möchte.
Leider bekomm ich immer einen Fehler, woran kann das liegen?

Bitte um Hilfe

Danke=)

Java:
package com.pxr.tutorial.soap.weather;

import java.io.*;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.Time;
import java.util.*;

public class AnzeigeObjekt implements Serializable {

	private String user_id;
	private String art;
	private String kategorie;
	private String titel;
	private String beschreibung;
	private Date datum;
	private Time zeit;
	private String name;
	private String telefon;
	private String email;
	private String bild;

	public AnzeigeObjekt() {
	}

	public AnzeigeObjekt(String user_id, String art, String kategorie,
			String titel, String beschreibung, Date datum, Time zeit,
			String name, String telefon, String email, String bild) {
		this.user_id = user_id;
		this.art = art;
		this.kategorie = kategorie;
		this.titel = titel;
		this.beschreibung = beschreibung;
		this.datum = datum;
		this.zeit = zeit;
		this.name = name;
		this.telefon = telefon;
		this.email = email;
		this.bild = bild;
	}

	public String getUser_id() {
		return user_id;
	}

	...

	public void holeDaten(ResultSet rs) {

		try {
			user_id = rs.getString("User_id");
			art = rs.getString("Art");
			kategorie = rs.getString("Kategorie");
			titel = rs.getString("Titel");
			beschreibung = rs.getString("Beschreibung");
			datum = rs.getDate("Datum");
			zeit = rs.getTime("Zeit");
			name = rs.getString("Name");
			telefon = rs.getString("Telefon");
			email = rs.getString("Email");
			bild = rs.getString("Bild");

		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

	}

	public String toString() {
		return "Anzeige fuer " + user_id + ";" + art + ";" + kategorie + ";"
				+ titel + ";" + beschreibung + ";" + datum + ";" + zeit + ";"
				+ name + ";" + telefon + ";" + email + ";" + bild;
	}
}

Methode im WebService

Java:
public AnzeigeObjekt getAnzeige(String user, String passwort) {

		AnzeigeObjekt anzeige = null;
	
		if (user.equals(this.user) && (passwort.equals(this.passwort))) {

			try {
				Connection con = DatabaseConnector.openConnection("root",
						"mysqlapp");
				Statement statement = con.createStatement();

				ResultSet rs = statement
						.executeQuery("Select * from beitraege");

				while (rs.next()) {

					anzeige = new AnzeigeObjekt();
					anzeige.holeDaten(rs);
				}

			} catch (Exception e) {
				
			}
			return anzeige;
                }
                return null;

	}
 
M

Marcinek

Gast
Welcher Fehler kommt?

Eventuell sind Teile deiner "AnzeigeObjekt" - Klasse nicht Serialisierbar?

Z.b. das resultSet?
 

SirBaros

Bekanntes Mitglied
Der Webservice und das ResultSet funktioniert, habe es mal mit nur einem String probiert. da hat die ÜBertragung eines Textes geklappt.HAt sonst jemand eine Idee?
 
Zuletzt bearbeitet:
S

SlaterB

Gast
den Fehler zu nennen ist deiner Ansicht nach weiter nicht nötig?

> habe es mal mit nur einem String probiert. da hat die ÜBertragung eines Textes geklappt

hast du auch schonmal eine eigene Klasse mit nur einem Dummy-Attribut, etwa String, übertragen?
 

SirBaros

Bekanntes Mitglied
Also, der fehler kommt wenn ich einen Client erzeuge.

org.apache.axis2.AxisFault: <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Body><soapenv:Fault><faultcode>soapenv:Server</faultcode><faultstring>java.lang.reflect.InvocationTargetException</faultstring><detail /></soapenv:Fault></soapenv:Body></soapenv:Envelope>
at org.apache.axis2.util.Utils.getInboundFaultFromMessageContext(Utils.java:536)
at org.apache.axis2.description.OutInAxisOperationClient.handleResponse(OutInAxisOperation.java:375)
at org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:421)
at org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:229)
at org.apache.axis2.client.OperationClient.execute(OperationClient.java:165)
at dhbw.app.webservice.ServiceStub.getAnzeige(ServiceStub.java:491)
at dhbw.app.webservice.ServiceStart.main(ServiceStart.java:21)
 
Zuletzt bearbeitet:

SirBaros

Bekanntes Mitglied
> hast du auch schonmal eine eigene Klasse mit nur einem Dummy-Attribut, etwa String, übertragen?

Habe ich noch nicht, probier ich aber schnell.
 
S

SlaterB

Gast
viel sagt die Fehlermeldung ja nicht aus,
im Server besteht bisher kein Logging oder? das try/catch mit Exception enthält schon mal gar keine Fehlerbehandlung

versuche

Java:
public AnzeigeObjekt getAnzeige(String user, String passwort) {
  AnzeigeObjekt a = null;
  // Log getAnzeige gestartet
  try {
     a = getAnzeige2(user, passwort); // bisherige Methode
       // Log getAnzeige2 erfolgreich
  } catch(Throwable t) {
    // Log Fehler aufgetreten
  }
  return a;
}
wie du loggen kannst musst du wissen, System.out.println() oder was anderes,
gibt es die Erfolgsmeldung oder was anderes?
 

SirBaros

Bekanntes Mitglied
Also ich hab mal was versucht ein Objekt mit nur einem String zu übergeben, funktioniert auch nicht.


Meine Testmode im Server von gerade
Java:
public Testobjekt getName(String user, String passwort) {

		Testobjekt ob = new Testobjekt("GUSTAV");
		return ob;
	}

Das Testobjekte
Java:
package dhbw.app.webservice;

import java.io.Serializable;

public class Testobjekt implements Serializable {

	private String name;

	public Testobjekt(String n) {
		name = n;

	}

	public String toString() {
		return "name = " + name;
	}

}

Clientaufruf
Java:
public class Start {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub

		try {
			ServiceStub ss = new ServiceStub();

			ServiceStub.GetName g = new ServiceStub.GetName();
			g.setUser("testuser");
			g.setPasswort("fussball");

			ServiceStub.GetNameResponse resp = ss.getName(g);
			System.out.println("GEHT?");

		} catch (AxisFault e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (RemoteException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

}




Im Server besteht kein Loggin
 

SirBaros

Bekanntes Mitglied
ich kopiere diese klasse mal herien und melde mich gleich wieder.


Neein geht auch nicht, bin ein bisschen verzweifelt.
 
Zuletzt bearbeitet:

Ähnliche Java Themen

Neue Themen


Oben