Restcomm jain-slee jackson NoClassDefFoundError: com / fastxml / jackson / databind / ObjectMapper - PullRequest
0 голосов
/ 08 мая 2020

Я пишу приложение IDR-отправителя java с использованием restcomm jain-slee

Я использую json декодирование, как показано ниже, для декодирования входящего HTTP-запроса json data.

String postBody = getContentFromStream(event.getRequest().getInputStream());
ObjectMapper objectMapper = new ObjectMapper();

Я использую для этой цели более быстрый xml jackson.

import com.fasterxml.jackson.databind.ObjectMapper;

И я развертываю это в контейнере WildFly Docker. При попытке расшифровать Джейсона я получаю эту ошибку. java .lang.NoClassDefFoundError: com / fastxml / jackson / databind / ObjectMapper

10:08:49,405 ERROR [org.mobicents.slee.runtime.eventrouter.routingtask.EventRoutingTaskImpl] (SLEE-EventRouterExecutor-6-thread-1) Caught throwable while routing EventContext[event type id = EventTypeID[name=net.java.slee.resource.http.events.incoming.request.POST,vendor=net.java.slee,version=1.0] , event = org.restcomm.slee.resource.http.events.HttpServletRequestEventImpl[id=13ec6b6e:171f3c2265a:-7ffc] , local ac = RA:HttpServletRA:ea25a320-102d-491c-a829-48c8c2554a3e , address = null , serviceID = null]: java.lang.NoClassDefFoundError: com/fasterxml/jackson/databind/ObjectMapper
    at lk.dialog.pd.idrsend.IdrSendSbb.onHttpPostRequest(IdrSendSbb.java:362)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.mobicents.slee.runtime.sbbentity.SbbEntityImpl.invokeEventHandler(SbbEntityImpl.java:480)
    at org.mobicents.slee.runtime.eventrouter.routingtask.EventRoutingTaskImpl.routeQueuedEvent(EventRoutingTaskImpl.java:378)
    at org.mobicents.slee.runtime.eventrouter.routingtask.EventRoutingTaskImpl.run(EventRoutingTaskImpl.java:125)
    at org.mobicents.slee.runtime.eventrouter.EventRouterExecutorImpl$EventRoutingTaskStatsCollector.run(EventRouterExecutorImpl.java:72)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)
 Caused by: java.lang.ClassNotFoundException: com.fasterxml.jackson.databind.ObjectMapper
    at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
    at org.mobicents.slee.container.component.deployment.classloading.URLClassLoaderDomainImpl.findClassLocallyLocked(URLClassLoaderDomainImpl.java:272)
    at org.mobicents.slee.container.component.deployment.classloading.URLClassLoaderDomainImpl.findClass(URLClassLoaderDomainImpl.java:242)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at org.mobicents.slee.container.component.deployment.classloading.URLClassLoaderDomainImpl.loadClass(URLClassLoaderDomainImpl.java:206)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 12 more

Я также добавил в структуру jboss-deployment-structure

<?xml version="1.0" encoding="UTF-8"?>  
<jboss-deployment-structure>  
<deployment>  
     <dependencies>  
          <module name="com.fasterxml.jackson.databind" export="true" />  
    </dependencies>  
</deployment>  

А еще jar доступен по адресу

/opt/modules/system/layers/base/com/fasterxml/jackson/core/jackson-databind/main

У меня до сих пор нет возможного решения. Нужна помощь.

PS: Я также добавил зависимость

    <dependency>
        <groupId>org.jboss.resteasy</groupId>
        <artifactId>resteasy-jackson2-provider</artifactId>
        <version>3.0.8.Final</version>
        <scope>provided</scope>
    </dependency>

1 Ответ

1 голос
/ 22 июля 2020

Добавьте следующие строки в конец WILDFLY_DIR/modules/system/layers/base/org/restcomm/slee/container/lib/main/module.xml

<module export="true" xmlns="urn:jboss:module:1.3" name="com.fasterxml.jackson.core.jackson-core"/>
<module export="true" xmlns="urn:jboss:module:1.3" name="com.fasterxml.jackson.core.jackson-annotations"/>
<module export="true" xmlns="urn:jboss:module:1.3" name="com.fasterxml.jackson.core.jackson-databind"/>

Получил ссылку из здесь , в котором решена другая проблема.

...