Michael Kamleitner Heuberggasse 42-50 1170 Wien [email protected] +43 699 116 07 923 Enterprise java beans – step-by-step 0. Voraussetzungen Der Orion Server ist in C:\Orion installiert! Sollten schon Versuche diese Applikation zum Laufen zu bringen fehlgeschlagen sein, empfehle ich eine frische Orion-Installation! Als Arbeitsverzeichnis wird C:\BEISPIEL verwendet – hier werden alle weiteren Dateien – wenn nicht anders angegeben – hinkopiert/erstellt. 1. Erstellen von Hersteller.jar Zuerst muss man die vier .java-Dateinen kompilieren: javac javac javac javac Hersteller.java HerstellerPK.java HerstellerBean.java HerstellerHome.java Häufig wird man dabei jedoch folgende Fehlermeldung erhalten: javac Hersteller.java Hersteller.java:3: package javax.ejb does not exist public interface Hersteller extends javax.ejb.EJBObject ^ 1 error Das Package javax.ejb befindet sich in der Datei ejb.jar, diese wiederum findet sich im RootVerzeichnis des Orion-Servers (C:\Orion). Daher muss man den Classpath1 folgendermaßen gesetzt werden: set classpath=C:\orion\ejb.jar;. Wichtig ist der abschliessende Punkt, der bedeutet dass javac auch im aktuellen Verzeichnis nach Klassen sucht! 1 Pfad(e) in denen der javac-Compiler nach benötigten Java-Klassen sucht Seite 1/ Michael Kamleitner Heuberggasse 42-50 1170 Wien [email protected] +43 699 116 07 923 Anschliessend legt man ein Verzeichnis META-INF (Achtung: Grossschreibung beachten!) an und kopiert die Datei ejb-jar.xml hinein. Das Verzeichnis BEISPIEL sieht dann so aus: C:\BEISPIEL>dir Datenträger in Laufwerk C: ist System Datenträgernummer: E8DF-7513 Verzeichnis von C:\BEISPIEL 07.06.2003 07.06.2003 07.06.2003 27.05.2003 07.06.2003 27.05.2003 07.06.2003 27.05.2003 07.06.2003 27.05.2003 27.05.2003 13:52 <DIR> . 13:52 <DIR> .. 13:46 294 Hersteller.class 10:17 223 Hersteller.java 13:46 1.050 HerstellerBean.class 10:12 807 HerstellerBean.java 13:46 356 HerstellerHome.class 10:56 342 HerstellerHome.java 13:46 431 HerstellerPK.class 10:19 319 HerstellerPK.java 14:39 <DIR> META-INF 8 Datei(en) 3.822 Bytes 3 Verzeichnis(se), 84.180.992 Bytes frei C:\BEISPIEL>cd META-INF C:\BEISPIEL\META-INF>dir Datenträger in Laufwerk C: ist System Datenträgernummer: E8DF-7513 Verzeichnis von C:\BEISPIEL\META-INF 27.05.2003 27.05.2003 27.05.2003 14:39 <DIR> 14:39 <DIR> 11:24 1 Datei(en) 2 Verzeichnis(se), . .. 967 ejb-jar.xml 967 Bytes 84.180.992 Bytes frei C:\BEISPIEL\META-INF> Nun kann man mit folgender Anweisung die Datei Hersteller.jar erstellen: jar cvf Hersteller.jar Hersteller.class HerstellerPK.class HerstellerHome.class HerstellerBean.class META-INF/ejb-jar.xml Das Kommando jar erstellt die jar-Datei2 mit den in einer Liste angegebenen Dateien. 2 jar = java archive, jar-Dateien entsprechen im Prinzip zip-Dateien Seite 2/ Michael Kamleitner Heuberggasse 42-50 1170 Wien [email protected] +43 699 116 07 923 2. Das Verzeichnis „Hersteller“ Nun erstellt man in C:\orion\applications ein Verzeichnis mit dem Namen „Hersteller“ sowie die in der Grafik angegebenen Unterverzeichnisse (Achtung auf Gross-/Kleinschreibung): C:\Orion\applications>md Hersteller C:\Orion\applications>cd Hersteller C:\Orion\applications\Hersteller>md META-INF C:\Orion\applications\Hersteller>md hersteller-webapp C:\Orion\applications\Hersteller>cd hersteller-webapp C:\Orion\applications\Hersteller\hersteller-webapp>md WEB-INF C:\Orion\applications\Hersteller\hersteller-webapp> Anschliessend kopiert man die folgenden Dateien in ihre entsprechenden Verzeichnisse: Hersteller.jar application.xml Test.jsp Web.xml -> -> -> -> nach nach nach nach c:\orion\applications\Hersteller c:\orion\applications\Hersteller\META-INF c:\orion\applications\Hersteller\hersteller-webapp c:\orion\applications\Hersteller\hersteller-webapp\WEB-INF Seite 3/ Michael Kamleitner Heuberggasse 42-50 1170 Wien [email protected] +43 699 116 07 923 3. Konfigurieren des Orion-Servers In die Datei c:\orion\config\server.xml wird folgende Zeile hinzugefügt: <?xml version="1.0"?> <!DOCTYPE application-server PUBLIC "Orion Application Server Config" "http://www.orionserver.com/dtds/application-server.dtd"> <application-server application-directory="../applications" deployment-directory="../application-deployments" > <rmi-config path="./rmi.xml" /> <!-- JMS-server config link, uncomment to activate the JMS service --> <!-- <jms-config path="./jms.xml" /> --> <log> <file path="../log/server.log" /> </log> <global-application name="default" path="application.xml" /> <application name="hersteller" path="../applications/Hersteller" autostart="true" /> <global-web-app-config path="global-web-application.xml" /> <web-site path="./default-web-site.xml" /> <!-- Compiler, activate this to specify an alternative compiler such as jikes for EJB/JSP compiling. --> <!-- <compiler executable="jikes" classpath="/myjdkdir/jre/lib/rt.jar" /> --> </application-server> Danach wird in c:\orion\config\default-web-site.xml folgende Zeile hinzugefügt: <?xml version="1.0"?> <!DOCTYPE web-site PUBLIC "Orion Web-site" "http://www.orionserver.com/dtds/website.dtd"> <web-site host="[ALL]" port="80" display-name="Default Orion WebSite"> <!-- The default web-app for this site, bound to the root --> <default-web-app application="default" name="defaultWebApp" /> <web-app application="hersteller" name="hersteller-webapp" root="/hersteller" shared="true" load-on-startup="true" max-inactivity-time="no shutdown" /> <!-- Uncomment this to activate the news app --> <!-- <web-app application="news" name="news-web" root="/news" /> --> <!-- Access Log, where requests are logged to --> <access-log path="../log/default-web-access.log" /> </web-site> Seite 4/ Michael Kamleitner Heuberggasse 42-50 1170 Wien [email protected] +43 699 116 07 923 4. Starten des Orion-Servers Nun kann der Orion-Server mittels des Kommandos Java –jar orion.jar gestartet werden. Möglicherweise führt dies jedoch zu folgender Fehlermeldung: C:\Orion>java -jar orion.jar Auto-deploying hersteller (Previous deployment not found)... Auto-deploying Hersteller.jar (No previous deployment found)... Error compiling C:\Orion\applications\Hersteller/Hersteller.jar: Error instantiating compiler: Javac not installed, copy tools.jar from your sun JDK dir's lib dir to the orion dir or add a <library path="the/path/to/tools.jar" /> and restart Auto-deploying file:/C:/Orion/applications/Hersteller/hersteller-webapp/ (Previo us deployment not found)... Orion/2.0.1 initialized Am einfachsten kann dies korrigiert werden indem man die Datei tools.jar aus dem libVerzeichnis des Java-SDKs nach c:\orion kopiert. Danach sollte der Orion-Server korrekt gestartet werden können: C:\Orion>java -jar orion.jar Auto-deploying Hersteller.jar (No previous deployment found)... Auto-creating table: create table HerstellerBean (HerstellerID BIGINT not null primary key, HerstellerName VARCHAR(255) null) done. Orion/2.0.1 initialized Nun muss man noch einen Bug des Orion-Servers im Autodeployment ausbessern. Dazu beendet man den Server (STRG-C) und ändert in der Datei c:\orion\applicationdeployments\hersteller\hersteller.jar\orion-ejb-jar.xml das location-Attribut: <entity-deployment name="HerstellerBean" location="HerstellerHome" wrapper="HerstellerHome_EntityHomeWrapper2" table="HerstellerBean" datasource="jdbc/HypersonicDS"> Danach kann man den Orion-Server neu starten (dabei meldet der Server korrekt dass die Datei orion-ejb-jar.xml sich geändert hat). Seite 5/ Michael Kamleitner Heuberggasse 42-50 1170 Wien Um die Applikation zu testen gibt man im Browser folgende URL an: http://localhost/hersteller/Test.jsp Seite 6/ [email protected] +43 699 116 07 923