Ho un'API REST DropWizard scritta e funziona. Uno dei punti finali di risorse scrive in realtà una e-mail, ma non appena aggiungo le seguenti dipendenze DropWizard inizia a fallire all'avvioCome evitare il conflitto di dipendenze quando si utilizza il client dropwizard + jersey
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-client</artifactId>
<version>1.18.1</version>
</dependency>
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-core</artifactId>
<version>1.18.1</version>
</dependency>
<dependency>
<groupId>com.sun.jersey.contribs</groupId>
<artifactId>jersey-multipart</artifactId>
<version>1.18.1</version>
</dependency>
La dipendenza DropWizard è:
<dependency>
<groupId>io.dropwizard</groupId>
<artifactId>dropwizard-core</artifactId>
<version>0.8.1</version>
</dependency>
L'errore all'avvio è molto lungo, di seguito riassunte
WARN [2015-05-01 20:06:08,887] org.glassfish.jersey.internal.Errors: The following warnings have been detected: WARNING: Unknown HK2 failure detected:
MultiException stack 1 of 2
java.lang.NullPointerException
at com.sun.jersey.core.provider.jaxb.AbstractJAXBProvider.setConfiguration(AbstractJAXBProvider.java:113)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
....
MultiException stack 2 of 2
java.lang.IllegalStateException: Unable to perform operation: method inject on com.sun.jersey.core.impl.provider.entity.XMLRootElementProvider$App
at org.jvnet.hk2.internal.ClazzCreator.create(ClazzCreator.java:395)
....
MultiException stack 3 of 3
java.lang.IllegalStateException: Unable to perform operation: create on org.glassfish.jersey.message.internal.MessageBodyFactory
...
sto indovinando DropWizard sta utilizzando un'altra dipendenza in conflitto così come faccio a fare con questo?
Grazie in anticipo
ok penso di aver appena realizzato qualcosa di doloroso ... il codice per la posta elettronica è stato scritto per (vecchio?) Cliente della maglia, mentre la nuova maglia è nella dipendenza dal glassfish - che sembra completamente diversa. Altrimenti quello che ho sopra va solo fino alla versione 1.19 –
Ho avuto lo stesso problema, se il tuo progetto di genitore maven è dropwizard, puoi omettere la versione jersey nella tua dipendenza e tutto va bene. Il mio genitore non è dropwizard, quindi mvn dependency: l'albero rivelerà la versione della jersey necessaria (per DW 0.9.3 it.s 2.22.1) – Joel