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,則應該沒有問題。