簡體   English   中英

如何在同一個 WebSphere Liberty 上遠程調試兩個應用程序

[英]How to remote debug two applications on the same WebSphere Liberty

我有兩個應用程序 Java 8 個應用程序公開了不同的服務類型,但它們在某些任務中相互依賴。 它們在遠程服務器上的同一個 WebSphere Application Server 中實現。
但是,由於我沒有它的許可證,如果我需要調試某些東西,我使用的是 WebSphere Liberty。 到目前為止,我只配置了應用程序 A,我正在嘗試配置應用程序 B。我的目標也是設置遠程調試選項。

到目前為止,我在我的 jvm.options 中做了這個

-Denv.target=local
-DSRV_CFG=C:\\myproperties\\application.properties
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=7777
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005

IntelliJ IDEA Ultimate 為我發布了兩個 agentlib 選項,它為我提出了以下遠程執行 JVM

在此處輸入圖像描述

需求

我需要在同一個 WebSphere Liberty 下有兩個應用程序,因為它們共享同一個 session。

問題

雖然我知道它是 2022 年,但我沒有那么多預算(也沒有時間......)來重新制作登錄過程以便不依賴 JSESSIONID 因為許多前端依賴應用程序 A,所以我決定開發應用程序B 作為將要部署在同一個 WAS 下的 new.ear。
在嘗試模擬遠程調試連接場景時,我同時啟動並運行了兩個應用程序,但由於出現以下錯誤,我無法啟動 WebSphere Liberty

ERROR: Cannot load this JVM TI agent twice, check your java command line for duplicate jdwp options.
Error occurred during initialization of VM
agent library failed to init: jdwp

如果我只是嘗試刪除一個 jdwp,並嘗試從 IntelliJ 啟動遠程調試 session,它會出現以下錯誤

在此處輸入圖像描述

我試圖做什么

我試圖在 inte.net 上尋找一些解決方案,特別是試圖了解是否可以使用同一個 jdwp 來偵聽兩個不同的端口,以及 WAS Liberty 是否以某種方式支持對部署在同一服務器下的兩個應用程序進行遠程調試。 我碰巧找到了IBM自己的這個頁面,上面寫着這個設置是不可能的。
但由於此頁面已有 4 年歷史,我想知道,經過這么長時間,是否有機會以某種方式做到這一點,如果有,如何做到。

我不確定我是否知道您問題的答案,但也許我可以幫助消除一些困惑。 您引用的文章https://www.ibm.com/support/pages/debugging-two-applications-same-time-fails-error-connection-refused似乎讓您感到困惑。

從更通用的工具角度來看,當將 Java 調試器從 Eclipse 或 IntellJ 連接到 WebSphere 服務器(WebSphere Liberty 或傳統的 WebSphere Application Server)時,您只需通過單個端口配置到整個服務器 JVM 的連接。 在此服務器中,您可以在一個應用程序、兩個應用程序或任意數量的應用程序中設置斷點和調試。 您甚至可以在同一個調試器連接中通過服務器運行時代碼進行調試(如果您使用完全開源的 Open Liberty,這將更容易設置,但重點是調試器將允許您使用任何相關應用程序或在該服務器 JVM 中運行的運行時源)。

因此,您會期望 jvm.options 只有一個 JVM 選項用於配置遠程調試器,例如看起來更像:

-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=7777

無論您正在調試的應用程序數量如何。

然而,混淆的根源可能是 RAD 及其特定於 WebSphere 的開發工具(不僅僅是通用的 Java 調試器工具)為調試在 IDE 中開發的應用程序提供了更多以應用程序為中心的觀點工作區,部署到由 IDE 管理的 WebSphere 服務器。從這個以 IDE 為中心的視圖來看,您可能無法同時調試兩個應用程序。

順便說一句,我不是 RAD 工具方面的專家,所以我並不是要保證那篇文章中的特定信息,但無論如何,我希望這會有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM