Forum Stats

  • 3,840,307 Users
  • 2,262,585 Discussions
  • 7,901,207 Comments

Discussions

Class Not Found: com.bea.wlevs.adapters.jms.api.OutboundMessageConverter in Outbound JMS Converter

Lucas Jellema
Lucas Jellema Member Posts: 327
edited Sep 15, 2014 5:21PM in Complex Event Processing

OEP 12.1.3

Following the instructions in 4 Adapters (12c Release 1 (12.1.3)) I have created a custom message converter bean for my Outbound JMS Adapter (I had to add the JAR file com.bea.wlevs.adapters.jms_12.1.3.0_0.jar from OEP_HOME\oep\modules to my project to make the code compile). However, upon deployment, I ran into a class not found exception:

<Sep 15, 2014 7:17:19 PM CEST> <Error> <org.springframework.osgi.extender.internal.activator.ContextLoaderListener> <BEA-000000> <Application context refresh failed (OsgiBundleXmlApplicationContext(bundle=CreditCardTheftDetection.AirportCreditCardTransactionProcessing, config=osgibundle:/META-INF/spring/*.xml))

java.lang.NoClassDefFoundError: saibot.airport.security.prevention.jms.SuspectedCreditCardEventConverter not found from bundle [CreditCardTheftDetection.AirportCreditCardTransactionProcessing (CreditCardTheftDetection.AirportCreditCardTransactionProcessing)]

    at org.springframework.osgi.util.BundleDelegatingClassLoader.findClass(BundleDelegatingClassLoader.java:112)

    at org.springframework.osgi.util.BundleDelegatingClassLoader.loadClass(BundleDelegatingClassLoader.java:156)

    at java.lang.ClassLoader.loadClass(ClassLoader.java:358)

    at java.lang.Class.forName0(Native Method)

    at java.lang.Class.forName(Class.java:270)

Caused By: java.lang.NoClassDefFoundError: com/bea/wlevs/adapters/jms/api/OutboundMessageConverter

    at java.lang.ClassLoader.defineClass1(Native Method)

    at java.lang.ClassLoader.defineClass(ClassLoader.java:800)

    at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.defineClass(DefaultClassLoader.java:188)

Caused By: java.lang.ClassNotFoundException: com.bea.wlevs.adapters.jms.api.OutboundMessageConverter

    at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:506)

    at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:422)

    at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:410)

    at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)

I have tried adding the JAR file (com.bea.wlevs.adapters.jms_12.1.3.0_0.jar) to my deployment JAR. That did not make any difference.


Does anyone know why this class OutboundMessageConverter is not found - and more importantly: what I can do to make it available in the run time?


thanks.


Lucas

Best Answer

  • User757087-Oracle
    User757087-Oracle Member Posts: 30
    Answer ✓

    To make a package available to your application at runtime for OEP, you will need to add it to the application's MANIFEST.MF file to the Import Package section (since the OEP server is OSGi-based). There's no need to supply a version number, you can just enter the package name (e.g.)

    com.bea.wlevs.adapters.jms.api,

Answers

  • User757087-Oracle
    User757087-Oracle Member Posts: 30
    Answer ✓

    To make a package available to your application at runtime for OEP, you will need to add it to the application's MANIFEST.MF file to the Import Package section (since the OEP server is OSGi-based). There's no need to supply a version number, you can just enter the package name (e.g.)

    com.bea.wlevs.adapters.jms.api,

  • Thanks for the quick and accurate reply.

    I have added two bundles to the manifest.mf file:

    com.bea.wlevs.adapters.jms.api;version="12.1.3",

    javax.jms,

    and now the application indeed deploys successfully. Very valuable to me - thanks again.

    Lucas

This discussion has been closed.