JBoss im Einsatz - Den JBoss Application Server konfigurieren

Javid Jamae, Peter Johnson

JBoss im Einsatz

Den JBoss Application Server konfigurieren

2009

533 Seiten

Format: PDF, Online Lesen

E-Book: €  39,99

E-Book kaufen

E-Book kaufen

ISBN: 9783446420403

 

Inhalt

6

Vorwort

16

Danksagungen

19

Über dieses Buch

21

Teil 1 Der JBoss-Anwendungsserver

28

1 Wählen Sie JBoss

29

1.1 Einführung in JBoss

30

1.1.1 Was ist JBoss?

30

1.1.2 Die Produkte der JEMS-Linie

32

1.1.3 Warum ist JBoss AS so populär?

33

1.2 JBoss AS installieren

35

1.2.1 Die Installation vorbereiten

36

1.2.2 Von der Binärdistribution installieren

37

1.2.3 Den JEMS-Installer verwenden

38

1.3 Die Struktur der Installationsverzeichnisse

40

1.3.1 Das bin-Verzeichnis

40

1.3.2 Das client-Verzeichnis

41

1.3.3 Das docs-Verzeichnis

42

1.3.4 Das lib-Verzeichnis

42

1.3.5 Das server-Verzeichnis

42

1.3.6 Serverkonfigurationen verstehen

43

1.3.7 Die Struktur der Konfiguration

45

1.3.8 Die Konfiguration anpassen

47

1.4 Den Server starten und anhalten

48

1.4.1 Den Server starten

48

1.4.2 Eine andere Konfiguration starten

50

1.4.3 Prüfen, ob der Server läuft

50

1.4.4 Den Server anhalten

51

1.5 Anwendungen auf dem Server bereitstellen

51

1.5.1 Die Anwendung erstellen

52

1.5.2 Die Anwendung bereitstellen

54

1.5.3 Eine bereitgestellte Anwendung entfernen

55

1.6 Zusammenfassung

56

1.7 Quellen

57

2 JBoss AS verwalten

58

2.1 Die Architektur von JBoss AS

59

2.1.1 Der Microcontainer

59

2.1.2 JMX

61

2.2 Den Anwendungsserver konfigurieren

63

2.2.1 Logging konfigurieren

64

2.2.2 Verzeichnisspeicherorte konfigurieren

68

2.2.3 Systemeigenschaften definieren

69

2.3 Die Verwaltungstools

71

2.3.1 Die JMX-Konsole

71

2.3.2 Die Twiddle-Utility

73

2.4 Einige interessante MBeans

74

2.4.1 Systemeigenschaften anzeigen

75

2.4.2 JNDI-Namespaces anzeigen

75

2.4.3 Logging-Ebenen ändern

76

2.4.4 Den Threadpool vergrößern

77

2.4.5 Informationen über den Anwendungsserver beschaffen

77

2.5 Zusammenfassung

77

2.6 Quellen

78

3 Anwendungen bereitstellen

79

3.1 Bereitstellung verstehen

80

3.1.1 Eine Anwendung bereitstellen

80

3.1.2 Anwendungen verpacken

81

3.1.3 Anwendungstypen

82

3.1.4 Die Reihenfolge der Bereitstellung

84

3.1.5 Optionen für die Bereitstellungskonfiguration

85

3.2 Wie Klassen geladen werden

88

3.2.1 Multiple Klassenlader

89

3.2.2 Scoping von Klassen

90

3.2.3 Loader-Repositories

91

3.3 Häufige Bereitstellungsfehler beheben

92

3.3.1 Class not found-Exception

92

3.3.2 Doppelte JAR-Dateien

93

3.3.3 Zip File-Fehler

94

3.3.4 Class Cast-Exception

94

3.4 Diverse Anwendungen bereitstellen

95

3.4.1 Datenquellen bereitstellen

95

3.4.2 Ein Hibernate-Archiv bereitstellen

101

3.5 Zusammenfassung

107

3.6 Quellen

107

4 Sicherheit für Anwendungen

108

4.1 Was ist Sicherheit?

109

4.1.1 Anwendungssicherheit verstehen

109

4.1.2 Authentifizierung verstehen

111

4.1.3 Autorisierung verstehen

112

4.1.4 Sicherheit konfigurieren

114

4.1.5 Dynamische Login-Konfiguration

116

4.1.6 Sicherheit auf dem Server protokollieren

117

4.2 Sichere Kommunikation

117

4.2.1 Symmetrische und asymmetrische Verschlüsselung

118

4.2.2 Zertifikate und Quellen-Authentifizierung

120

4.2.3 Zertifikate erstellen und signieren

122

4.2.4 Die cacerts-Datei modifizieren

123

4.2.5 Client-Authentifizierung mit Zertifikaten

124

4.2.6 Eine SSL-fähige Sicherheitsdomäne konfigurieren

126

4.3 Login-Module konfigurieren

128

4.3.1 Das dateibasierte Login-Modul verwenden

129

4.3.2 Das Datenbank-Login-Modul verwenden

131

4.3.3 Das LDAP-Login-Modul verwenden

132

4.3.4 Das identity-Login-Modul

140

4.3.5 Login-Module stapeln

141

4.3.6 Das Clientzertifikat-Login-Modul

142

4.4 Zusammenfassung

143

4.5 Quellen

144

Teil 2 Anwendungsservices

145

5 JBoss Web Server konfigurieren

146

5.1 Webanwendungen verstehen

147

5.1.1 Die Struktur einer Webanwendung

147

5.1.2 Die Konfiguration von Webanwendungen

148

5.2 JBoss Web Server konfigurieren

152

5.2.1 Wichtige Verzeichnisse finden

152

5.2.2 Exploring JBoss Web Server Configuration

153

5.2.3 Die Konfigurationsdatei für den WAR-Deployer

156

5.3 URL-Pfade konfigurieren

157

5.3.1 Virtuelle Hosts aktivieren

159

5.3.2 Kontextpfade konfigurieren

161

5.3.3 Den Stammkontextpfad ändern

163

5.4 Konnektoren konfigurieren

165

5.4.1 Die Konnektorkonfiguration verstehen

166

5.4.2 Nebenläufigkeit konfigurieren

167

5.4.3 Timeouts konfigurieren

168

5.4.4 Hostnamen und Port für einen Proxy konfigurieren

168

5.5 Das Laden von Webklassen konfigurieren

168

5.6 Ventile verwenden

169

5.7 JavaServer Faces konfigurieren

171

5.8 Zusammenfassung

172

5.9 Quellen

173

6 Sicherheit für Webanwendungen

174

6.1 Websicherheit konfigurieren

175

6.1.1 Sicherheit konfigurieren in web.xml

176

6.1.2 Sicherheit konfigurieren in jboss-web.xml

178

6.1.3 Sicherheit konfigurieren in server.xml

178

6.2 Benutzer authentifizieren

179

6.2.1 Web-Authentifizierungsstrategien verstehen

181

6.2.2 Basisauthentifizierung

182

6.2.3 Formularbasierte Authentifizierung

184

6.2.4 Digest-Authentifizierung

185

6.3 Benutzer autorisieren

186

6.3.1 Autorisierung konfigurieren

187

6.3.2 Zugriff für jeden authentifizierten Benutzer erlauben

187

6.4 Webkommunikation verschlüsseln

188

6.4.1 HTTPS einschalten

189

6.4.2 Transportgarantien ermöglichen

190

6.4.3 Gegenseitige Authentifizierung ermöglichen

192

6.4.4 Browserzertifikate erstellen

194

6.5 Clientzertifikat-Authentifizierung ermöglichen

195

6.5.1 Gegenseitige Authentifizierung auf Protokollebene einschalten

196

6.5.2 Die Authentifizierungsmethode einstellen

196

6.5.3 Die JaasSecurityDomain-MBean angeben

196

6.5.4 Die Sicherheitsdomäne angeben

197

6.5.5 Von der Anwendung auf die Sicherheitsdomäne verweisen

197

6.5.6 Eine Strategie, um den Prinzipal aus dem Zertifikat zu bilden

198

6.5.7 Prinzipale und Rollen in den Autorisierungsdatenspeicher laden

199

6.5.8 Das Clientzertifikat zum Truststore des Servers hinzufügen

199

6.5.9 Ein Browserzertifikat erstellen

200

6.6 Die Standardsicherheitsdomäne ändern

200

6.7 Zusammenfassung

201

6.8 Quellen

201

7 Enterprise-Anwendungen konfigurieren

202

7.1 EJBs verstehen

203

7.1.1 Session Beans verstehen

205

7.1.2 Hibernate und JPA verstehen

206

7.1.3 Enterprise-Pakete verstehen

207

7.2 Eine EJB-Anwendung erstellen

209

7.2.1 Die Beispielanwendung programmieren

209

7.2.2 Beispielanwendung verpacken und ausführen

212

7.3 Die EJB-Konfiguration verstehen

214

7.3.1 Was gehört wohin?

214

7.3.2 EJB-Anwendungen konfigurieren

215

7.3.3 Den EJB-Server konfigurieren

218

7.4 Session Beans konfigurieren

220

7.4.1 Die JNDI-Bindung ändern

220

7.4.2 Eine Session Bean nachschlagen

222

7.4.3 EJB-Container konfigurieren

222

7.5 Die Entity-Persistenz konfigurieren

225

7.5.1 Hibernate-Objekte injizieren

225

7.5.2 Hibernate-Zuordnungen bereitstellen

226

7.6 JMX-Service-Objekte erzeugen

227

7.6.1 Ein Service-Objekt erzeugen

227

7.6.2 Die Beispielanwendung ausführen

229

7.6.3 Zugriff auf MBeans ohne Injektion

229

7.7 Das Transportprotokoll konfigurieren

230

7.7.1 Die Transportkonfiguration verstehen

231

7.7.2 Den Transport ändern

233

7.8 Sicherheit für EJBs

234

7.8.1 EJB-Sicherheit durch Anmerkungen

235

7.8.2 EJBs durch Konfiguration absichern

237

7.8.3 Nichtintegrierte Sicherheit

238

7.8.4 EJB-Kommunikation absichern

240

7.9 Zusammenfassung

242

7.10 Quellen

243

8 JBoss-Messaging

244

8.1 Messaging-Systeme verstehen

245

8.1.1 Architekturen von Messaging-Systemen verstehen

245

8.1.2 Die Messaging-Modelle verstehen

246

8.1.3 Die JMS API verstehen

247

8.1.4 Die Architektur von JBoss Messaging verstehen

250

8.2 Eine JMS-Anwendung entwickeln

251

8.2.1 Die Beispielanwendung programmieren

251

8.2.2 Die Beispielanwendung verpacken und ausführen

257

8.3 Nachrichtengesteuerte Beans verwenden

258

8.3.1 Eine MDB anlegen

259

8.3.2 Eine MDB verpacken

262

8.3.3 Eine Deskriptordatei für die MDB

262

8.4 Nachrichtengesteuerte POJOs verwenden

264

8.4.1 Einen nachrichtengesteuerten POJO-Consumerimplementieren

264

8.4.2 Einen nachrichtengesteuerten POJO-Producer implementieren

265

8.4.3 Ein nachrichtengesteuertes POJO verpacken

266

8.5 JBoss Messaging konfigurieren

267

8.5.1 Eine Datenquelle konfigurieren

267

8.5.2 Zugriffssteuerung konfigurieren

269

8.5.3 Destinationen konfigurieren

272

8.5.4 Die Anwendung aktualisieren

273

8.5.5 Das geänderte Beispiel ausführen

274

8.5.6 Die MDB aktualisieren

275

8.5.7 Sicheren Nachrichtentransport konfigurieren

275

8.6 Zusammenfassung

279

8.7 Quellen

279

9 Webservices konfigurieren

280

9.1 Webservices verstehen

281

9.1.1 Die Terminologie der Webservices

282

9.1.2 SOAP-Bindungsstile

283

9.2 Einen Webservice entwickeln

283

9.2.1 Den Webservice programmieren

283

9.2.2 Den Webservice verpacken

284

9.2.3 Die WSDL manuell generieren

286

9.2.4 Webservices mit dem Top-down-Ansatz entwickeln

287

9.2.5 Den Client entwickeln

288

9.2.6 Einen C#-Client programmieren

290

9.2.7 Mehr zu SOAP-Bindungsstilen

291

9.3 Anmerkungen in JBossWS

293

9.3.1 Die WebContext-Anmerkung verstehen

293

9.3.2 Die EndpointConfig-Anmerkung verstehen

295

9.4 Sicherheit für Webservices

296

9.4.1 Zugriff auf Webservices autorisieren

296

9.4.2 Den Sicherheits-Realm definieren

297

9.5 SOAP-Nachrichten verschlüsseln

300

9.5.1 Zertifikate generieren

300

9.5.2 Server sichern mit WS-Security

301

9.5.3 Clients mit WS-Security absichern

304

9.5.4 Nachrichten signieren mit WS-Security

306

9.6 Zusammenfassung

308

9.7 Quellen

308

Teil 3 JBoss Portal

309

10 JBoss Portal und Portlets

310

10.1 Einführung in JBoss Portal

311

10.1.1 JSR-168 verstehen

312

10.1.2 Die Terminologie von Portalen

313

10.1.3 JBoss Portal installieren

314

10.1.4 JBoss Portal administrieren

316

10.2 Ein Portlet erstellen

317

10.2.1 Das Image-Portlet programmieren

318

10.2.2 Die Quelldateien für die JSP programmieren

323

10.2.3 Portlet-Deskriptoren verstehen

327

10.2.4 Portlets erstellen und bereitstellen

330

10.3 Eine Portlet-Instanz

331

10.3.1 Instanzen erzeugen mit der portlet-instance.xml-Datei

332

10.3.2 Instanzen erzeugen mit dem Admin-Portlet

332

10.4 Portlet-Fenster deklarieren

333

10.4.1 Portlet-Fenster in der *-object.xml-Datei deklarieren

333

10.4.2 Portlet-Fenster mit dem Admin-Portlet deklarieren

334

10.5 Zusammenfassung

336

10.6 Quellen

337

11 JBoss Portal konfigurieren

338

11.1 Das Aussehen der Fenster konfigurieren

338

11.1.1 Das Aussehen von Fenstern mit *-object.xml konfigurieren

340

11.2 Der Umgang mit mehreren Bildern und Instanzen

341

11.2.1 Mehrere Instanzen und Fenster mit Deskriptordateienkonfigurieren

342

11.3 Der Umgang mit dem CMS-

344

11.3.1 CMS-Beispieldaten sammeln

344

11.3.2 Die neuen Inhalte anzeigen

346

11.3.3 Zugriff auf CMS-Inhalte

347

11.4 Sicherheit für das Portal

348

11.4.1 Ein neues Konto anlegen

349

11.4.2 Rollen verwalten

349

11.4.3 Zugriffssteuerung verstehen

350

11.5 Ein benutzerdefiniertes Portal entwickeln

358

11.5.1 Die Anforderungen definieren

358

11.5.2 Der Vorschlag

359

11.5.3 Das Portal definieren

359

11.5.4 Das Design anpassen

362

11.5.5 CMS-Inhalte anpassen

365

11.5.6 Das Portal verpacken

366

11.6 Zusammenfassung

368

Teil 4 In die Produktion gehen

370

12 Clustering

371

12.1 Clustering verstehen

372

12.1.1 Lastverteilung

372

12.1.2 Aufbau und Topologie eines Clusters

375

12.1.3 Automatische Discovery und Multicasting

377

12.1.4 Hochverfügbarkeit

379

12.1.5 Replikation und Fehlertoleranz

380

12.1.6 Zustandspassivierung

384

12.1.7 Verteilung versus Clustering

384

12.2 Einen einfachen Cluster einrichten

386

12.2.1 Einen JBoss-Cluster einrichten

386

12.2.2 Eine geclusterte EJB erstellen

389

12.2.3 Die Anwendung bereitstellen

389

12.2.4 Die geclusterte EJB aufrufen

390

12.3 JBoss-Clustering verstehen

391

12.3.1 Die Architektur von JGroups verstehen

392

12.3.2 Die Clustering-Services von JBoss konfigurieren

394

12.3.3 Den Protokollstapel konfigurieren

397

12.4 JBoss Cache konfigurieren

400

12.4.1 Die Konfigurationsdateien von JBoss Cache

401

12.4.2 Was soll in den Cache gelangen?

405

12.5 Zusammenfassung

406

12.6 Quellen

407

13 Clustering für JBoss AS Services

408

13.1 HTTP-Lastverteilung

409

13.1.1 Lastverteilung mit dem nativen Webserver

409

13.1.2 Lastverteilung mit Hardware

411

13.2 HTTP-Sitzungsreplikation

411

13.2.1 Replikation konfigurieren

412

13.2.2 Die Verwendung von Sitzungen verstehen

412

13.2.3 Feldreplikation

414

13.2.4 Passivierung konfigurieren

415

13.3 Clustering von Session Beans

416

13.3.1 Lastverteilung für Session Beans

417

13.3.2 Zustandsbehaftete Session Beans replizieren

418

13.4 Clustering von Entities

419

13.4.1 Den Entity-Cache replizieren

420

13.5 JNDI clustern

423

13.5.1 Den HA-JNDI-Service verstehen

423

13.5.2 HA-JNDI einschalten

425

13.5.3 Auf HA-JNDI zugreifen

426

13.5.4 HA-JNDI verwenden – ja oder nein?

427

13.6 Zusammenfassung

428

13.7 Quellen

429

14 JBoss AS – Tuning

430

14.1 Definition von Performance

431

14.2 Eine Methode für das Performance-Tuning

432

14.2.1 Ganzheitliches Performance-Tuning

432

14.2.2 Testzyklus zur Performance-Analyse

434

14.3 Hardware und Netzwerk tunen

436

14.3.1 Die Geschwindigkeit der Netzwerkkarten einstellen

437

14.3.2 Die Anzahl der CPUs auswählen

438

14.3.3 Die Wahl zwischen 32 Bit und 64 Bit

438

14.4 Das Betriebssystem tunen

439

14.4.1 Prozessoraffinität verstehen

439

14.5 Die JVM tunen

442

14.5.1 Den Java-Heap verstehen

442

14.5.2 Garbage Collection verstehen

445

14.5.3 Garbage Collection-Daten sammeln

447

14.5.4 Die Auswahl der Heap-Einstellungen

454

14.5.5 Der Umgang mit Out-of-Memory-Exceptions

456

14.5.6 Weitere Tuning-Optionen

456

14.6 JBoss AS tunen

457

14.6.1 Datenquellen konfigurieren

458

14.6.2 Den Thread-Pool für HTTP-Anforderungen konfigurieren

460

14.6.3 Das JSP-Servlet tunen

461

14.7 Die Anwendung tunen

462

14.7.1 System.gc vermeiden

463

14.7.2 Einen Thread-Dump aufzeichnen

463

14.8 Zusammenfassung

466

14.9 Quellen

467

15 In die Produktion gehen

468

15.1 Eine Plattform auswählen

469

15.1.1 Eine JVM auswählen

469

15.1.2 Eine JBoss AS-Version aussuchen

470

15.1.3 Eine Plattform auswählen

473

15.2 Mehrere Anwendungsserver-Instanzen nebeneinanderbetreiben

474

15.2.1 Dateikonflikte vermeiden

475

15.2.2 Portkonflikte verhindern

476

15.2.3 Mehrere Knoten herunterfahren

483

15.3 Überflüssige Services entfernen

483

15.4 Sicherheit für die Serveranwendungen

485

15.4.1 Die Serveranwendungen entfernen

485

15.4.2 Sicherheit für die Serveranwendungen

485

15.4.3 Den Zugriff auf den lokalen Computer beschränken

486

15.5 Die Standarddatenbank ändern

487

15.5.1 Den EJB3-Timer-Service konfigurieren

488

15.6 Den Anwendungsserver als Service starten

489

15.6.1 Einen Dienst in Windows registrieren

490

15.6.2 Mehrere Services registrieren

491

15.6.3 Einen Service in Linux registrieren

495

15.7 Die JSP-Kompilierung konfigurieren

497

15.8 Zusammenfassung

498

15.9 Quellen

499

Anhang A JNDI-Namespaces

500

Anhang B Wandel ist unvermeidlich

505

Register

516

 

© 2009-2024 ciando GmbH