Ergebnis 1 bis 5 von 5

Thema: java.sql.SQLException: Unknown type

  1. #1
    MisterM ist offline Neuer Benutzer
    Registriert seit
    08.06.2009
    Ort
    Stuttgart
    Beiträge
    2

    Frage java.sql.SQLException: Unknown type

    Hallo!

    Ich habe hier folgende Situation, die ich bisher nicht lösen konnte: es geht um die Abfrage von Daten aus einer Postgre DB mit PostGIS-Erweiterung.

    Wenn nun in einer Abfrage die Spalte "the_geom" mit ausgelsen wird, bekomme ich in meiner Java-Anwendung folgende Exception:

    java.sql.SQLException: Unknown type: 0101000020E610000024D6E25300EE5DC06A87BF266B684240
    at org.postgis.PGgeometry.setValue(PGgeometry.java:38 )
    at org.postgresql.jdbc2.AbstractJdbc2Connection.getOb ject(AbstractJdbc2Connection.java:391)
    at org.postgresql.jdbc2.AbstractJdbc2ResultSet.getObj ect(AbstractJdbc2ResultSet.java:2329)
    at de.p3.rei.test.JavaGIS.main(JavaGIS.java:23)

    Ausgelöst wird die Exception, wenn auf das ResultSet über getObject() zugegriffen wird.

    Das ganze passiert auf einem Server, der bei mir im Geschäft extra für solche Aufgaben zur Verfügung steht. Bei mir lokal auf meinem Rechner tritt dieser Fehler nicht auf, auch wenn ich Daten aus der DB vom Server hole.

    Hat jemand eine Idee oder etwas ähnlich schon einmal gehabt?

    Auf beiden Rechnern läuft Java SDK 6.0. Einziger Unterschied ist, dass auf dem Server Postgre 8.2 und auf meinem Rechner 8.3 installiert ist...
    Geändert von MisterM (08.06.2009 um 14:51 Uhr) Grund: Nachtrag, wann Exception ausgelöst wird
    Alles wird gut!

  2. #2
    ads
    ads ist offline Super-Moderator
    Registriert seit
    08.02.2006
    Ort
    MD
    Beiträge
    4.056

    Standard

    Hast du in der 8.2 die PostGIS Erweiterung installiert?
    Xandrian: Kurz gesagt: Du hast ein falsches Konzept und willst nicht auf ads hören

    Jetzt NEU: PostgreSQL - Datenbankpraxis für Anwender, Administratoren und Entwickler

    PostgreSQL Service & Support

  3. #3
    MisterM ist offline Neuer Benutzer
    Registriert seit
    08.06.2009
    Ort
    Stuttgart
    Beiträge
    2

    Standard

    Ja hab ich. Das Framework ist schon seit einiger Zeit in Verwendung und wird nebenbei weiter entwickelt.

    Dieser Fehler tritt bisher zum ersten Mal auf, vor einiger Zeit liefen Tests über zwei Wochen ohne Probleme und seitdem wurde ansich nichts an Postgre oder den zugehörigen Bibliotheken geändert.
    Alles wird gut!

  4. #4
    symbiont ist offline Erfahrener Benutzer
    Registriert seit
    17.03.2008
    Ort
    NULL
    Beiträge
    1.320

    Standard

    Zitat Zitat von MisterM Beitrag anzeigen
    Ja hab ich. Das Framework ist schon seit einiger Zeit in Verwendung und wird nebenbei weiter entwickelt.

    Dieser Fehler tritt bisher zum ersten Mal auf, vor einiger Zeit liefen Tests über zwei Wochen ohne Probleme und seitdem wurde ansich nichts an Postgre oder den zugehörigen Bibliotheken geändert.
    die zahl bei "unknown type" ist eine serialID des typs der da wohl deserialisiert werden soll - ich kenne die Postgis API nicht - daher kann ich dir jetzt nicht sagen, org.postgis.PGgeometry.setValue( ) da genau vorhat.

    ueber die SerialID wird üblicherweise sichergestellt, dass bei der deserialisation die gleiche version einer klasse instantiiert wird, wie das objekt vor der serialisation hatte.

    d.h. z.B. dass zwar eine klasse des selben typs im class-path vorliegt, aber evtl. eine andere serialID hat - was darauf hindeutet, dass es ne andere version ist - also "nicht passt".

  5. #5
    symbiont ist offline Erfahrener Benutzer
    Registriert seit
    17.03.2008
    Ort
    NULL
    Beiträge
    1.320

    Standard nachtrag

    http://www.koders.com/java/fidB52DDC...?s=Geometry#L9
    Code:
        public void setValue(String value) throws SQLException
        {
            value = value.trim();
            if( value.startsWith("SRID")) {
                //break up geometry into srid and wkt
                PGtokenizer t = new PGtokenizer(value,';');
                value = t.getToken(1);
            }
    
            if( value.startsWith("MULTIPOLYGON")) {
                geom = new MultiPolygon(value);
            } else if( value.startsWith("MULTILINESTRING")) {
                geom = new MultiLineString(value);
            } else if( value.startsWith("MULTIPOINT")) {
                geom = new MultiPoint(value);
            } else if( value.startsWith("POLYGON")) {
                geom = new Polygon(value);
            } else if( value.startsWith("LINESTRING")) {
                geom = new LineString(value);
            } else if( value.startsWith("POINT")) {
                geom = new Point(value);
            } else {
                throw new SQLException("Unknown type: " + value);
            }
        }
    hier sehen wir, warum die exception ausgeloest wird
    meine vermutung war also falsch - dem uebergebenen string muss also vorweg noch etwas angefuegt werden, damit die funktion weiss, um was fuer daten es sich handelt - auf deutsch: der parameter value muss noch aufgepeppt werden
    Geändert von symbiont (15.06.2009 um 14:23 Uhr)

Ähnliche Themen

  1. Problem Unknown error executing Pre-installation Actions
    Von andreas im Forum Installation von PostgreSQL
    Antworten: 6
    Letzter Beitrag: 13.10.2011, 20:02
  2. Welchen Type für Geld?
    Von CenText im Forum Allgemeines
    Antworten: 3
    Letzter Beitrag: 24.01.2009, 15:30
  3. probleme rund um type
    Von Sigh im Forum Allgemeines
    Antworten: 12
    Letzter Beitrag: 14.01.2009, 15:44
  4. Row%type
    Von patwilly im Forum PL/pgSQL
    Antworten: 2
    Letzter Beitrag: 18.11.2008, 10:40
  5. Dynamischer Return type?
    Von cevou im Forum PL/pgSQL
    Antworten: 6
    Letzter Beitrag: 25.08.2008, 15:39

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Links: Tobias Bauer - IT- und Funkdienstleistungen   -   Bilderrahmen-kaufen.de - Der Onlineshop für Bilderrahmen & Fotorahmen   -   Funkforum