The following has evaluated to null or missing: ==> FrontendService.media.getDMTJsonObject( coverBild.groupId?number, coverBild.uuid, locale ) [in template "252001#252047#252845" at line 128, column 37] ---- Tip: If the failing expression is known to legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: dMTJsonObject = FrontendService.media... [in template "252001#252047#252845" at line 128, column 21] ----
1<#-- used @ Veranstaltung-Detailseite Intro
2 used @ Publikation-Detailseite Intro
3-->
4
5<#--
6Web content templates to display teaser on thema detail page
7
8Generic template for detail pages Intro / Teaser element
9-->
10<#--
11Display the current page title
12-->
13<#include "${fullTemplatesPath}/functions/relatedContentUtil.ftl" />
14<#include "${fullTemplatesPath}/macros/debugging.ftl" />
15
16<#include "${fullTemplatesPath}/macros/page-modules/PMIntro.ftl" />
17<#include "${fullTemplatesPath}/macros/atomic-modules/AMPublicationCarousel.ftl" />
18<#include "${fullTemplatesPath}/macros/atomic-modules/AMMetadata.ftl" />
19<#include "${fullTemplatesPath}/macros/atomic-modules/AMDatetime.ftl" />
20
21
22<#--
23 renders the Intro for nearly all Pages
24 TODO: remove Share? (was in the designs, but not anymore?)
25 TODO: check if languageSelect/filter are working (js)
26
27 - portletId
28 - data = {
29 "media": string (src from image),
30 "category": string,
31 "title": string,
32 "author": string,
33 "subheadline": string,
34 "copy": string,
35 "filter": {
36 "id": string,
37 "name": string,
38 "entries": Array<Object> ({key:value}),
39 },
40 "languageSelect": {
41 "id": string,
42 "name": string,
43 "entries": Array<Object> ({key:value}),
44 },
45 "meta": {
46 "pos"; string (top/bottom)
47 "date": string,
48 "hash": string,
49 "info": string, (url)
50 },
51 "share" : {
52 "login": string,
53 "print": string,
54 "mail": string,
55 "multishare": string?? (tbd)
56 }
57 - AMMetadata: macro
58 - position: String ("top") -> defines wether the meta-data should be rendered above or below the intro-content
59 }
60-->
61
62<#assign
63 JournalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")
64
65 ServiceContext = staticUtil["com.liferay.portal.kernel.service.ServiceContextThreadLocal"].getServiceContext()
66 DLAPP = serviceLocator.findService("com.liferay.document.library.kernel.service.DLAppLocalService")
67
68 themeDisplay = ServiceContext.getThemeDisplay()
69 editmode = FrontendService.user.isPrivilegedUser(themeDisplay)
70
71 languageId = themeDisplay.getLocale()
72 groupId = themeDisplay.getScopeGroupId()
73 currentUrl = themeDisplay.getURLCurrent()
74
75 layout = themeDisplay.getLayout()
76 layouttpl = layout.getTypeSettingsProperties().getProperty("layout-template-id")
77/>
78
79<#setting locale="${languageId}">
80
81<#-- get article from url -->
82
83<#assign entry = FrontendService.article.getArticleToUrl(currentUrl, groupId?number)! >
84
85
86<#if entry?has_content>
87
88 <#if entry.resourcePrimKey??>
89 <#assign primaryKey = entry.resourcePrimKey?number >
90 <#elseif entry.classPK??>
91 <#assign primaryKey = entry.classPK?number >
92 </#if>
93
94 <#assign
95 jsonString = FrontendService.article.getWebcontent(primaryKey)
96 json = FrontendService.json.parseAsJson(jsonString)
97 availablelanguages = FrontendService.article.getAssetEntryToUrl(primaryKey).getAvailableLanguageIds()
98
99 title = entry.getTitle(languageId)
100 data = {
101 "title": title
102 }
103 />
104 <@debugJsonString jsonString "ADT_KASDE_DYNAMIC_INTRO" />
105
106 <#if hasContent('untertitel', languageId, json)>
107 <#assign data = data + { "subheadline": getValueForLanguage('untertitel', languageId, json, "first") } >
108 </#if>
109
110 <#if hasContent('beschreibung', languageId, json)>
111 <#assign data = data + { "copy": getValueForLanguage('beschreibung', languageId, json, "first") } >
112 </#if>
113
114 <#-- fill meta data -->
115 <#assign meta = {} />
116
117 <#-- PUBLIKATIONEN DETAIL -->
118 <#if layouttpl?contains("LAYOUT_KASDE_PUBLIKATIONEN_DETAIL")>
119
120 <#if hasContent('coverDMTKASDEMEDIUM', languageId, json)>
121 <#assign
122 coverBildString = getValueForLanguage('coverDMTKASDEMEDIUM', languageId, json, "first")
123 />
124
125 <#if coverBildString?has_content>
126 <#assign
127 coverBild = FrontendService.json.parseAsJson(coverBildString)
128 dMTJsonObject = FrontendService.media.getDMTJsonObject( coverBild.groupId?number, coverBild.uuid, locale )
129 linkToDMT = FrontendService.media.getImageURLForAMConfiguration('hd-resolution',coverBild.groupId?number, coverBild.uuid )
130 data = data + { "media": linkToDMT, "meta" : dMTJsonObject }
131 />
132 <#if dMTJsonObject.altText?? >
133 <#assign data = data + {"alt" : dMTJsonObject.altText} />
134 </#if>
135 <#if dMTJsonObject.quelle??>
136 <#assign meta = meta + { "quelle": dMTJsonObject.quelle } />
137 </#if>
138 </#if>
139 <#-- uncomment to display pdf cover as Intro Image
140 <#elseif hasContent('document_pdfDMTBASICDOCUMENT', languageId, json)>
141 <#assign
142 pdfDocument = getValueForLanguage('document_pdfDMTBASICDOCUMENT', languageId, json, "first")
143 fileEntry = FrontendService.media.getFileEntry(pdfDocument.uuid, groupId?number)!/>
144 <#if fileEntry?has_content>
145 <#assign
146 linkToThumbnail = FrontendService.link.getThumbnailSrc(fileEntry , themeDisplay)
147 data = data + { "media": linkToThumbnail }
148 />
149 </#if>
150 -->
151 </#if>
152
153 <#assign
154 meta = meta + { "orderInfo": "true" }
155 verbundJournalArticle = FrontendService.publication.getVerbundToPublikation( entry )!""
156 />
157
158
159
160 <#if hasContent('erscheinungsdatum', languageId, json)>
161 <#assign
162 erscheinungsdatum = getValueForLanguage('erscheinungsdatum', languageId, json, "first")
163 />
164 <#if erscheinungsdatum?has_content >
165 <#assign
166 erscheinungsdatumFormatted = FrontendService.date.getDateFormatLong( erscheinungsdatum, languageId )
167 meta = meta + { "date": erscheinungsdatumFormatted }
168 />
169 </#if>
170 </#if>
171
172 <#if verbundJournalArticle?has_content>
173 <#assign
174 verbundJsonString = FrontendService.article.getWebcontent(verbundJournalArticle.resourcePrimKey)
175 verbundJson = FrontendService.json.parseAsJson(verbundJsonString)
176 laufendenummer = getValueForLanguage('laufendenummer', languageId, verbundJson, "first")
177 coverImg = getValueForLanguage('mediumDMTKASDEMEDIUM', languageId, verbundJson, "first")
178 />
179 <@debugJsonString verbundJsonString "ADT_KASDE_DYNAMIC_INTRO-verbundJournalArticle" />
180 <#assign meta = meta + { "laufendenummer": laufendenummer } >
181
182 <#if coverImg?has_content && coverImg.url?has_content >
183 <#assign meta = meta + { "coverImg": coverImg.url } >
184 </#if>
185 </#if>
186
187
188 <#if meta?has_content>
189 <#assign data = data + {"meta": meta } >
190 </#if>
191
192 </#if>
193 <#-- PUBLIKATIONEN DETAIL END -->
194
195
196 <#-- VERANSTALTUNGEN DETAIL -->
197 <#if layouttpl?contains("LAYOUT_KASDE_VERANSTALTUNGEN_DETAIL")>
198 <#assign
199 friendlyUrl = FrontendService.article.getFriendlyUrl(primaryKey, languageId, groupId)!""
200 links = []
201 />
202 <#if availablelanguages?has_content && friendlyUrl?has_content>
203 <#if (availablelanguages?size > 1) >
204 <#list availablelanguages as language>
205 <#assign
206 defaultLanguage = "de_DE"
207 defaultLocale = FrontendService.language.getLocaleByKey(defaultLanguage)
208 linkLocale = (FrontendService.language.getLocaleByKey(language))!defaultLocale
209 langFriendlyUrl = FrontendService.article.getFriendlyUrl(primaryKey, linkLocale, groupId)
210
211 link = {
212 "key": language!defaultLanguage,
213 "value": linkLocale.getDisplayLanguage(languageId),
214 "url": "/c/portal/update_language?p_l_id=" +
215 layout.plid + "&redirect=" + langFriendlyUrl +
216 "&languageId=" + language
217 }
218 />
219 <#if language == languageId>
220 <#assign link = link + { "selected": "true" } >
221 </#if>
222 <#assign links = links + [link]>
223 </#list>
224 <#assign
225 data = data + {
226 "languageSelect": {
227 "id": "languageSelectRedirect",
228 "name": "languageselectRedirect",
229 "entries": links,
230 "label": languageUtil.get(languageId, "diese.veranstaltung.ist.in.weiteren.sprachen.verfuegbar")
231 }
232 }
233 />
234 </#if>
235 </#if>
236 </#if>
237
238 <#if hasContent('erscheinungsdatum', languageId, json)>
239 <#assign
240 startdate = getValueForLanguage('erscheinungsdatum', languageId, json, "first")
241 meta = meta + { "start": startdate?date.iso, "end": "" }
242 />
243 </#if>
244
245 <#if hasContent('startdatum', languageId, json)>
246 <#assign
247 startdate = getValueForLanguage('startdatum', languageId, json, "first")
248 meta = meta + { "start": startdate?date.iso, "end": "" }
249 />
250 </#if>
251
252 <#if hasValue('einfuehrungText', locale, json)>
253 <#assign data = data + { "einfuehrungText" : getValueForLanguage('einfuehrungText', locale, json, "first") } >
254 <#elseif hasValue(FrontendService.article.getFieldNameByReferenceName(primaryKey, 'einfuehrungText'), locale, json, "first")>
255 <#assign data = data + { "einfuehrungText" : getValueForLanguage(FrontendService.article.getFieldNameByReferenceName(primaryKey, 'einfuehrungText'), locale, json, "first") } >
256 </#if>
257
258 <#if hasContent('endedatum', languageId, json)>
259 <#assign
260 enddate = getValueForLanguage('endedatum', languageId, json, "first")
261 meta = meta + { "end": enddate?date.iso }
262 />
263 </#if>
264
265 <#if hasContent('startzeit', languageId, json)>
266 <#assign
267 startzeit = getValueForLanguage('startzeit', languageId, json, "first")
268 />
269 <#if startzeit?has_content >
270 <#assign meta = meta + { "startzeit": startzeit } />
271 </#if>
272 </#if>
273
274 <#if hasContent('endezeit', languageId, json)>
275 <#assign
276 endezeit = getValueForLanguage('endezeit', languageId, json, "first")
277 meta = meta + { "endezeit": endezeit }
278 />
279 </#if>
280
281 <#if hasContent('ortWCSKASDEORT', languageId, json)>
282 <#assign
283 ortWCSKASDEORT = FrontendService.json.parseAsJson(getValueForLanguage('ortWCSKASDEORT', languageId, json, "first"))
284 ortWCSKASDEORTPrimaryKey = ortWCSKASDEORT.classPK?number
285 ortWCSKASDEORTWebContent = FrontendService.article.getWebcontentByPk(ortWCSKASDEORTPrimaryKey)!""
286 />
287 <#if ortWCSKASDEORTWebContent?has_content >
288 <#assign
289 ortWCSKASDEORTTitle = ortWCSKASDEORTWebContent.getTitle(languageId)!""
290 />
291 <#if ortWCSKASDEORTTitle?has_content >
292 <#assign
293 meta = meta + { "ortWCSKASDEORT": ortWCSKASDEORTTitle }
294 />
295 </#if>
296 </#if>
297 </#if>
298
299
300 <#if hasContent('veranstaltungsnummer', languageId, json)>
301 <#assign
302 verauuid = getValueForLanguage('veranstaltungsnummer', languageId, json, "first")
303 meta = meta + { "verauuid": verauuid }
304 />
305 </#if>
306
307
308 <#if (data.meta)?has_content >
309 <#assign meta = data.meta />
310 </#if>
311
312 <#if !(data.media)?has_content && hasContent('mediumDMTKASDEMEDIUM', languageId, json)>
313 <#assign
314 medium = getValueForLanguage('mediumDMTKASDEMEDIUM', languageId, json, "first")
315 mediaData = getRelatedMediaObject(medium, themeDisplay, languageId, FrontendService, "hd-resolution")
316 />
317 <#assign data = data + { "media": mediaData.url , "meta" : mediaData.meta} >
318
319
320 <#if mediaData.meta?? && mediaData.meta.quelle??>
321 <#assign meta = meta + data.meta + { "quelle": mediaData.meta.quelle } />
322 </#if>
323 </#if>
324
325
326 <#if meta?has_content>
327 <#assign data = data + {"meta": meta } >
328 </#if>
329
330 <#-- END fill meta data -->
331
332 <#if hasContentForSequence('autorenWCSKASDEPERSON', languageId, json)>
333 <#assign
334 journalArticles = getValueForLanguageAnsprechpartner('autorenWCSKASDEPERSON', languageId, json)
335 authors = []
336 />
337 <#list journalArticles as articleString>
338 <#assign article = FrontendService.json.parseAsJson(articleString) />
339 <#if article?has_content && article?is_hash && article.classPK??>
340 <#assign articleDereferenced = FrontendService.person.resolveContactInstanceToPerson(article, languageId)!"" />
341 <#if articleDereferenced?has_content >
342 <#assign
343 author = ""
344 articlePrimaryKey = articleDereferenced.classPK?number
345 articleJsonString = FrontendService.article.getWebcontent(articlePrimaryKey)
346 articleJson = FrontendService.json.parseAsJson(articleJsonString)
347 />
348 <@debugJsonString articleJsonString "ADT_KASDE_DYNAMIC_INTRO-autorenWCSKASDEPERSON" />
349 <#if hasValue('anredetitel', languageId, articleJson)>
350 <#assign author = author + getValueForLanguage('anredetitel', languageId, articleJson, " ") + " ">
351 </#if>
352 <#if hasValue('vorname', languageId, articleJson)>
353 <#assign author = author + getValueForLanguage('vorname', languageId, articleJson, " ") + " ">
354 </#if>
355 <#if hasValue('nachname', languageId, articleJson)>
356 <#assign author = author + getValueForLanguage('nachname', languageId, articleJson, " ") + " ">
357 </#if>
358
359 <#attempt>
360 <#assign href = FrontendService.article.getFriendlyUrl(articlePrimaryKey, languageId, groupId)!"#" >
361 <#recover>
362 <#assign href = "#" >
363 </#attempt>
364 <#if href?has_content && href != "#" && href != "/_404">
365 <#assign author = '<a href="' + href + '">' + author?trim + '</a>'>
366 </#if>
367
368 <#assign authors = authors + [author?trim]>
369 </#if>
370 </#if>
371 </#list>
372 <#if authors?has_content>
373 <#assign data = data + { "author": authors?join(", ") } >
374 </#if>
375 </#if>
376
377 <#if layouttpl?contains("LAYOUT_KASDE_VERANSTALTUNGEN_DETAIL") >
378 <#assign categories = FrontendService.category.getCategoriesToArticle(primaryKey, "VERANSTALTUNGSTYP")! >
379 <#if categories?has_content && categories[0]?has_content >
380 <#assign data = data + { "category": categories[0].getTitle(languageId,true)! } >
381 </#if>
382
383 <#if hasContent('ausgebucht', languageId, json)>
384 <#assign data = data + { "ausgebucht" : getValueForLanguage('ausgebucht', languageId, json, "first") }>
385 </#if>
386
387 <#if hasContent('storniert', languageId, json)>
388 <#assign data = data + { "storniert" : getValueForLanguage('storniert', languageId, json, "first") }>
389 </#if>
390
391 <#elseif layouttpl?contains("LAYOUT_KASDE_PUBLIKATIONEN_DETAIL") >
392 <#assign categories = FrontendService.category.getCategoriesToArticle(primaryKey, "PUBLIKATIONSREIHE")! >
393 <#if categories?has_content && categories[0]?has_content >
394 <#assign data = data + { "category": categories[0].getTitle(languageId,true)! } >
395 </#if>
396 <#else>
397 <#assign categories = FrontendService.category.getCategoriesToArticle(primaryKey, "THEMA")! >
398 <#if categories?has_content && categories[0]?has_content >
399 <#assign data = data + { "category": categories[0].getTitle(languageId,true)! } >
400 </#if>
401 </#if>
402
403
404 <#assign
405 languages = []
406 />
407
408 <#attempt>
409 <#if json["document_pdfDMTBASICDOCUMENT"]?? >
410 <#if availablelanguages?has_content>
411 <#list availablelanguages as pdf_language>
412 <#assign
413 docRefJson = getValueForLanguage('document_pdfDMTBASICDOCUMENT', pdf_language, json, "first")
414 docRef = FrontendService.json.parseAsJson(docRefJson)
415 />
416 <#if docRef?is_hash && pdf_language != languageId >
417 <#assign
418 lang = FrontendService.language.getLocaleByKey(pdf_language)!""
419 docGroupId = docRef["groupId"]?number
420 docUuid = docRef["uuid"]
421 dMTJsonObject = FrontendService.media.getDMTJsonObject( docGroupId, docUuid, locale )
422 dMTLink = FrontendService.media.getLinkToDMT( dMTJsonObject )
423 />
424 <#if lang?has_content>
425 <#assign
426 languages = languages + [
427 {
428 "key": pdf_language,
429 "value": FrontendService.language.getLocaleByKey(pdf_language).getDisplayLanguage(),
430 "url": dMTLink
431 }]
432 />
433 </#if>
434 </#if>
435 </#list>
436 </#if>
437 </#if>
438 <#recover>
439 </#attempt>
440
441 <#if (languages?size > 0)>
442 <#attempt>
443 <#assign
444 data = data + { "languageSelect": {
445 "id": "languageSelect",
446 "name": "languageselect",
447 "entries": languages,
448 "documents": "",
449 "button": "true"
450 }}
451 />
452 <#recover>
453 </#attempt>
454 </#if>
455
456 <@PMIntro "ADT_KASDE_DYNAMIC_INTRO" data AMMetadata AMDatetime "bottom" />
457 ${FrontendService.article.getEditArticleHtml(primaryKey, themeDisplay)}
458
459 <#if data.meta?has_content>
460 <#if data.meta.laufendenummer?has_content !isACColorScheme() && !isVLCColorScheme() && !isDPMColorScheme()>
461 <div>
462 <div id="publicationVerbundPagination">
463 <@AMPublicationCarousel data.meta.laufendenummer data.meta.date data.meta.coverImg />
464 </div>
465 </div>
466 </#if>
467 </#if>
468
469<#elseif (editmode?? && editmode)>
470 <@errorMessage languageUtil.get(locale, "kein.journalArticle.gefunden") "ADT_KASDE_DYNAMIC_INTRO" layouttpl currentUrl />
471</#if>
Die Südostasienreise der US-Vizepräsidentin sollte ein Zeichen der Entschlossenheit und ein Bekenntnis zu einem langfristigen Engagement Washingtons in die Region aussenden, die strategische Fokussierung auf den Indo-Pazifik diplomatisch untermauern und Präsident Joe Bidens Mantra „America is back“ mit konkreten Initiativen ausfüllen. Neben der Rückversicherung für die Partner der USA diente die Reise jedoch in mindestens gleichem Maße der außenpolitischen Signalwirkung an den geopolitischen Wettbewerber in Peking. Der sich rasant vollziehende politische, wirtschaftliche und militärische Aufstieg der Volksrepublik China und dessen immer expansiveres Auftreten macht sich in keiner Weltregion so unmittelbar bemerkbar wie in Südostasien.
Dass die Reise von Kamala Harris sie nun neben Singapur vom 24. bis 26. August 2021 in das von der Kommunistischen Partei regierte Vietnam führte, macht deutlich, welchen strategischen Stellenwert Washington mittlerweile dem einstigen Kontrahenten in Hanoi beimisst.
Die Vergangenheit hinter sich lassen, den Blick in die Zukunft gerichtet
Die dramatischen Ereignisse am Kabuler Flughafen, welche im Westen manch Erinnerung evozierten, spielten anders als bei der ersten Reisestation Singapur in Hanoi keine Rolle. Berichte internationaler Medien, die historische Parallelen herzustellen versuchten, wurden in Vietnam zudem von der staatlichen Zensur durch Firewalls gesperrt. Verunsicherung (oder gar Schadenfreude) wurden durch die Bilder aus Kabul nicht hervorgerufen Die Entscheidung des Rückzugs der USA aus Afghanistan wird in Vietnam als eine bewusste Entscheidung zur Ermöglichung einer stärkeren Hinwendung und zum Ausbau des amerikanischen Engagements im Indo-Pazifik verstanden.
Dass Vietnam und die Vereinigten Staaten im Kalten Krieg, einst Kriegsgegner gewesen waren, spielte beim Besuch von Harris in Hanoi nur eine Randnotiz. So besuchte die US-Vizepräsidentin ein Denkmal an der Stelle, an welcher der spätere US-Senator und Präsidentschaftskandidat John McCain 1967 in seinem Kampflugzeug abgeschossen worden war. Zudem wurden finanzielle Mittel und Projekte zur Aufspürung und Beseitigung explosiver Kampfmittelaltlasten (UXO) aus dem Vietnamkrieg sowie zur Unterstützung von Menschen mit Behinderungen als Folge von Blindgängern und Umweltgiften zugesagt.
Vietnam als wichtiger Partner der USA in einer geopolitisch brisanten Region
Gegenwart und Zukunft der bilateralen Beziehungen sowie die vertiefte Zusammenarbeit auf Grundlage geteilter strategischen Interessen standen hingegen im Zentrum des Besuchs.
Aus US-amerikanischer Sicht stellt Vietnam mittlerweile noch vor den traditionellen Bündnispartner Philippinnen und Thailand oder dem bevölkerungsreichen Indonesien einen wichtigen strategischen Baustein in seiner Indo-Pazifik Strategie dar. Die Beziehung zu dem Einparteienstaat ist dabei keine Wertepartnerschaft, sondern eine auf realpolitischen Kalkulationen und Interessenskongruenz basierende Zusammenarbeit. In erster Linie ist die enge Beziehung der beiden Staaten eine Folge des Aufstieg Chinas.
Neben Singapur wurde Vietnam als einziges Land Südostasiens explizit in der „Interim National Security Strategy Guidance“ (INSSG), dem im März 2020 veröffentlichten ersten außenpolitischen Strategiedokument der Biden-Administration, erwähnt. Und auch wenn man die klassische Besuchsdiplomatie, gerade in Zeiten einer globalen Pandemie, als Gradmesser der Beziehungen heranzieht, so wird die Bedeutung Vietnams für die Verfolgung der außenpolitischen Interessen Washingtons in der Indo-Pazifik Region deutlich: Noch unter der Trump-Administration hatten im Oktober beziehungsweise November vergangenen Jahres der amerikanische Außenminister Mike Pompeo und der Nationale Sicherheitsberater Robert O´Brien Hanoi Besuche abgestattet, im Juli 2021 besuchte Verteidigungsminister Llody Austin als erstes Kabinettmitglied der Biden-Administration Vietnam. Und nun schließlich Kamala Harris als erste US-Vizepräsidentin überhaupt.
Einige politische Beobachter hatten im Vorfeld die Vermutung – oder Hoffnung – geäußert, dass es im Zuge des Besuchs von Harris zu einer Aufwertung der Partnerschaft zwischen den USA und Vietnam kommen könnte. Diese Erwartungen wurden nur teils erfüllt. Harris war mit dem Auftrag angereist, eine weitere Vertiefung der bestehenden „umfassenden Partnerschaft“ zwischen Vietnam und den USA zu erreichen – und das Angebot zu einer semantischen Aufwertung zu einer „strategischen Partnerschaft“ zu erneuern.
Der Substanz nach bereits eine strategische Beziehung
Vietnam unterhält mit mehr als einem Dutzend Staaten „strategische Partnerschaften“ – darunter auch seit Oktober 2011 mit Deutschland. Mit drei Staaten hat Hanoi die Partnerschaft formell auf höchste Ebene gehoben: 2012 wurde die seit 2001 bestehende „strategische Partnerschaft“ mit Moskau zu einer „umfassenden strategischen Partnerschaft“ aufgewertet, 2016 erfolgte die Aufwertung der seit 2007 bestehenden Partnerschaft mit Neu-Delhi. Primus inter pares bleibt jedoch Peking: mit Vietnam ist man durch eine „umfassende, strategische, kooperative Partnerschaft“ (2009) verbunden. Unzweifelhaft gibt es gewichtige politische, wirtschaftliche militärische und historische Gründe für diese besonders engen Beziehungen mit den drei genannten Partnern.
Mit den Vereinigten Staaten – dem wichtigsten Exportpartner Vietnams und nach China zweitwichtigstem Handelspartner – verbindet Vietnam offiziell jedoch weiterhin nur eine „umfassende Partnerschaft“.
Dabei ist man in Washington schon seit mehr als einer Dekade bemüht, die Beziehungen zum einstigen Kontrahenten auf eine auch der Sprache nach strategische Ebene zu heben. Der Substanz nach ist dies auch gelungen. Die leidvolle Vergangenheit, ideologische Differenzen und Kritik an der innenpolitischen Situation in Vietnam waren dabei keine Hindernisse.
Bereits 2010 hatte die damalige US-Außenministerin Hillary Clinton Vietnam eine „strategische Partnerschaft“ angetragen. 2013 verkündete man schließlich die „umfassende Partnerschaft“. Von da an nahm die Beziehung Fahrt auf: im zwanzigsten Jahr der Aufnahme diplomatischer Beziehungen wurde Nguyễn Phú Trọng als erster Generalsekretär der Kommunistischen Partei Vietnams (KPV) im Weißen Haus empfangen. Im Folgejahr erfolgte der Gegenbesuch von Präsident Barack Obama in Hanoi, im Zuge dessen auch die Aufhebung des US-Rüstungsembargos vereinbart wurde. 2017 wurde erstmalig ein Patrouillenboot der US-Küstenwache an Vietnam übergeben, im darauffolgenden Jahr lief mit der USS Carl Vinson erstmalig ein amerikanischer Flugzeugträger für einen Hafenbesuch in Da Nang ein – in jener Hafenstadt, wo 1965 die ersten US-Marines angelandet waren.
Auch in vielen anderen relevanten Bereichen erfolgte in den vergangenen Jahren ein kontinuierlicher, substantieller Ausbau der Beziehungen. Die USA sind somit längst zum zweitwichtigsten Partner Vietnams aufgestiegen. Wenn es um Fragen der maritimen Sicherheit und das Südchinesische Meer (in Vietnam: Biển Đông, übersetzt: Ostsee) geht, ist Washington gar der wichtigste Partner, denn hier sieht man sich durch den großen Nachbarn im Norden zunehmend herausgefordert. Das Bekenntnis zur regelbasierten internationalen Ordnung ist das wichtigste Bindeglied der amerikanisch-vietnamesischen strategischen Beziehungen.
Semantische Rücksichtnahme
Eine semantische Aufwertung der „umfassenden Partnerschaft“ zu einer „strategischen Partnerschaft“ wurde auch während des jüngsten Besuchs von US-Vizepräsidentin Kamala Harris nicht erreicht. In den Staatsmedien Vietnams wurde das Adjektiv „strategisch“ weitestgehend bewusst vermieden, aber man betonte die Bedeutung und Wichtigkeit der Beziehungen. So beschrieb Staatspräsident Nguyễn Xuân Phúc anlässlich des Besuchs von Harris die Vereinigten Staaten als „führendem und wichtigem Partner in der Außenpolitik“ und das Zentralorgan der KPV, die Propagandazeitung „Das Volk“ (Nhân Dân), schrieb am 25. August gleichlautend:
„Vietnam betrachtet die Vereinigten Staaten immer als einen der führenden wichtigen Partner und möchte weiterhin die Beziehungen zwischen Vietnam und den USA befördern, damit sich diese substanziell, effektiv in eine tiefe, langfristige Stabilität entwickeln und zum Aufbau und der Stärkung von Vertrauen beitragen, um dadurch eine Grundlage für den aktiven Austausch zwischen beiden Seiten zu schaffen und die Effizienz der Zusammenarbeit in der kommenden Zeit zu stärken und zu verbessern.“
Zugleich wurden auf niedrigerer medialer Ebene mutigere Töne angeschlagen. So veröffentlichten beispielsweise VietNamNet (eine Nachrichtenseite, die dem Ministerium für Information und Kommunikation untersteht) und Vietnam Investment Review (herausgegeben vom Ministerium für Planung und Investitionen) am 24. August ein Interview mit dem ehemaligen vietnamesischen Botschafter in Washington, Phạm Quang Vinh, in welchem laut angedachte wurde, dass überlegt werden müsse, die Partnerschaft auch semantisch aufzuwerten. Botschafter Vinh wies darauf hin, dass die Partnerschaft bereits sowohl „umfassend als auch strategisch“ sei.
In einer Pressekonferenz am 26. August mit ausgewählten Journalisten wurde zudem eine Frage der Jugendzeitung der Partei, Tuổi Trẻ, an Vize-Präsidentin Harris zugelassen, welche sich explizit nach der Perspektive einer „strategischen Partnerschaft“ erkundigte. Harris reagierte diplomatisch, den vietnamesischen Befindlichkeiten bewusst, und sprach von „Verständnis“ als Grundlage der Beziehungen und einer „strategischen Stärkung“ der bilateralen Beziehungen.
Dass man in Hanoi eine formelle Aufwertung der Partnerschaft mit den Vereinigten Staaten (noch) nicht vorantreibt, ist der Rücksichtnahme auf die Befindlichkeiten des großen Nachbarn im Norden geschuldet. Keinesfalls möchte man China unnötig verärgern, zumal die Beziehungen derzeit, auch im Südchinesischen Meer, wenig stabil erscheinen. Zugleich macht man mit der Diskussion einer „strategischen Partnerschaft“ in zweitrangigen Medien deutlich, dass diese Option für die Zukunft durchaus offengehalten wird, sollten sich die Beziehungen verschlechtern und Peking rote Linien überschreiten. Man zeigt, dass man auch in Hanoi weitere Pfeile im Köcher hat. Präsident Phúc – auch im Namen von Generalsekretär Trọng – sprach jedenfalls beim Besuch von Harris eine Einladung an US-Präsident Biden nach Vietnam aus.
Grundpfeiler der Außenpolitik Vietnams
Bereits im Vorfeld des Eintreffens von Harris hatte eine Sprecherin der vietnamesischen Regierung auf die Konstanten der vietnamesischen Außenpolitik hingewiesen und damit deutlich gemacht, dass eine semantische Aufwertung der vietnamesisch-amerikanischen Beziehungen dieses Mal nicht zu erwarten sei:
„Vietnam ist konsequent mit seiner Außenpolitik der Unabhängigkeit, Autonomie, Multilateralismus und Diversifizierung; um die Vertiefung, Effizienz und Nachhaltigkeit der Beziehungen zu Partnerländern, insbesondere zu wichtigen Partnern, zu fördern. Vietnam geht nicht mit einem Land gegen das andere."
Dass es aber auch hinsichtlich der Konstanten durchaus Spielräume gibt, belegt das Ende 2019 veröffentlichte verteidigungspolitische Weißbuch Vietnams. Dieses hatte zwar die „vier Neins“ bekräftigt: keine Militärallianzen; keine Bündnisse zulasten Dritter; keine ausländischen Militärbasen in Vietnam; und keine Gewalt oder Gewaltandrohung in den internationalen Beziehungen. Zugleich hatte das Weißbuch aber auch explizit darauf hingewiesen, dass verteidigungspolitische Beziehungen gestärkt werden sollen, um die Kapazitäten zur Verteidigung der Souveränität und zur Lösung gemeinsamer Sicherheitsherausforderungen zu stärken. Auch dieser Hinweis dürfte von den Adressaten verstanden worden sein.
Eine signifikante Abkehr von Grundpfeilern seiner Außenpolitik wäre für Vietnam jedoch riskant, zumal der Anpassungsdruck (bislang noch) zu gering ist.
Mit der Diversifizierung und Balancierung seiner Beziehung ist man bislang gut gefahren. Es ist weniger einem taoistischen Streben nach Harmonie geschuldet, als der geostrategischen Lage (und Verwundbarkeit) weswegen man eine Diversifizierung der Außenbeziehungen verfolgt und mit allen Regional- und Großmächten gute und vor allen Dingen gut austarierte Partnerschaften unterhält. Zu einer einseitigen Hinwendung zu den USA, insbesondere in einem als von US- Präsident Biden als Systemkonflikt charakterisierten geopolitischen Wettbewerb zwischen Autoritarismus und Demokratie, ist man in Hanoi nicht bereit. Eine Seitenwahl will man bislang vermeiden.
Ergebnisse des Besuchs von Harris
Auch wenn der Besuch von US-Vizepräsidentin Kamala Harris in Hanoi nicht zu einer Aufwertung der „umfassenden“ zu einer „strategischen Partnerschaft“ führt, so tragen die jüngst erzielten Vereinbarungen zu einer weiteren substantiellen Vertiefung der strategischen Beziehungen zwischen den USA und Vietnam bei.
Entsprechend den aktuellen Bedürfnissen und Prioritäten des im Zuge der Verbreitung der Delta-Variante von der Covid-19 Pandemie stark betroffenem Vietnam war der Besuch von Harris mit der amerikanischen Ankündigung verbunden, über eine Millionen Impfdosen des deutsch-amerikanischen Vakzins von BioNTech-Pfizer zusätzlich zu den bereits 5 Millionen über die internationale Impfstoffallianz COVAX bereitgestellten Moderna Impfdosen zu liefern. Öffentlichkeitswirksam konnte Harris während Ihres Aufenthalts eine Teillieferung in Empfang nehmen und an die vietnamesischen Partner übergeben. Die USA führen damit die Impfstoffdiplomatie in Vietnam an. Das ist auch in Peking nicht unbemerkt geblieben und so hat kurz vor dem Eintreffen von Harris der chinesische Botschafter bei einem Treffen mit dem vietnamesischen Regierungschef, Ministerpräsident Phạm Minh Chính die Lieferung von 2 Million chinesischen Impfdosen zugesagt.
Neben der Lieferung von Impfstoffen wurde von Harris auch eine Aufstockung der finanziellen Hilfen für die Pandemiebekämpfung in Vietnam zugesichert. Mit der Eröffnung des Südostasien Regionalbüros des U.S. Centers for Disease Control and Prevention (CDC) in Hanoi wurde zudem ein langfristiges Engagement in Vietnam und der Region untermauert. Auch die Unterzeichnung eines Pachtvertrags für 99 Jahre für eine neu zu errichtendes US-Botschaftsgebäude sowie – nach 17 Jahren zähen Verhandlungen – die Einrichtung des Peace Corps verstärkten die Symbolik eines stärkeren, nachhaltigen Engagement Amerikas in Vietnam. Zur Bekämpfung des globalen Klimawandels und seiner Auswirkungen sowie zu der Resilienz von Lieferketten wurden im Zuge des Besuchs weitere Vereinbarungen getroffen.
Größte Beachtung dürften jedoch die Aussagen zur Zusammenarbeit im Bereich der maritimen Sicherheit finden: Man bekannte sich gemeinsam zur hochrangigen Sicherheitszusammenarbeit, vereinbarte weitere Hafenbesuche amerikanischer Kriegsschiffe – inklusive Flugzeugträger – und kündigte – vorbehaltlich der Zustimmung des US-Kongress – die Lieferung eines (dritten) Patrouillenboots für die vietnamesische Küstenwache an.
Dass die bilateralen Beziehungen zwischen den Vereinigten Staaten und dem Einparteienstaat keine Wertepartnerschaft darstellen, sondern auf Realpolitik und Interessenkongruenz beruhen, wurde deutlich durch das Treffen von Harris mit zivilgesellschaftlichen Vertretern Vietnams. Anders als noch beim Besuch Barack Obamas, als es auch zu einem Zusammentreffen mit Aktivisten für Presse- und Meinungsfreiheit kam, wollte man bei allen unterschiedlichen Bewertungen der innenpolitischen Situation keine Verstimmung riskieren. So engagieren sich die ausgewählten zivilgesellschaftlichen Gesprächspartner in weniger sensiblen Bereichen wie LGBTQ oder setzen sich für die Belange von Behinderten ein.
Dass sich die die USA bei dem Thema Zivilgesellschaft in Vietnam eine gewisse Selbstbeschränkung auferlegt haben zeigt deutlich auf, dass eine Charakterisierung des geopolitischen Wettbewerbs als wertebasierter Systemkonflikt in Vietnam (und Südostasien insgesamt) nur bedingt anschlussfähig ist. Die strategischen Beziehungen zwischen Hanoi und Washington werden jenseits semantischer Fragen die geopolitische Dynamik in Südostasien in den nächsten Jahren maßgeblich mitprägen.