Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    41

    Leggere file su web service axis2

    Ciao a tutti.
    Ho sviluppato un'applicazione in java che legge dei file di configurazione da file system. La lettura dei parametri avviene correttamente.
    Ora ho trasformato con eclipse l'applicazione in un web service e i file non vengono più letti. Mi viene restituita l'eccezione FileNotFoundException.
    Dove devo mettere i miei file di configurazione per farli leggere correttamente?
    Un'altra cosa:
    la mia applicazione utilizza anche JDBC per connettersi ad un DB postgres. Da quando ho creato il web service nemmeno i dirver per il DB vengono riconosciuti. Come dovrei fare per farli caricare?
    Grazie mille

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    41
    Aggiungo anche un'altra cosa:
    si può creare un web service da più di una classe Java?
    Mi spiego meglio. supponiamo di avere la classe A che espone un metodo pubblico a() e la classe B che espone un metodo pubblico b().
    Posso creare un web service che mi permetta di interfacciarmi sia ad a() che a b() o devo per forza farne 2?

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    Ritorniamo al punto di partenza: che file di configurazione servono ad un web service?
    Se hai bisogno di qualcosa ricorda che il web service in genere è una web application e le web application hanno le info dentro web.xml

    Seconda cosa: per ogni servizio hai una interfaccia che viene esposta al cliente indicante COSA fa il servizio. Ogni interfaccia costituisce un servizio e questa può avere 10 metodi differenti, ma chi effettivamente implementa il servizio deve impegnarsi ad offrire un comportamento per tutti i metodi dell'interfaccia (la implementa)

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    41
    Originariamente inviato da valia
    Ritorniamo al punto di partenza: che file di configurazione servono ad un web service?
    Se hai bisogno di qualcosa ricorda che il web service in genere è una web application e le web application hanno le info dentro web.xml
    I file di configurazione a cui mi riferisco sono relativi all'applicazione.
    Ad esempio uno contiene i dati di connessione al DB (url, username, password) e un'altro è il file di configurazione di log4j.
    Io questi file li avevo piazzati dentro una cartella chiamata conf.
    Avevo provato a piazzare la cartella conf con dentro i file dentro WEB-INF e anche dentro WEB-INF/lib ma non vengono trovati.
    La domanda era dove devo mettere la cartella conf per farla "vedere".

    Seconda cosa: per ogni servizio hai una interfaccia che viene esposta al cliente indicante COSA fa il servizio. Ogni interfaccia costituisce un servizio e questa può avere 10 metodi differenti, ma chi effettivamente implementa il servizio deve impegnarsi ad offrire un comportamento per tutti i metodi dell'interfaccia (la implementa)
    è chiaro un servizio deve essere implementato da una classe.
    Io per trasformare una classe java in web service seleziono una voce del menu in Eclipse che appunto serve a quello scopo. Poichè non ho trovato il modo di farlo per più classi in modo unificato chiedevo se fosse possibile. Il risultato che vorrei ottenere è un'unica interfaccia che richiami però più classi che implementano il servizio.

    PS: ho capito che ne sai molte più di me e ti ringrazio per seguirmi però ti pregherei di non dare giudizi tipo "non hai mai programmato" . Non voglio fare polemica ma non mi sembra proprio il caso di sporcare il forum con queste cose. Se chiedo qui è perchè da solo non riesco a risolvere e non ho le basi tecniche per capire a fondo la situazione. Grazie

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    se vuoi davvero imparare molla eclipse e fai a manina. Eclipse (come qualsiasi IDE) è uno strumento a supporto del programmatore, che ti aiuta a fare quello che in altri casi faresti con qualche passo in più. Ecco perché sono contraria all'uso dell'IDE per chi sta imparando e studiando, perché ti perdi in errori dovuti proprio all'uso dell'IDE e ai default a cui questo si riferisce.

    Detto questo, esco un po OT rispondendoti al non hai mai realmente programmato: il fatto che tu consideri l'operazione di compilazione di un servizio un qualcosa a basso livello rende ovvio che non ti è chiaro cosa significa lavorare a basso livello e soprattutto non ti è chiaro che spesso avere l'IDE è solo un bonus che hai in quanto ci sono tantissimi casi in cui lavori solo con editor visuale (vi per intenderci) e compili a riga di comando.
    Ora se vuoi giocare sono affari tuoi, ma la realtà ti chiede di saper fare le cose senza IDE (anche scrivere gli odiosi makefile e i build ant per la compilazione in C o java) e sono dell'idea che prima impari a farle le cose, prima cresci professionalmente parlando.


    Infine riguardo l'errore, il web-xml lo leggi???

    Riguardo l'interfaccia: spiegami, tu vuoi mettere nella stessa 10 metodi e vuoi 10 classi che implementa un solo metodo?

    ps riguardo al "ne so più di te" viene dall'averci sbatutto un bel po' sui web services e dall'aver mollato ogni editor visuale per la compilazione automatica e aver creato script in ant che mi fanno le operazioni richieste, da cui basta una shell per mettere su il servizio, compilarlo, deployarlo ed eseguirlo.

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    41
    Infine riguardo l'errore, il web-xml lo leggi???
    codice:
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
         <display-name>SystemManagerProject</display-name> 
         <welcome-file-list> <welcome-file>index.html</welcome-file>
              <welcome-file>index.htm</welcome-file> 
              <welcome-file>index.jsp</welcome-file>
              <welcome-file>default.html</welcome-file>
              <welcome-file>default.htm</welcome-file>
              <welcome-file>default.jsp</welcome-file> 
              <welcome-file>/axis2-web/index.jsp</welcome-file>
          </welcome-file-list>
          <servlet> 
               <display-name>Apache-Axis Servlet</display-name> 
               <servlet-name>AxisServlet</servlet-name>
               <servlet-class>org.apache.axis2.transport.http.AxisServlet</servlet-class>
          </servlet>
          <servlet-mapping>
               <servlet-name>AxisServlet</servlet-name>
               <url-pattern>/servlet/AxisServlet</url-pattern>
          </servlet-mapping>
          <servlet-mapping>
               <servlet-name>AxisServlet</servlet-name>
               <url-pattern>*.jws</url-pattern>
          </servlet-mapping>
          <servlet-mapping>
               <servlet-name>AxisServlet</servlet-name>
               <url-pattern>/services/*</url-pattern>
          </servlet-mapping>
          <servlet>
               <display-name>Apache-Axis Admin Servlet Web Admin</display-name>
               <servlet-name>AxisAdminServlet</servlet-name>
               <servlet-class>org.apache.axis2.webapp.AxisAdminServlet</servlet-class>
               <load-on-startup>100</load-on-startup>
          </servlet>
          <servlet-mapping>
               <servlet-name>AxisAdminServlet</servlet-name>
               <url-pattern>/axis2-admin/*</url-pattern> 
          </servlet-mapping>
    </web-app>
    Io questo file non l'ho modificato. Non ho nè aggiunto nè tolto nulla.

    Riguardo l'interfaccia: spiegami, tu vuoi mettere nella stessa 10 metodi e vuoi 10 classi che implementa un solo metodo?
    Quello delle 10 classi era solo un esempio.
    Vorrei che le mie x classi che fanno cose diverse e hanno metodi diversi siano accessibili dalla stessa interfaccia.
    Ti spiego: se ad esempio io ho 2 classi (Cliente con 3 metodi e Fornitorecon 5 metodi **diversi**) vorrei che tutti e 8 i loro metodi fossero accessibili dalla stessa interfaccia web, pur rimanendo 2 classi distinte.

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    Allora il web.xml contiene come vedi informazioni riguardanti l'applicazione (come va su ecc) e non ricordo perfettamente la sintassi da usare per il db, prova con quello che ho trovato
    qui

    o con ricerche simili. Perdonami, non sono sicura su questo e preferisco fermarmi.

    Allora ti è poco chiaro il concetto di interfaccia:

    con una interfaccia tu dichiari cosa fa una classe e quali servizi ti espone. Se tu hai la classe ClasseImpl che implementa la tua interfaccia, questa è obbligata a dare una implementazione a TUTTI i metodi dell'interfaccia. Puoi avere 3 classi differenti che danno implementazioni differenti alla stessa interfaccia, ma non puoi avere una classe che implementa un metodo e un'altra che ne implementa altri.

    Prendi in giro tutto dando metodo dummy (vuoto) a quello che non ti interessa, ma l'implementazione (anche se dummy) esiste.
    Se vuoi che una classe abbia un sottoinsieme dei metodi dichiarati in una interfaccia devi fare 2 interfacce differenti

  8. #8
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    41
    Ok, pensavo che si potesse fare invece ora ho capito che per interfaccia si intende esattamente la stessa cosa di java.
    Grazie per il chiarimento!

  9. #9
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    ecco che ritorni al punto in cui ti dicevo che i quattro clic sono dannosi: l'annotazione adesso ti consente di "saltare" il fatto che tu manualmente devi definire un'interfaccia e devi dire che il servizio implementa la stessa (come facevi qualche anno fa), ma internamente il meccanismo di funzionamento rimane invariato: l'interfaccia dichiara COSA fa il servizio ed è a quella che fa riferimento il wsdl.

    Infine il web service è una classe java vera e propria se lo implementi in java e come tale deve rispettare tutte le regole del linguaggio

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.