< Indietro | Avanti >

Lezione 2.2: Bind della tabella dipendenti all'origine dati del servizio Web

L'applicazione My Company Directory visualizza un elenco di tutti i record correnti dei dipendenti nella struttura. I record vengono visualizzati in una JTable (employeesTable) con colonne che è possibile ordinare, che comprendono il nome, il cognome, l'e-mail e l'ID dipendente. Per ottenere i record per la tabella, è necessario associare employeesTable all'oggetto dati restituito dall'origine dati del servizio Web.

Panoramica degli oggetti dati, origini dati e binder

Per ottenere un'oggetto dati locale che la employeesTable possa utilizzare, verrà utilizzato l'editor visivo per aggiungere un'origine dati all'applicazione. L'origine dati si connette al proxy dei servizi Web di esempio e rileva i metodi di servizio disponibili per l'applicazione. Verrà quindi scelto il metodo di servizio getLightEmployeeRecord reso disponibile dall'origine dati. Infine, employeesTable verrà associata nell'applicazione ai campi restituiti nell'oggetto dati (lightEmployeeRecordRows).

È possibile creare tutte queste origini dati e gli oggetti dati in modo rapido e semplice mediante le classi binder integrate dell'editor visivo Java. L'editor visivo fornisce un insieme di classi ed interfacce generiche generate nel progetto durante il collegamento dei componenti visivi ai factory di dati. Le classi binder vengono generate per impostazione predefinita nel pacchetto jve.generated. L'editor visivo fornisce le classi binder come un'implementazione generica che è possibile personalizzare e migliorare per soddisfare le necessità dell'applicazione. Questa esercitazione dimostra la potenza e la flessibilità delle classi binder predefinite, anche per operazioni molto semplici.

Importante: Prima di cominciare questo esercizio, si consiglia di leggere i seguenti argomenti della guida. Tali argomenti contengono informazioni utili sulla funzionalità e la logica degli oggetti dati, origini dati e binder forniti dall'editor:
  • Panoramica sui binder di dati
  • Riferimento all'API binder

Per questa esercitazione, verrà utilizzata un'origine dati del servizio Web, diversi tipi di oggetti dati e diversi tipi di binder nell'applicazione. Quando si aggiungono istanze di questi oggetti all'applicazione, l'editor visivo aggiunge le classi necessarie al pacchetto jve.generated nel progetto dove è possibile estendere, sostituire o riscrivere la logica del binding dei dati. L'editor visivo Java fornisce il supporto visivo per il binding di oggetti mostrando sull'area a formato libero della vista Progettazione, gli oggetti dati, le origini dati e i binder che l'applicazione sta utilizzando. L'editor visivo traccia linee tra i componenti visivi, gli oggetti dati e le origini dati per mostrare i collegamenti correnti per ciascun oggetto selezionato.

Il seguente diagramma costituisce una semplice panoramica dell'interazione reciproca dei diversi componenti visivi, binder, oggetti dati e origini dati. L'applicazione creata in questa esercitazione illustra un uso leggermente più complesso e creativo dei binder. Questo diagramma non rappresenta esattamente i binder, gli oggetti dati e le origini dati nell'applicazione di esempio che si sta creando.

Figura 1. Questo diagramma illustra un semplice rapporto tra i componenti visivi,i binder, gli oggetti di dati e le origini datiQuesto diagramma illustra un rapporto tra i componenti visivi,i binder, gli oggetti di dati e le origini dati

Nella figura 1, ciascun componente visivo ha il proprio binder che lo associa a un oggetto dati oppure, nel caso di un pulsante, a un'origine dati. I binder per i campi di testo collegano il campo a una particolare proprietà dell'oggetto dati. Sia l'oggetto dati riga sia l'oggetto dati di questo diagramma ricavano i propri dati da chiamate dirette a un servizio che risiede sull'origine dati. L'oggetto dati per i campi di testo utilizza un valore chiave ricavato dalla riga selezionata nella tabella come argomento per la chiamata a Service2, che restituisce un record completo che include presumibilmente più informazioni sulla riga selezionata nella tabella. Tale record completo, a volta, viene utilizzato come argomento per il binder di azione del pulsante quando richiama Service3, che può essere, ad esempio, un metodo che aggiorna i valori immessi nei campi. Per spiegazioni più dettagliate sugli oggetti dati, i binder di dati e le origini dati, seguire i collegamenti forniti precedentemente.

Generazione di un proxy Java del servizio Web nel progetto utilizzando il file WSDL fornito

Per utilizzare il servizio Web in esecuzione su un server, l'applicazione Java richiede un proxy Java, o client, con cui interagire. Utilizzando un file WSDL, è possibile generare un proxy Java nel progetto Java utilizzando la procedura guidata Client di servizi Web. Il progetto MyDirectory contiene il file EmployeeDirectory.wsdl che verrà utilizzato per generare questo proxy. Una volta generato il proxy Java, sarà possibile creare un'origine dati che rappresenta il servizio Web e il binding visivo dei componenti.

Importante: Il file WSDL utilizzato in questo esercizio prevede che il servizio Web sia stato distribuito su WebSphere Application Server installato localmente e che sia stata utilizzata la porta predefinita per localhost (http://localhost:9080). Se il file EAR è stato distribuito in modo diverso, sarà necessario modificare il file WSDL per poter procedere.

Per generare un proxy Java di servizi Web nel progetto, procedere come segue:

  1. Nel menu principale, scegliere File > Nuovo > Altro e selezionare la procedura guidata Servizi Web > Client di servizi Web. Se la categoria servizi Web non viene visualizzata, selezionare Mostra tutte le procedure guidate.
  2. Utilizzare la procedura guidata per definire il client del servizio Web:
    1. Per la Definizione servizio, immettere il file WSDL fornito nel progetto MyDirectory: /MyDirectory/EmployeeDirectory.wsdl
    2. Nel campo Tipo client, selezionare Proxy Java.
    3. Impostare la barra scorrevole su Distribuisci client.
    4. Verificare che il server ed il runtime del servizio Web sia correttamente impostato per il server che si sta eseguendo. Questa esercitazione è stata verificata su WebSphere v6.0 e WebSphere v6.1 con il runtime IBM WebSphere JAX-RPC.
    5. Verificare che il client proxy Java sia emesso nel progetto MyDirectory.

    Procedura guidata Client di servizi Web

  3. Scegliere Fine. La proceduta guidata Client di servizi Web genera il proxy Java in un nuovo pacchetto (directory.service) nel progetto.

Bind di employeesTable a un oggetto dati restituito dal servizio Web

Poiché employeesTable è il primo componente visivo di cui viene eseguito il binding in questa applicazione, sarà necessario creare un'origine dati che faccia riferimento al proxy di servizi Web di esempio appena aggiunto al progetto. Quando si esegue il binding degli altri componenti visivi negli esercizi successivi, verrà riutilizzata questa origine dati. In questa fase, vengono aggiunti l'origine dati dei servizi Web e l'oggetto dati lightEmployeeRecordRows.

Per eseguire il collegamento della tabella dipendenti:
  1. Nella vista Bean Java o Progettazione, selezionare employeesTable. Assicurarsi che non venga selezionato il JScrollPane principale. Al di sopra di employeesTable nell'area di progettazione, viene visualizzata una piccola scheda Collegamento.

    Scheda Collegamento sull'area di disegno grafica di JTable

  2. Fare clic sulla scheda Collegamento nella employeesTable. Oppure, è possibile fare clic con il tasto destro del mouse su employeesTable e selezionare Proprietà di binding.
  3. Poiché l'applicazione non contiene oggetti dati, è necessario aggiungerne uno nuovo. Scegliere Nuovo oggetto dati dell'origine dati.
  4. Nel campo Tipo di origine, selezionare Servizio Web.
  5. Poiché all'applicazione non è stata ancora aggiunta l'origine dati del servizio Web, sarà necessario aggiungerla adesso. Accanto al campo Origine dati, fare clic sul pulsante ... per aprire la finestra Aggiunta origine dati del servizio Web in cui è possibile ricercare client di servizi Web o proxy disponibili nel progetto.
  6. Selezionare il servizio Web EmployeeDirectory e scegliere Fine. Una nuova origine dati viene aggiunta al file DirectoryApp.java.

    Finestra Aggiunta di un origine dati al servizio Web

  7. Nella finestra Nuovo oggetto dati dell'origine dati, selezionare getLightEmployeeRecords() nel campo Servizio di origine ed accettare il nome predefinito per il nuovo oggetto dati: lightEmployeeRecordRows. Non è necessario alcun parametro per questo metodo di servizio. Scegliere OK. Viene creato il nuovo oggetto dati e viene visualizzato nell'area a formato libero della vista Progettazione.

    Finestra Nuovo oggetto dati dell'origine dati

    Suggerimento: Poiché viene eseguito il binding di una tabella, la finestra Nuovo oggetto dati dell'origine dati conterrà solo i servizi che restituiscono oggetti dati. In questo caso, il metodo getLightEmployeeRecords() sarà l'unico servizio disponibile che restituisce una matrice di oggetti.
  8. Nella finestra Binding di dati tabella, selezionare l'oggetto dati lightEmployeeRecordRows.
  9. Selezionare le proprietà dell'oggetto dati lightEmployeeRecordRows che si desidera visualizzare nella employeeRecords:

    Finestra Binding di dati tabella

    1. Scegliere la doppia freccia Pulsante doppia freccia per aggiungere tutte le proprietà dell'oggetto all'elenco Colonne della tabella.
    2. Usare le frecce su e giù per disporre le colonne nell'ordine seguente: lastName, firstName, email, employeeID
    3. Ridenominare i titoli delle colonne in Cognome, Nome, Email, ID Dipendente
      Suggerimento: Una volta completato il binding della tabella, è sempre possibile tornare alle proprietà di binding e ridenominare e riordinare le colonne.
    4. Scegliere OK.
La employeesTable è ora associata all'oggetto dati lightEmployeeRecordRows utilizzando JRowTableBinder. Scegliendo l'oggetto dati lightEmployeeRecordRows nell'area a formato libero, l'editor visivo traccia una linea dall'oggetto dati alla tabella. Sulla linea, JRowTableBinder è rappresentato dall'icona del binder di tabella icona binder di tabella. Un'altra linea indica che l'oggetto dati utilizza webServiceDataSource come origine dati.

Linee del binder per JTable

Riepilogo della lezione

Rivedere le modifiche al progetto e all'applicazione. Durante questa lezione, sono stati aggiunti l'origine dati del servizio Web, l'oggetto dati e il binder che associa employeesTable all'oggetto dati.

Osservare il nuovo pacchetto (jve.generated) creato nel progetto in cui sono contenute tutte le classi binder generate dall'editor visivo Java. Osservare inoltre il nuovo pacchetto (directory.service) che contiene il proxy Java per il servizio Web. Descrivere o riepilogare la lezione.

Pacchetti nel progetto MyDirectory

Adesso, se si esegue l'applicazione My Company Directory, il sevizio Web inserisce nella tabella Dipendenti i record dei dipendenti esistenti.

< Indietro | Avanti >