Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    problema Web Service+java (aiuto per la tesi)

    Salve a tutti, sono appena iscritto e ho un problema da sottoporvi.
    Per la mia tesi devo, tra le altre cose, effettuare il deployment del Semantic Broker che ho scritto in Java.
    La piattaforma è su Axis 1.0+Tomcat, e l'applicazione è costituita di un bel numero di classi diverse.

    Ora, dato che una classe in particolare (di nome "Broker") si occupa di gestire le richieste del client, mi interessa che solo quella sia chiamabile dal client, e solo per quella ho effettuato il deployment.

    Il problema è che ogni metodo di "Broker" va a chiamare metodi delle altre classi, ed è proprio qui la questione.
    Infatti sono riuscito a far funzionare una versione "minimale" dello web service, togliendo dai metodi di "Broker" tutti i riferimenti a classi esterne, e così sembra funzionare. Solo quando creo un oggetto di una delle altre classi esterna o invoco uno dei metodi delle altre classi, il client non ottiene nulla come ritorno.

    La domanda che vi sottopongo è: uno web service può essere costituito di più di una classe?
    In caso affermativo, come garantire la comunicazione tra loro?
    In caso negativo, come trasformare in web service un'applicazione con una decina di classi?

    Grazie in anticipo,
    Emanuele

  2. #2
    Alcuni particolari in più:
    -ho provato, con un semplice esempio, a verificare la possibilità di utilizzare più classi , ed effettivamente sembra possibile. Ho provato infatti a chiamare un metodo di una classe che effettua una operazione tra 2 numeri e ritorna un risultato alla classe deployata.
    Fin qui tutto bene. Il problema è che nel mio caso quando creo un certo oggetto, lo web service smette di funzionare: non esegue più alcuna operazione dopo la creazione dell'oggetto.

    -con un approccio RMI il tutto funziona bene.

    Perchè con gli web service no? C'è qualcosa che non so, qualche regola generale di programmazione che sto ignorando?

    Grazie,
    Emanuele

  3. #3
    Dopo innerevoli tentativi, ho alfin pensato che il problema dovesse essere qualcosa di interno ad Axis. Infatti da locale tutto funzionava, mentre se lo chiamavo da client come web service no.

    Ho tentato allora di effettuare esperimenti ad hoc e quel che ho scoperto è che le librerie che mi servono per le classi (uddi4j, jena ed altre) erano sì raggiungibili dalla shell quando compilavo, ma non da Axis!

    Dunque nessun errore in compilazione, perchè il classpath della console era corretto, ma errori (sostanzialmente di ClassNotDef) in esecuzione.

    Soluzione: inserire nella cartella axis/WEB-INF/lib i file .jar che importo nelle classi. Così Axis le trova e non sta tranquillo.
    Problema praticamente risolto, devo solo finire a cercare le librerie da inserire.

    bye
    Emanuele

    P.S.:mi sono domandato e risposto da solo

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.