Das Werkzeug Apache Ant Apache Ant ist ein Werkzeug, mit dem Quellcode zusammengestellt, bearbeitet, übersetzt und Programme ausgeführt werden können. Es ist insbesondere für die Steuerung umfangreicher Erzeugungsprozesse im Java-Umfeld geeignet Ant ist in der Entwicklungsumgebung Eclipse integriert, kann aber auch stand-alone genutzt werden. Unter der Adresse http://ant.apache.argbefinden sich die Seiten Installation zum Download der Binärdistribution inklusive Dokumentation. Zum Zeitpunkt der Veröffentlichung dieses Buches ist die Version 1,8,0 aktuell, Die Archivdatei apacbe-ant-LS. O-binzip kann in einem beliebigen Verzeichnis (z. B, Ce \Programme) entpackt werden, Anschließend müssen Umgebungsvariablen (z. B, bei Windows über System in der Systemsteuerungi gesetzt werden: ANT_HOME JAVA HOHE PATH ~ C:\Programme\apache-ant-l.8.0 ~ = <Java ~Installatlonsverzelchnls> %JAVA_HOME%\bin:%ANT_HOME%\bin:. Ant wird über eine XML-Datei build.xml gesteuert. Dieses so Ein Beispiel genannte Buildfile enthält ein Projekt, in dem in Targets die einzelnen Arbeitsschritte (Tasks) zusammengefasst sind. <project name="Demo -Projekt" default="makeJar" basedlr=". "> <property narre="verSlon" value="l.O" /> <property nane-" src" val ue-" src" /> <property narre~"build" value~"build"/> <property narre~"lib" value~"lib"/> <property nane-" j arname" val ue-" dcno - ${versl on} . ja r" /> <target narre="prepare"> <mkdir dir~"${build}"/> <mkdir dir~"${lib}"/> </target> <target nane-" clean" descrl ptl orr-"Aufraeumen "> <delete dir~"${build}"/> <delete dir~"${lib}"/> </target> Das Werkzeug Apache Ant 364 <target name="complle" depends="prepare" descr iption="Compilieren"> <ja vac srcdir~"I{src}" destd ir~"I{bui1d}" includeAntRunt ime="false" /> </target> <targ et name="makeJar" depends="compile" description="Jar-Date i erzeugen"> <jar jarfi 1e-" 1{1 i b}/ I{jarname}" basedi r--" I{bui 1d}" /> </target> <targ et name="start" description="Anwendung starten"> <java classnarre=" D2lTD" fork="yes"> <c l asspath> <pathe1ement 1ocati on-" I{ 1i b}/I{j arnarre}" /> </classpath> </ja va> </target> </project> Welche Targets zur Verfügung stehen, kann durch das folgende Kommando angezeigt werden (Aufruf in dem Verzeichnis, das build.xml enthält} ant -p Ausgabe, Bui 1dfi 1e: C: I ... Ibui ld.xml Hain targets: clean compil e makeJar start Aufraeumen Compilieren Jar-Datei erzeugen Anwendung starten Defau1t target: makeJar Targets können von anderen Targets abhängig sein (Attribut depends). So hängt z. B. das Target compile vom Target prepare, das Target make]arvom Target compile ab. Der Aufruf von ant makeJar Das Werkzeug Apache Ant 365 oder auch nur ant, da make]ar das Default-Target ist (siehe project-Tag), führt dazu, dass zunächst die Verzeichnisse build und lib angelegt (Target prepare), dann die Sourcen compiliert werden (Target compile) und schließlich die jar-Datei erzeugt wird. Ausgabe, Buildfile: build.xml prepare: [mkdir] Created dir: [mkdir] Created dir: Ibuild Ilib complle: [javac] Compiling 1 source file to ... Ibuild makeJar: [jarl Building jar: ... llibldelTD-1.0.jar BU1l0 SUCCESSFUl Total ti me: 10 seconds Zu Beginn der Build-Datei werden Variablen xxx, so genannte Properties, gesetzt (z. B. konkrete Verzeichnisnamen). Auf diese wird später mit l{xxx} Bezug genommen. ant start startet das Programm Demo. ant clean stellt den Anfangszustand wieder her. Eine vollständige Liste aller Elemente und insbesondere der zur Verfügung stehenden Tasks befindet sich in der Online-Dokumentation zu Ant. Internet-Quellen Den Zugang zu den Zusatzmaterialien finden Sie auf der Website Beispielprogramme des Verlags und Lösungen zu www. vlewegt eubner.de den Aufgaben direkt neben den bibliographischen Angaben zu diesem Buch. Extrahieren Sie nach dem Download alle Dateien des ZIPArchivs unter Verwendung der relativen Pfadnamen in ein von Ihnen gewähltes Verzeichnis Ihres Rechners. Die Distribution enthält die Java-GUl-Anwendung SQLClient. mit der beliebige SQL-Anweisungen für relationale Datenbanken ausgeführt werden können. sofern ein JDBC-Treiber für das jeweilige Datenbankmanagementsystem vorliegt. ht tp://ja va.sun . com/javase! Java Standard Hier finden Sie die neueste Version zur Java Standard Edition Edition (Iava SE) für diverse Plattformen sowie die zugehörige Dokumentation. Beachten Sie die für Ihre Plattform zutreffende Installationsanweisung . Eclipse: http://www.eclipse.org NetBeans: htt p://www.netbeans.org Java-Editor, http://www.ja vaed itor.org JCreator, http://www.jcreator.com JDeveloper, http://www.oracle.com/technology/products/jdev/ Intelli] lDEA, http://www.j etbrains .com/idea/ ]ava-Entwicklungsumgebungen und -Editoren http://ant.apache.org/ ApacheAnt http://dev.mysql.com MySQL Community Server, Workbench , Connector!j http://db.apache.org/derby/ Apache Derby Internet-Quellen 368 Apache XML-RPC http://ws .apache.org/xmlrpc/ XML-RPC-Lihrary htt p://sourceforge.net/projects/phpxmlrpc/ jürPHP TCP-Monitor http://tcpmon.dev.java.net Webserver, Servlet-Container http://httpd.apache.org http://tomcat.apache.org JMS http://java .sun.com/products/jms/ Apache ActiveMQ http://activemq.apache.org Metro Web Service Stack http://metro.dev.java.net ProtokollSpezifikationen UDP: http://www.i etf.org/rfc/rfc768 txt TCP: http://www.ietf.org/r fc/rfc793 txt Ports: http://www.lana.org/asslgnments/port numbers HTTP 1.0: http://www.ietf.org/r fc/rfc I945.txt HTTP 1.1: http://www.i etf.org/rfc/rfc2616.txt HTTP Status-Code: http://www.w3.org/Protocols/rfc2616/rfc2616-sec l0 html MIME: http://www.ietf.org/rfc/rfc I521.txt Base64: http://www.ietf.org/rfc/rfc2045 txt Basic Authentication: http://www.ietf.org/rfc/rfc2617 txt XML-RPC: http://www.xmlrpc.com Literaturhinweise In den Vorbemerkungen des ersten Kapitels wurden die zum Verständnis nötigen Vorkenntnisse der Leserinnen und Leser zu Java, Datenbanken, SQL usw, aufgeführt Die folgenden Bücher sind für eine Einführung in diese Themen bzw, eine Vertiefung gut geeignet • Abts , D" Grundkurs Java, Von den Grundlagen bis zu Daten- Java-Grundlagen bank- und Netzanwendungen. Vieweg+Teubner, 6, Auflage 2010 • Block, M" Java-Intensivkurs, Springer, 2, Auflage 2010 • Kiwitter, P. Eclipse in der Java-Entwicklung, Addison-Wesley, 1, Auflage 2008 • Poetzsch-Heffter, A.: Konzepte objektorientierter Programmierung, Mit einer Einführung in Java, Springer, 2, Auflage 2009, • Edlich, S,; Staudemeyer,]" Ant - kurz & gut O'Reilly, 2, Auflage 2006 • Matzke, B" Ant. Eine praktische Einführung in das Java-BuildTool, dpunktverlag, 2, Auflage 2005 • Papp, G.: Konfigurationsmanagement mit Subversion, Ant und Maven, dpunktverlag, 2, Auflage 2008 • Bengel, G.: Grundkurs Verteilte Systeme. Vieweg+Teubner, 3. Verteilte Systeme Auflage 2004 • Dunkel, J,; Eberhart, A,; Fischer, S,; Kleiner, c,; Kosehel A" Systemarchitekturen für Verteilte Anwendungen. Hanser, 1. Auflage 2008 • Hammerschall, U.: Verteilte Systeme und Anwendungen. Pearson Studium, 1, Auflage 2005 • Harold, E, R" Java Network Programming, O'Reilly, 3, Auflage 2004 • Heinzl, S.; Mathes, M.: Middleware in Java. Vieweg+Teubner, 1, Auflage 2005 • Mandl, P" Masterkurs Verteilte betriebliche Informationssysteme. Vieweg+Teubner, 1, Auflage 2009 • Oechsle, R" Parallele und verteilte Anwendungen in Java, Hanser, 2, Auflage 2007 Apache Ant 370 Internet-/Web- Literaturhinweise • Schill, A.; Springer, T.: Verteilte Systeme. Springer, 1. Auflage 2007 • Corner, D. E.: Computernetzwerke und Internets. Pearson Studium, 3, Auflage 2003 • Erlenkötter, H" HTML Rowohlt Tb" • Gourley, D,; Totty, B" HTTP, The Definitive Guide. O'Reilly, 5, Auflage 2007 • Mandl, P,; Bakomenko, A,; Weiß, ]" Grundkurs Datenkommunikation, Vieweg+Teubner, 1, Auflage 2008 • Meinel, c.; Sack, H.: \Xf\XT\Xl. Kommunikation, Intemetworking, Web-Technologien, Springer, 1, Auflage 2004 • Moodie, M" Pro Apache Tomcat 6, Apress, • Münz, S. u. a.: SELFHTML. http://de.selfhtml.org • Musciano, c.; Kennedy, B.; Wolfram, E.; Schenk, I.: HTML und XHTML Das umfassende Handbuch, O'Reilly, 5, Auflage 2007 • Niederst,].: HTML & XHTML kurz & gut. O'Reilly, 3. Auflage 2006 • Scherif,]" Grundkurs Computernetze. Vieweg+Teubner, Auflage 2006 • Erlenkötter, H" XML Extensible Markup Language von Anfang an, Rowohlt Tb" 1, Auflage 2003 • Hauser, L XML Standards, entwicklerpress, • Scholz, M,; Niedermeier, S" Java und XML Galileo Press, 2, Auflage 2009 • Vonhoegen, H.: Einstieg in XML. Galileo Press, 5. Auflage 2009 • Faeskom-Woyke, H.; Eertelsmeier, B.; Riemer, P.; Bauer, E.: Datenbanksysteme, Theorie und Praxis mit SQL2003, Oracle und MySQL Pearson Studium, 1, Auflage 2007 • Kleinschmidt, P,; Rank, C" Relationale Datenbanksysteme, Eine praktische Einführung, Springer, 3, Auflage 2005 • Kleuker, S" Grundkurs Teubner, 1, Auflage 2006 • Kofler, M.; Öggl, B.: PHP 5.3 & MySQL 5.4. Addison-Wesley, 1, Auflage 2010 • Kuhlmann, G .; Müllmerstadt, F" SQL Der Schlüssel zu relationalen Datenbanken, Rowohlt Tb" 2004 Technologien XML Datenbanken und SQL 1, Auflag e 2003 1, Auflage 2007 1, 1, Auflage 2006 Datenbankentwicklung, Vieweg+ Literaturhinweise 371 • Steiner, R.: Grundkurs Relationale Datenbanken. Vieweg+ Teubner, 7, Auflage 2009 • Wieken, J,-H" SQL - Einstieg für Anspruchsvolle, Pearson Studium, 1, Auflage 2009 • Heuser, 0.; Holubek, A: Java Web Services in der Praxis. dpunktverlag, 1, Auflage 2010 • Kalin, M" Java Web Services, Up and Running. O'Reilly, Auflage 2009 1, Web Services Stichwortverzeichnis @MTOM 355 @Oneway 344 @WebMethod 333 @WebParam 333 @WebService 333 @XmlType 339 I-stufige Architektur 11 2-stufige Architektur 11, 27 3-stufige Architektur 12, 27 4-stufige Architektur 12 A Accept 171 Accept-Encoding 171 Accep~Language 171 ActiveMQ 282, 285 Address Resolution Protocol 19 administriertes Objekt 282 Adressklasse 21 Agent 264 AlreadyBoundException 254 Anfrageparameter 169, 170 Antwortparameter 173, 175 Anwendungsschicht 20 Apache Tomcat 237, 343 Apache XML-RPC 206 API 14 Application Programming Interface 14 ARP 19 AsyncHandler 350 asynchron 10, 281, 346 asynchrone Kommunikation 10 Auszeichnungssprache 80 Auto-Commit 45 ,46 Autoloading 35 B backlog 120 Base64 218, 240, 353 base64Binary 352 Basic Authentication 240 Batch-Processing-System 5 Batch-Update 52, 56 BIGINT 41,43 BINARY 42, 43 bindings-Dokument 347 BIT 42,43 C CachedRowSet 74 CallableStatement 91 Callback 10, 268, 346 CHAR 42,43 CIDR 21 Classless Inter-Domain Routing 21 ClassLoader 143 Client 8, 9 Client/Server-Modell 8 Client/Server-System 5, 8 ClientFactory 234 Client-Socket 118, 119 Code First 356 Commit 46 ConnectException 120 Connection 30, 36, 46, 55, 68, 171, 284, 287 ConnectionFactory 283, 284, 286 Content-Length 171, 175 Content-Type 175 Context 276 Contract First 356 CORBA 274 D DatabaseMetaData 36, 58 DatagramPacket 101 , 102 DatagramSocket 101, 102, 105, 106 Date 44, 175 DATE 42 ,43 Datenbank-Middleware 14 Datenhaltung 6 DECIMAL 42, 43 DELETE 170 Stichwortverzeichnis 374 Destination 283, 285 DHCP 100 DNS 22,100 DNS-Server 22 Domain Name System 22, 100 Domain-Name 22 DOUBLE 41 ,43 dreistufige Architektur 12, 27 DriverManager 30, 35, 36 Dynamic Hast Configuration Protocol 100 dynamischer Proxy 233 HTTP-Antwort 166, 173 HTTP-Client 166 HttpContext 186 HttpExchange 188 HttpHandler 186, 188 HTTP-Methode 170 HttpServer 186 HTTP-Server 166 Hypertext Transfer Protocol 20, 117 , 165 I fault 340 Fehlertoleranz 7 Fehlertransparenz 14 File Transfer Protocol 20, 117 FileNameMap 192 FLOAT 41,43 Framework 158 Fremdschlüssel 32 FTP 20, 117 Future 350 lDL 274 IETF 99, 117, 167, 171 HOP 274 IN 93 Inet4Address 23 Inet6Address 23 InetAddress 23, 24 InetSocketAddress 186 InitialContext 276 INOUT 93 INTEGER 41,43 Internet 18 Internet Engineering Task Force 99 Internet Protocol 18, 19 Intranet 18 InvocationTargetException 151, 152 IP 18, 19 IP-Adresse 21 IP-Filterung 235 IPv4 21 IPv6 21 G J E einstufige Architektur 11 EJB 274 Endpoint 335 Executor 187 Extensible Markup Language 80 Extensible Stylesheet Language Transformation 86 F GET 170,173 H Handler 208 HEAD 170 Headers 189 Heterogenität 8 Host 170 HTML 80 HTTP 20, 117, 165, 327 HTTP 1,0 167 HTTP 1,1 167 HTTP-Anfrage 166, 169 Java Database Connectivity 27 Java Message Service 282 Java Remote Method Protocol 253 java.rmi.server.codebase 267 JAX-WS 332 JDBC 14,27 JDBC-Datentyp 41 JDBC-Net-Treiber 29 JDBC-ODBC-Bridge 29 JDBC-Treiber 28 JMS 282 JMS-Client 282 JMSDestination 294 Stichwortverzeichnis ]MSException 286 ]MSExpiration 294 ]MSMessageID 294 ]MSPriority 294 ]MS-Provider 282 ]MSReplyT 0 297 ]MSTimestamp 294 ]NDI 276 ]RMP 253 K keytool 242 Klassenlader 143 Kommunikationsprotokoll 18 Konfigurationsproblem 7 L Lastverteilung 7 localhost 22 LocateRegistry 256, 257 LONGVARBlNARY 42,43 LONGVARCHAR 42 ,43 M MalformedURLException 203 MapMessage 301 mehrstufige Architektur 11 Message 282, 284, 294 Message Broker 281 Message Consumer 282 Message Oriented Middleware 281 Message Producer 282 Message Selector 310 MessageConsumer 285, 287 MessageListener 288 MessageProducer 285, 287 Method 196 Metro Web Service Stack 332 Middleware 13 Migrationstransparenz 14 MIME 171,191 MOM 281 MOM-Server 281 monolithisches System 5 MTOM 354 MTOMFeature 355 Multicast 113 Multicast-Adresse 113 375 Multicast-Gruppe 113 Multicasting 113 MulticastSocket 114 Multimedia Streaming 100 Multipurpose Internet Mail Extension 171 Multi-Tier-Architektur 11 N nachrichtenorientierte Middleware 281 Nachrichtenziel 283 Namensdienst 249, 274, 276 Naming 254, 255, 259 Native-API-Treiber 29 Native-Protokoll-Treiber 30 Nebenläufigkeitstransparenz 14 Netzadresse 21 Netzinfrastruktur 8 NotBoundException 254, 255 NULL 54 Nullwert 54, 55 NUMERIC 42, 43 o ODBC-Treiber 29 OMG 274 Open Database Connectivity 29 Ortstransparenz 13 OUT 93 P P2P 285 Parallelbetrieb 10 Personal Computer 5 Point-to-Point-Modell 285 Policy 355 polling 346 Polling 268 POP 117 Portnummer 22 POST 170, 172 Post Office Protocol 117 Präsentation 6 PreparedStatement 55, 59, 64 Primärschlüssel 32 PropertyHandlerMapping 208 Proxy 252 376 Pub/Sub 301 Publisher 268, 301 Publish-Subscribe-Modell 301 Pull-Prinzip 289 Push-Prinzip 291 PUT 170 Q Query String 173 Queue 285 , 294 QueueBrowser 294 QueueSession 294, 298 R REAL 41,43 Rechneradresse 21 Registry 249, 254 Remote 250 Remote Interface 250 Remote Method Invocation 15, 249 Remote Object 251 Remote Procedure Call 15, 150, 205 Remote Reference 252 RemoteException 251 Replikationstransparenz 14 Request-Reply-Modell 297 Response 350 ResultSet 30, 39, 43, 44, 49, 54, 65, 68,71 ResultSetMetaData 49 RFC 99, 117, 167, 171 RMI 15, 249 rmic 253 rmiregistry 253 Rollback 46 Router 18 RowSet 74 RPC 15, 150, 205 RPC-Modell 14 S SAX-Parser 82 Schichtenmodell 19 Secure Socket Layer 242 Security Manager 149 , 256, 267 SEI 333 Serializable 258 Serialization Stream Header 132 Stichwortverzeichnis Server 8, 9, 175 ServerSocket 119 Server-Socket 118 Server-Socket 119 Service Endpoint Interface 333 Service-Anbieter 331 Service-Nutzer 331 Service-orientierte Architektur 331 Service-Verzeichnis 331 Servlet-Container 237 Session 284 , 287, 301 Sicherheitsrisiko 8 Simple Mai! TransferProtocol20.117 Simple Network Management Protocol 100 Skalierbarkeit 7 Skeleton 252 SMALLINT 41,43 SMTP 20,117 SNMP 100 SOA 331 SOAP 207, 327 , 328 Socket 100, 119, 121 SocketException 101 SocketTimeoutException 105, 119, 120 SQL 27 SQL-Datentyp 41 SQLException 36, 59 SSL 242 Statement 30, 39, 46, 59, 97 Status-Code 174 Stored Procedure 91 Stub 252 Subscriber 268, 301 synchron 10 synchrone Kommunikation 10 T tag 80 TCP 18, 20, 117 TCP/IP 18 Telnet 20, 117 TemoraryQueue 297 TextMessage 288 TFTP 100 Thread-PooI 156 Time 44 Stichwortverzeichnis TIME 42,43 Timeout-Steuerung 105, 119, 120 Timesharing-System 5 Timestamp 44, 45 TIMESTAMP 42,43 Time-to-Live 113 TINYINT 41, 43 Top Level Domain 22 Topic 301, 306 TopicSubscriber 306 Transaktion 45 Transaktionsmodus 314 Transmission Control Protocol 18, 20, 117 transparent 13 Transportschicht 20 Trivial File Transfer Protocol 100 TTL 113 Types 41 U DDP 20,99 DDP-Datagramm 99 DDP-Socket 100 Unicast 113 UnicastRemoteübject 251 Uniform Resource Locator 35, 165, 202 UnknownHostException 23 UnsupportedEncodingException 179 UR! 188 URL 35, 165, 202, 203 URL-Codierung 173 URLConnection 191, 203 URLDecoder 179 URLEncoder 179 User Datagram Protocol 20, 99 User-Agent 170 v VARBINARY 42, 43 VARCHAR 42,43 377 Verarbeitung 6 Verbindungsfabrik 283 Verbindungsschicht 19 Vermittlungsschicht 19 verteiltes System 6 Verteilung 6 Verteilungsplattform 8 Verteilungstransparenz 13 vierstufige Architektur 12 W Warteschlange 281 Web Service 207, 327 WebServer 207, 235 well-known service 22 Wirtschaftlichkeit 7 Worid Wide Web 20, 165 WSDL 327, 329 wsgen 334 ws import 336 WWW 20,165 X XML 80,327 XML-RPC 205 XML-RPC-Anfrage 206 XML-RPC-Antwort 206 XmlRpcClient 209, 210 XML-RPC-Client 209 XmlRpcClientConfiglmpl 210, 246 XML-RPC-Datentypen 212 XmlRpcException 208 XmlRpcServer 207, 237 , 245 XML-RPC-Server 207 XmlRpcServerConfiglmpl 245 XSLT 80, 86 Z Zugriffstransparenz 13 zweistufige Architektur 11, 27