ejb
#ejb
Sommario
Di 1
Capitolo 1: Iniziare con ejb 2
Osservazioni 2
Examples 2
Configurazione di EJB con JBoss AS 7.1 2
Titoli di coda 8
Di
You can share this PDF with anyone you feel could benefit from it, downloaded the latest version from: ejb
It is an unofficial and free ejb ebook created for educational purposes. All the content is extracted from Stack Overflow Documentation, which is written by many hardworking individuals at Stack Overflow. It is neither affiliated with Stack Overflow nor official ejb.
The content is released under Creative Commons BY-SA, and the list of contributors to each chapter are provided in the credits section at the end of this book. Images may be copyright of their respective owners unless otherwise specified. All trademarks and registered trademarks are the property of their respective company owners.
Use the content presented in this book at your own risk; it is not guaranteed to be correct nor accurate, please send your feedback and corrections to info@zzzprojects.com
https://riptutorial.com/it/home 1
Capitolo 1: Iniziare con ejb
Osservazioni
Questa sezione fornisce una panoramica su cosa sia ejb e perché uno sviluppatore potrebbe volerlo utilizzare.
Dovrebbe anche menzionare qualsiasi argomento di grandi dimensioni all'interno di ejb e collegarsi agli argomenti correlati. Poiché la documentazione di ejb è nuova, potrebbe essere necessario creare versioni iniziali di tali argomenti correlati.
Examples
Configurazione di EJB con JBoss AS 7.1
1. Panoramica
In questo articolo discuteremo come iniziare con Enterprise JavaBeans (EJB). Useremo JBoss AS 7.1.1.Final, ma sei libero di utilizzare qualsiasi server di tua scelta.
2. Dipendenze di Maven per Bean
Per utilizzare EJB assicurati di aver aggiunto l'ultima versione di esso alla sezione delle dipendenze del tuo file pom.xml:
<dependency>
<groupId>org.jboss.spec.javax.ejb</groupId>
<artifactId>jboss-ejb-api_3.2_spec</artifactId>
<version>1.0.0.Final</version>
</dependency>
Assicurati di aggiungere correttamente le dipendenze di JBoss, poiché in questo tutorial
utilizzeremo JBoss come server delle applicazioni. Nella parte successiva del tutorial discuteremo in dettaglio su come impostare la build di maven per il progetto.
3. Telecomando EJB
Iniziamo con la creazione dell'interfaccia Bean chiamata HelloWorldRemote.
public interface HelloWorldRemote { public String getHelloWorld();
}
Ora implementeremo la suddetta interfaccia e la HelloWorldBean .
@Stateless
public HelloWorldBean() {
}
@Override
public String getHelloWorld(){
return ("Hello World");
} }
Notare la notazione @Stateless in cima alla dichiarazione della classe. Denota un bean di sessione stateless.
4. Impostazione Maven per Remote Bean
In questa sezione discuteremo come configurare Maven per creare ed eseguire l'applicazione sul server.
Diamo un'occhiata ai plugin uno per uno.
4.1. Compilatore Plugin
Il plugin maven-compilatore è usato per compilare le fonti del nostro progetto.
Qui abbiamo usato la versione 2.3.1 del plugin con il JDK di origine e destinazione impostato su 1.7 in configurazione.
Abbiamo definito queste impostazioni come proprietà all'interno del tag e riferendole a $ {property}.
<version.compiler.plugin>2.3.1</version.compiler.plugin>
<!-- maven-compiler-plugin -->
<maven.compiler.target>1.7</maven.compiler.target>
<maven.compiler.source>1.7</maven.compiler.source>
4.2 Il plugin EJB
Questo plugin genera file Bean e il jar client associato.
Abbiamo specificato la versione ejb come 3.2 e la proprietà generateClient è impostata su true che genera il client.
4.3 Distribuzione in JBoss
Il plugin jboss-as-maven viene utilizzato per distribuire, ridistribuire, annullare la distribuzione o eseguire l'applicazione in JBoss AS 7.
In questa configurazione specifichiamo il nome del file di build come il nome del file di costruzione del progetto, che per impostazione predefinita è la forma artifactid-version nel nostro caso ejb- remote-1.0-SNAPSHOT .
https://riptutorial.com/it/home 3
4.4 Dipendenze Maven richieste per EJB
jboss-javaee-6.0 definisce la versione delle API Java EE 6 di JBoss che vogliamo utilizzare.
JBoss distribuisce un set completo di API Java EE 6 tra cui una distinta base (BOM).
Una distinta base specifica le versioni di uno stack (o una raccolta) di risorse. Lo specifichiamo nel tag in modo da ottenere sempre le versioni corrette degli artefatti. Il tipo di questa dipendenza è un pom che contiene le dipendenze richieste.
<dependency>
<groupId>org.jboss.spec</groupId>
<artifactId>jboss-javaee-6.0</artifactId>
<version>${version.org.jboss.spec.jboss.javaee.6.0}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
4.5 annotazioni
Quanto segue otterrà la dipendenza delle annotazioni:
<dependency>
<groupId>org.jboss.spec.javax.annotation</groupId>
<artifactId>jboss-annotations-api_1.1_spec</artifactId>
<scope>provided</scope>
</dependency>
4.6 EJB versione 3.2
Nel seguente pezzo di codice otteniamo l'ultima versione delle specifiche:
<dependency>
<groupId>org.jboss.spec.javax.ejb</groupId>
<artifactId>jboss-ejb-api_3.2_spec</artifactId>
<version>1.0.0.Final</version>
</dependency>
Per eseguire il progetto sopra in un server JBoss, è necessario prima eseguire:
mvn clean install
Quindi dobbiamo implementarlo su un server JBoss in esecuzione eseguendo il seguente comando maven:
jboss-as:deploy
Ora dovresti vedere il file jar che viene distribuito nel server jboss.
In alternativa è possibile copiare il jar disponibile dalla cartella di destinazione nel progetto e
5. Impostazione del progetto client
Dopo aver creato il bean remoto, dovremmo testare il bean distribuito creando un client.
Per prima cosa discutiamo dell'installazione di Maven per il progetto.
5.1 Plugin Maven utilizzati
Il plugin maven-compilatore è usato per compilare le fonti del tuo progetto.
Abbiamo specificato la versione di jdk 1.7 per le classi di origine e di destinazione.
Il nostro client è un programma Java, per eseguirlo usiamo il exec-maven-plugin che aiuta a
eseguire programmi Java e di sistema. Dobbiamo specificare l'eseguibile (cioè java), classpath e la classe java (com.baeldung.ejb.client.Client).
Il classpath è vuoto perché il plugin include gli argomenti del percorso di classe necessari in base alle dipendenze fornite.
5.2 Dipendenze di Maven per il client EJB3
Per eseguire il client EJB3 è necessario includere le seguenti dipendenze.
Dipendiamo dalle interfacce aziendali remote EJB di questa applicazione per eseguire il client.
Quindi dobbiamo specificare la dipendenza del jar del client ejb. Il tag con valore "ejb-client" viene utilizzato per specificare la dipendenza di questo progetto dal jar del client EJB.
<dependency>
<groupId>com.theopentutorials.ejb3</groupId>
<artifactId>ejbmavendemo</artifactId>
<type>ejb-client</type>
<version>${project.version}</version>
</dependency>
Le dipendenze jboss-transaction-api_1.1_spec , jboss-ejb-api_3.1_spec , jboss-ejb-client , xnio-api
, xnio-nio , jboss-remoting , jboss-sasl , jboss-marshalling-river hanno scope come runtime perché questi sono richiesti tempo di esecuzione e non durante la compilazione.
Le dipendenze jboss-javaee-6.0 e jboss-as-ejb-client-bom sotto dependencyManagement hanno scope come import. Viene utilizzato per includere le informazioni sulla gestione delle dipendenze da un POM remoto nel progetto corrente. Queste POM remote sono fornite da JBoss che contiene le dipendenze necessarie per l'esecuzione del client.
5.3 Proprietà client JBoss EJB
Crea un file sotto "src / main / resources" e chiamalo come jboss-ejb-client.properties.
remote.connectionprovider.create.options.org.xnio.Options.SSL_ENABLED=false remote.connections=default
remote.connection.default.host=localhost remote.connection.default.port = 4447
remote.connection.default.connect.options.org.xnio.Options.SASL_POLICY_NOANONYMOUS=false
https://riptutorial.com/it/home 5
6. Creazione della classe client
Per prima cosa creiamo una classe ClientUtility:
public class ClientUtility {
private static Context initialContext;
private static final String PKG_INTERFACES = "org.jboss.ejb.client.naming";
public static Context getInitialContext() throws NamingException { if (initialContext == null) {
Properties properties = new Properties();
properties.put(Context.URL_PKG_PREFIXES, PKG_INTERFACES);
initialContext = new InitialContext(properties);
}
return initialContext;
} }
Ora creiamo la classe Client effettiva che consumerà il bean che abbiamo distribuito nel server:
public class Client {
//The lookup method to get the EJB name private static HelloWorldRemote doLookup() { Context context = null;
HelloWorldRemote bean = null;
try {
// 1. Obtaining Context
context = ClientUtility.getInitialContext();
// 2. Generate JNDI Lookup name String lookupName = getLookupName();
// 3. Lookup and cast
bean = (HelloWorldRemote) context.lookup(lookupName);
} catch (NamingException e) { e.printStackTrace();
}
return bean;
}
private static String getLookupName() {
// The app name is the EAR name of the deployed EJB without .ear suffix.
// Since we haven't deployed the application as a .ear, the app name for // us will be an empty string
String appName = "";
// The module name is the JAR name of the deployed EJB without the .jar // suffix.
String moduleName = "ejb-remote-0.0.1-SNAPSHOT";
// AS7 allows each deployment to have an (optional) distinct name. This // can be an empty string if distinct name is not specified.
String distinctName = "";
String beanName = "HelloWorldBean";
// Fully qualified remote interface name
final String interfaceName = "com.baeldung.ejb.tutorial.HelloWorldRemote";
// Create a look up string name
String name = "ejb:" + appName + "/" + moduleName + "/" + distinctName + "/" + beanName + "!" + interfaceName;
return name;
} }
La classe Client consuma il bean e genera il risultato.
7. Conclusione
Quindi abbiamo creato un server EJB e un client che consuma il servizio. Il progetto può essere eseguito su qualsiasi Application Server.
Leggi Iniziare con ejb online: https://riptutorial.com/it/ejb/topic/5704/iniziare-con-ejb
https://riptutorial.com/it/home 7
Titoli di coda
S.
No Capitoli Contributors
1 Iniziare con ejb Community, Pritam Banerjee, RamenChef