Ошибка NoSuchMethodError при использовании JMS в Websphere 8.5 - PullRequest
0 голосов
/ 28 февраля 2020

У меня есть приложение Java, которое развернуто на Websphere 8.5. Он получает сообщение, которое я пытаюсь использовать, но это ошибка, которую я получаю, хотя у меня есть правильные JMS-файлы в строке getBody ()
Фрагмент кода:

if (arg0 instanceof BytesMessage)
{
    byte[] payload = arg0.getBody(byte[].class);
    myMessage = new String(payload);
}    

Jar-файлы:

<dependency>
   <groupId>javax.jms</groupId>
   <artifactId>javax.jms-api</artifactId>
   <version>2.0.1</version>
   <scope>compile</scope>
</dependency>
<dependency>
   <groupId>javax</groupId>
   <artifactId>javaee-api</artifactId>
   <version>6.0</version>
   <scope>provided</scope>
</dependency>

Ошибка из журналов Websphere:

  Caused by: java.lang.NoSuchMethodError: javax/jms/Message.getBody(Ljava/lang/Class;)Ljava/lang/Object; (loaded from file:/opt/was_static/websphere_8.5.5.15.1/appserver/plugins/javax.j2ee.jms.jar by org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader@6d5d04f3) called from class com.mycompany.myapplication.sync.mdb.myapplicationSyncOutboundMDB (loaded from file:/opt/was_static/profiles/appsrv01/installedApps/eaodr01Cell01/myapplication-ear-mydomain.com-editionmyapplication-ear-0.9.6.ear/myapplication-ejb-0.9.6.jar by 
com.ibm.ws.classloader.CompoundClassLoader@19abf904[app:myapplication-ear-mydomain.com-editionmyapplication-ear-0.9.6]
   Local ClassPath: 
   Parent: com.ibm.ws.classloader.ExtJarClassLoader@890f8480[PF][server:0]
   Delegation Mode: PARENT_FIRST)  

Websphere CLassloading :
strong text

Любые идеи, почему мое приложение, которое прекрасно компилируется в коде javax.jms.Message в коде, но Вебсфера не может найти это?

1 Ответ

1 голос
/ 29 февраля 2020

WebSphere Application Server 8.5.5 поддерживает Java EE 6, который включает в себя JMS 1.1, а не JMS 2.0, и в JMS 2.0 был добавлен метод getBody (Class), который является Java EE 7 и новее.

Если вы хотите использовать JMS 2.0, вам необходимо выполнить обновление до WebSphere Application Server 9.0.

...