我有一个部署在Websphere 8.5上的Java应用程序。它收到一条消息,我正在尝试使用它,但这是我得到的错误,即使我在getBody()行上有正确的JMS罐子也是如此代码段:
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)
关于为什么我的应用程序可以在代码中看到javax.jms.Message
的情况下进行编译,但是Websphere无法找到它?
我有一个部署在Websphere 8.5上的Java应用程序。它收到一条消息,我正在尝试使用它,但这是我收到的错误,即使我在getBody()代码行上有正确的JMS罐子...
WebSphere Application Server 8.5.5支持Java EE 6,它包括JMS 1.1,而不是JMS 2.0,并且在Java EE 7和更高版本的JMS 2.0中添加了getBody(Class)方法。