Visualizzazione dei risultati da 1 a 8 su 8

Discussione: [Java]EJB

  1. #1

    [Java]EJB

    Ciao a tutti ho scritto questo codice con JBuilder 8 per iniziare a provare gli EJB.
    Però andando per gradi prima vorrei provare ad effettuare la
    connessione al db;
    premetto che sto tentando di usare weblogic come application server.
    Purtroppo nonostante siano esatte le proprietà d'ambiente passate
    per weblogic l'errore che mi dà è:

    javax.naming.NoInitialContextException: Cannot instantiate class: weblogic.jndi.WLInitialContextFactory. Root exception is java.lang.ClassNotFoundException: weblogic.jndi.WLInitialContextFactory

    ed è evidentemente legato al fatto che non riesce a trovare le proprietà d'ambiente:
    come è possibile?
    dove ho sbagliato?
    Forse devo definire altre cose oltre al sottostante file sorgente?


    import javax.naming.*;
    import java.util.Hashtable;
    import java.util.Properties;
    import java.util.Set;
    import java.io.File;
    import java.util.Iterator;
    import java.sql.*;



    public class clientBMP {

    public static void main( String[] args ){


    // Reference for the InitialContext
    InitialContext ctx = null;

    try{

    clientBMP client = new clientBMP();

    Hashtable env = new Hashtable();
    env.put(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory");
    env.put(Context.PROVIDER_URL, "t3://localhost:7001");
    env.put(Context.SECURITY_PRINCIPAL, "system");
    env.put(Context.SECURITY_CREDENTIALS, "demo");
    ctx = new InitialContext( env );


    //dbEJB è il JNDI name per collegarsi al db che ho creato in bea
    javax.sql.DataSource ds =(javax.sql.DataSource)ctx.lookup("dbEJB");

    Connection connection = ds.getConnection();
    connection.close();


    System.out.println ("Connessione con successo");


    if ( ctx != null )
    {
    System.out.println ("InitialContext was created successfully");
    }else{
    System.out.println ("InitialContext was not created successfully");
    }

    }catch(Exception ex ){
    ex.printStackTrace();
    }finally{
    try{
    System.out.println( "Closing the InitialContext" );
    // Only call close on a non-null InitialContext reference
    if ( ctx != null )
    ctx.close();
    }catch( Exception ex ){
    System.out.println( "Could not close the InitialContext" );
    }
    }
    }

    }


    Possibilmente sarebbe gradito un aiuto pratico su questo esempio
    in modo da aiutarmi a capire dove è l'errore:NON SO PIU' CHE FARE!!

    Ciaoo e grazie

  2. #2
    Utente di HTML.it L'avatar di Angelo1974
    Registrato dal
    Feb 2003
    Messaggi
    1,107
    Un paio di domande....
    1) Hai configurato weblogic con JBuilder; per farlo vai in tools --> configure server e scegli il server che vuoi utilizzare. Fatto ciò automaticamente JBuilder importa tutti i file .jar necessari perchè tutto ti funzioni.
    2) Quando crei un EJB devi opportunamente valorizzare il suo descrittore di deployment (che varia da produttore a produttore); per farlo JBuilder ti offre un buon editor...
    3) Dopo aver creato l'EJB devi deployarlo; per deployarlo devi startare il server (e puoi farlo o direttamente con JBuilder oppure dal suo tasto di avvio) e poi deployare l'ejb
    4)per poter utilizzare il JNDI devi avere attvio il tuo application server

    Controlla che tutti questi step siano stati eseguiti correttamente.
    Ciao
    Se vuoi trovare l'arcobaleno, devi sopportare la pioggia

  3. #3
    Ciao Angelo1974,
    non potendoti mai ringraziare abbastanza per la tua disponibilità,a questo punto credo che prima di procedere
    alla creazione di un se pur semplice ejb, la prima cosa che devo fare è ottenere la lettura delle properties
    altrimenti il resto non partirà mai;
    ti elenco i passi che ho seguito per cercare di ottenere la lettura delle properties:

    -dopo aver scritto il codice in JB ho configurato weblogic con JBuilder con le tue istruzioni.
    -poi ho avviato il server di weblogic da menu (voce = start-programmi-bea weblogic E-business platform-etc... fino
    a 'start default server').
    -infine ho avviato jbuilder per ottenere la creazione del servizio JNDI.

    Fino a questi passi credo non ci siano errori per connettersi a JNDI su Bea WebLogic.Giusto?

    Ciaoooo

  4. #4
    Forse ho capito perchè non riesco ad ottenere un servizio jndi con weblogic:
    ho notato che sulla console di bea weblogic se clicco nella cartella server e
    poi vado sul nome del mio server mi appaiono sulla sinistra le informazioni generali di configurazione:
    fin qui ok;
    però la cosa strana è che in corrispondenza della voce 'Machine' non c'è il nome
    della mia macchina, ma una combobox con solo il valore 'none' e credo che il nome di un server
    senza essere associato ad una macchina possa generare problemi nel mio caso.
    Eventualmente,se non è normale, come potrei inserire il nome della mia macchina visto che
    ho provato e non ci riesco?

    Ciaooo

  5. #5
    Utente di HTML.it L'avatar di Angelo1974
    Registrato dal
    Feb 2003
    Messaggi
    1,107
    Ciao; premetto che non conosco bene Bea Weblogic perchè sarà un anno e mezzo che non l'uso più e sono passato a JBoss e Jonas..... cmq posso dirti la configurazione che io faccio con JBuilder 2005 e JBosss (non penso sia differente da quella che si fa per Bea):

    1) Vado in tools --> enterprise --> configure server
    2) seleziono JBoss 3.2.x
    3) configuro la jboss home (equivalente di bea home)
    4) scelgo la configurazione di partenza (se default, minimal, all
    etc... questi dovrebbero essere i nomi dei server che tu dai a
    Bea)
    5) Lancio JBoss da JBuilder.... vado in run-->configuration-->new
    scelgo come tipo di configurazione server (dopo ovviamente aver
    scelto per il mio progetto che server utilizzare).
    Fatto ciò tu puoi lanciare Bea o Jboss da JBuilder... una volta che i server sono attivi tu puoi utilizzare tranquillamente il JNDI dell'application server.
    Ora per quanto riguarda JBoss io per creare un nuovo server non faccio altro che andare in ${JBOSS_HOME}/server copiare per esempio la directory default e cambiarle nome... ed ecco fatto. In Bea non è così semplice perchè essendo a pagamento e proprietario tu non saprai mai fino in fondo cosa realmente succederà... quindi per Bea non so esserti molto d'aiuto.
    Ultimo consiglio....non mi ricordo con sicurezza ma mi sembra che JBuilder 8 avesse dei bug per applicazioni enterprise... ti consiglio di passare al 2005 se ne hai modo oppure di utilizzare l'ottimo eclipse.
    Se dovessi utilizzare JBoss potrei esserti + d'aiuto ma con Bea ho davvero poca esperienza.
    Ciao
    Se vuoi trovare l'arcobaleno, devi sopportare la pioggia

  6. #6
    Ciao,
    dato che il mio scopo è creare ejb,anche per me utilizzare JBoss come application server va bene uguale.
    Ho recuperato una versione di JBoss (precisamente la 3.0.5) e lo copiata sul pc:
    volevo però delle precisazioni:

    1- per l'installazione di JBoss non mi pare ci siano eseguibili come per bea, quindi per
    mandare in esecuzione questo a.s. credo di dover lanciare il batch run che si trova
    in c:\jboss-3.0.5\bin(posizione in cui ho copiato la directory di JBoss);
    mi confermi questa cosa?

    2-nella voce di menu di JBuilder tools-configure server non appare alcuna voce
    JBoss 3.2.x (in verità non è fatto riferimento ad alcun as JBoss):quale eventuale procedura
    dovrei adottare per visualizzare questo as nella lista di JBuilder per poterlo poi selezionare?

    3- la configurazione di partenza (default,minimal,all) devo sceglierla sempre rimanendo nella fase 3
    da te descritta:in pratica nel campo 'Home Directory' di 'configure server' dovrei avere alla fine
    una stringa del tipo:
    c:\jboss-3.0.5\server\default?

    4-quando lancio Jboss da JBuilder e scelgo come tipo di configurazione server mi appare come server
    solo Tomcat 4.0 ....è normale?
    Immagino che la scelta di impostare il tipo di configurazione a server è perchè l'ejb è un
    componente server-side.Mi confermi questa cosa?

    Grazie ancora e ciaooooo

  7. #7
    Utente di HTML.it L'avatar di Angelo1974
    Registrato dal
    Feb 2003
    Messaggi
    1,107
    Ciao; come ti ho detto ora sto utilizzando JBuilder 2005 ed Eclipse.
    Se non sbaglio il JBuilder 8 non suporta JBoss; è a partire dalla versione X che c'è questo supporto.
    Ti conviene, poi, utilizzare JBoss 3.2.5 che ha risolto parecchi bug delle versioni precedenti ed è considerata al momento la versione da mettere in produzione; inoltre questa supporta le specifiche EJB 2.0 cosa che la 3.0.5 mi sembra non faccia e quindi, se così fosse, non potresti utilizzare gli MDB;

    1- per l'installazione di JBoss non mi pare ci siano eseguibili come per bea, quindi per
    mandare in esecuzione questo a.s. credo di dover lanciare il batch run che si trova
    in c:\jboss-3.0.5\bin(posizione in cui ho copiato la directory di JBoss);
    mi confermi questa cosa?
    Sì esatto; scrivendo run -c all fai partire la configurazione all; se invece scrivi run è equivalente a scrivere run -c default.
    Se vuoi trovare l'arcobaleno, devi sopportare la pioggia

  8. #8
    Ciao finalmente sono riuscito a attivare,verificandolo varie volte, il servizio JNDI.
    Premetto che sto creando un ejb session e che ho creato il file Naked Ejb :adesso devo trasformarlo
    in Deployable Ejb;per fare ciò sono andato in dos e ho usato questo comando:
    java weblogic.ejbc prServiceNaked.jar prServiceDeployable.jar stando nella directory dove ho creato
    il file Naked Ejb,però mi dà quest'errore:
    Exception in thread "main" java.lang.NoClassDefFoundError: weblogic/ejb
    Secondo te da cosa può dipendere?
    Ciaoooo

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 © 2024 vBulletin Solutions, Inc. All rights reserved.