java.lang.NoSuchMethodError

 常見問題 > 錯誤 > 例外 > java.lang.NoSuchMethodError

如果您遇到類似以下的錯誤

java.lang.NoSuchMethodError:
javax.jms.Session.createConsumer(Ljavax/jms/Destination;)Ljavax/jms/MessageConsumer;

java.lang.AbstractMethodError: 
javax.jms.ConnectionFactory.createConnection()Ljavax/jms/Connection;

修正方法

您的類別路徑中可能存在舊版的 JMS 1.0.2b JMS API。這是因為 JMS 1.1 中新增了各種方法,以便以多型方式處理目的地(例如從目的地建立消費者,如上面的堆疊追蹤所示)。

請將 JMS 1.1 jar 檔案新增至您的容器/類別路徑,然後重試。

新增至正確的類別路徑

如果 JMS 1.0.2b 類別來自您的應用程式伺服器,您可能需要將 JMS 1.1 新增至啟動類別路徑,以確保 JMS 1.1 類別優先於容器提供的類別。

請注意,對於 JMS API 的使用者而言,JMS 1.1 完全向後相容。升級到 JMS 1.1 的唯一問題是,任何僅實作 JMS 1.0.2b 而未實作 JMS 1.1 的 JMS 提供者將無法運作;但是,如果您使用的是 ActiveMQ Classic,則應該沒有問題。

Apache、ActiveMQ、Apache ActiveMQ、Apache 羽毛標誌和 Apache ActiveMQ 專案標誌是 The Apache Software Foundation 的商標。版權所有 © 2024,The Apache Software Foundation。根據Apache License 2.0授權。