Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it L'avatar di Fra
    Registrato dal
    Oct 1999
    Messaggi
    221

    [Java] - SOAP (SAAJ) - Ottenere info da doc SOAP

    Ancora su SOAP :dhò: (Angelo, ricordi ?)

    Ipotizziamo che ho questo messaggio SOAP che mi restituisce un Provider (con cui instauro una connession) :


    <?xml version="1.0" ?>
    - <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
    - <SOAP-ENV:Body>
    - <m:DiscoverResponse xmlns:m="urn:schemas-microsoft-com:xml-analysis">
    - <m:return xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    - <root xmlns="urn:schemas-microsoft-com:xml-analysis:rowset" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    - <xsd:schema xmlns="urn:schemas-microsoft-com:xml-analysis:rowset" targetNamespace="urn:schemas-microsoft-com:xml-analysis:rowset" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:sql="urn:schemas-microsoft-com:xml-sql" elementFormDefault="qualified">
    - <xsd:element name="root">
    - <xsd:complexType>
    - <xsd:sequence>
    <xsd:element name="row" type="row" minOccurs="0" maxOccurs="unbounded" />
    </xsd:sequence>
    </xsd:complexType>
    </xsd:element>
    - <xsd:simpleType name="uuid">
    - <xsd:restriction base="xsd:string">
    <xsd:pattern value="0-9a-zA-Z]{8}-[0-9a-zA-Z]{4}-[0-9a-zA-Z]{4}-[0-9a-zA-Z]{4}-[0-9a-zA-Z]{12}" />
    </xsd:restriction>
    </xsd:simpleType>
    - <xsd:complexType name="row">
    - <xsd:sequence>
    <xsd:element name="CATALOG_NAME" type="xsd:string" sql:field="CATALOG_NAME" minOccurs="0" />
    <xsd:element name="DESCRIPTION" type="xsd:string" sql:field="DESCRIPTION" minOccurs="0" />
    <xsd:element name="ROLES" type="xsd:string" sql:field="ROLES" minOccurs="0" />
    <xsd:element name="DATE_MODIFIED" type="xsd:dateTime" sql:field="DATE_MODIFIED" minOccurs="0" />
    </xsd:sequence>
    </xsd:complexType>
    </xsd:schema>
    - <row>
    <CATALOG_NAME>FoodMart 2000</CATALOG_NAME>
    <DESCRIPTION />

    <ROLES>All Users</ROLES>
    <DATE_MODIFIED>2003-09-26T19:08:34</DATE_MODIFIED>
    </row>
    - <row>
    <CATALOG_NAME>Pippo </CATALOG_NAME>
    <DESCRIPTION />

    - <ROLES>
    - <Error>
    <ErrorCode>8</ErrorCode>
    <Description>The provider could not determine the value.</Description>
    </Error>
    </ROLES>
    <DATE_MODIFIED>2003-09-26T19:22:20</DATE_MODIFIED>
    </row>
    - <row>
    <CATALOG_NAME>Tutorial</CATALOG_NAME>
    <DESCRIPTION />

    - <ROLES>
    - <Error>
    <ErrorCode>8</ErrorCode>
    <Description>The provider could not determine the value.</Description>
    </Error>
    </ROLES>
    <DATE_MODIFIED>2003-09-26T18:57:46</DATE_MODIFIED>
    </row>
    </root>
    </m:return>
    </m:DiscoverResponse>
    </SOAP-ENV:Body>
    </SOAP-ENV:Envelope>


    Io vorrei estrapolare da questo msg SOAP i dati in rosso e inserirli in oggetti String.
    Uso il JWSDP in particolare le librerie SAAJ.
    Sto avendo dei grossi problemi in quanto viene lanciata un'eccezione di ClassCastException quando cerco di eseguire le classiche operazioni di ricerca (tramite il metodo getChildElement() che restituisce Iterator). L'eccezione viene lanciata nel momento in cui faccio il cast di un'oggetto, tornato da Iterator, a SOAPElement.

    Mi sapete aiutare?
    SO : Windows XP - Linux Gentoo
    Java - Visual Basic - C++

  2. #2
    Utente di HTML.it L'avatar di Angelo1974
    Registrato dal
    Feb 2003
    Messaggi
    1,107
    Ciao Fra.... come va? Continua l'avventura web services? Noto che ora riesci a stabilire le connessioni con i provider e a comunicare... io invece mi sono un po' fermato.... ma la tua domanda mi stimola a cercare di aiutarti a risolvere il problema in maniera che io impari qualcosina in + , solo che per oggi sono un po' saturo... semmai gli do 1 sguardo domani, ok?
    Ciao
    Se vuoi trovare l'arcobaleno, devi sopportare la pioggia

  3. #3
    Utente di HTML.it L'avatar di Fra
    Registrato dal
    Oct 1999
    Messaggi
    221
    Ciao Angelo!
    Se hai tempo prova cn Axis, che se funziona passo ad Apache.
    Queste SAAJ mi stanno facendo impazzire, secondo me è un bug!!
    SO : Windows XP - Linux Gentoo
    Java - Visual Basic - C++

  4. #4
    Utente di HTML.it L'avatar di Angelo1974
    Registrato dal
    Feb 2003
    Messaggi
    1,107
    Ciao Fra....
    Scusami ma non ho avuto tempo di vedere il tuo problema, ieri tra blackout e cose varie non ho avuto modo di accendere il PC, semmai gli do uno sguardo stasera dopo il lavoro.... ciao
    Se vuoi trovare l'arcobaleno, devi sopportare la pioggia

  5. #5
    Utente di HTML.it L'avatar di Fra
    Registrato dal
    Oct 1999
    Messaggi
    221
    Angelo, nn preoccuparti tutto risolto. :gren:
    SO : Windows XP - Linux Gentoo
    Java - Visual Basic - C++

  6. #6
    Utente di HTML.it L'avatar di Angelo1974
    Registrato dal
    Feb 2003
    Messaggi
    1,107
    Ok. PS. Mi posti il codice per vedere come hai fatto?
    Così aggiungo un altro tassello ai web Service.. sempre se per te non è 1 problema.. ciao
    Se vuoi trovare l'arcobaleno, devi sopportare la pioggia

  7. #7
    Utente di HTML.it L'avatar di Fra
    Registrato dal
    Oct 1999
    Messaggi
    221
    Certo Angelo ... magari può servire a qualcuno.

    Questo è il codice secondo le specifiche di SUN:

    ---------------------------------------------
    Iterator rows = findChildElements(body);
    while (rows.hasNext()){
    SOAPElement element = (SOAPElement)rows.next();
    System.out.println(element.getValue());
    }
    ----------------------------------------------
    Con il codice sopra riportato mi da un errore di Cast di SOAPElement.

    Questo è invece il codice che funziona.

    ---------------------------------------------
    Iterator rows = findChildElements(body);
    while (rows.hasNext()){
    Node node = (Node) rows.next();
    SOAPElement element = (SOAPElement)rows.next();
    System.out.println(element.getValue());
    }
    ----------------------------------------------

    Nn ho ancora capito se è un bug o un'errore mio ...
    SO : Windows XP - Linux Gentoo
    Java - Visual Basic - C++

  8. #8
    Utente di HTML.it L'avatar di Fra
    Registrato dal
    Oct 1999
    Messaggi
    221
    Ho appena finito di segnalare l'accaduto alla SUN, nel database dei BUG.
    Se mi rispondono ti faccio sapere
    SO : Windows XP - Linux Gentoo
    Java - Visual Basic - C++

  9. #9
    Utente di HTML.it L'avatar di Angelo1974
    Registrato dal
    Feb 2003
    Messaggi
    1,107
    Ok grazie! Infatti la cosa mi interessa visto che tra un po' voglio esaminare nel dettaglio il JWSDP... cmq in caso di aiuto.... ci si becca quì.
    Ciao e buon lavoro
    Se vuoi trovare l'arcobaleno, devi sopportare la pioggia

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.