Azure / azure-libraries-for-java

Azure Management Libraries for Java
https://docs.microsoft.com/en-us/java/azure/
MIT License
94 stars 98 forks source link

Issues with Jackson dependencies #98

Open mhamilton723 opened 6 years ago

mhamilton723 commented 6 years ago

Hey, I am having some trouble using this library in a project that also depends on spark. The issue is that this library requires a jackson parser that is > 2.7.0 which conflicts with spark. Would it be possible to shade this dependency as it is a common one that causes issues across libraries? Thanks so much for your help!

Specifically this is the stacktrace i get:

java.lang.NoSuchMethodError: com.fasterxml.jackson.databind.type.TypeBindings.create(Ljava/lang/Class;[Lcom/fasterxml/jackson/databind/JavaType;)Lcom/fasterxml/jackson/databind/type/TypeBindings;
    at com.microsoft.rest.serializer.JacksonAdapter.constructJavaType(JacksonAdapter.java:119)
    at com.microsoft.rest.serializer.JacksonAdapter.deserialize(JacksonAdapter.java:131)
    at com.microsoft.rest.ServiceResponseBuilder.buildBody(ServiceResponseBuilder.java:216)
    at com.microsoft.rest.ServiceResponseBuilder.build(ServiceResponseBuilder.java:110)
    at com.microsoft.azure.AzureResponseBuilder.build(AzureResponseBuilder.java:56)
    at com.microsoft.azure.management.resources.implementation.SubscriptionsInner.listDelegate(SubscriptionsInner.java:336)
    at com.microsoft.azure.management.resources.implementation.SubscriptionsInner.access$200(SubscriptionsInner.java:38)
    at com.microsoft.azure.management.resources.implementation.SubscriptionsInner$11.call(SubscriptionsInner.java:323)
    at com.microsoft.azure.management.resources.implementation.SubscriptionsInner$11.call(SubscriptionsInner.java:319)
    at rx.internal.operators.OnSubscribeMap$MapSubscriber.onNext(OnSubscribeMap.java:69)
    at retrofit2.adapter.rxjava.RxJavaCallAdapterFactory$RequestArbiter.request(RxJavaCallAdapterFactory.java:173)
    at rx.Subscriber.setProducer(Subscriber.java:211)
    at rx.internal.operators.OnSubscribeMap$MapSubscriber.setProducer(OnSubscribeMap.java:102)
    at retrofit2.adapter.rxjava.RxJavaCallAdapterFactory$CallOnSubscribe.call(RxJavaCallAdapterFactory.java:152)
    at retrofit2.adapter.rxjava.RxJavaCallAdapterFactory$CallOnSubscribe.call(RxJavaCallAdapterFactory.java:138)
    at rx.Observable.unsafeSubscribe(Observable.java:10142)
    at rx.internal.operators.OnSubscribeMap.call(OnSubscribeMap.java:48)
    at rx.internal.operators.OnSubscribeMap.call(OnSubscribeMap.java:33)
    at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:48)
    at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:30)
    at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:48)
    at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:30)
    at rx.Observable.subscribe(Observable.java:10238)
    at rx.Observable.subscribe(Observable.java:10205)
    at rx.observables.BlockingObservable.blockForSingle(BlockingObservable.java:444)
    at rx.observables.BlockingObservable.single(BlockingObservable.java:341)
    at com.microsoft.azure.management.resources.implementation.SubscriptionsInner.list(SubscriptionsInner.java:244)
    at com.microsoft.azure.management.resources.implementation.SubscriptionsImpl.list(SubscriptionsImpl.java:38)
    at com.microsoft.ml.spark.AzureLoadBalancer.<init>(AzureLoadBalancer.scala:24)
    at com.microsoft.ml.spark.AzureLoadBalancer$.deployFromParameters(AzureLoadBalancer.scala:173)
paulojohnj commented 6 years ago

Any solution or ideas here? I am getting the same error, but from a slightly different path.