Ich arbeite mit beiden Jersey-Kern: 1,8 und jrs311: 0,8. Beide Abhängigkeiten werden benötigt. Beim Ausführen des Komponententests IntellJ bekomme ich manchmal die Ausnahme unten. Durch die Anordnung der Abhängigkeiten wurde die Ausnahme gestoppt, aber beim Start in Tomcat 7.0.2 wird immer die Ausnahme angezeigt. Das Umordnen der Bibliotheken behebt das Problem nicht.Wie man in Konflikt stehende Path.class zwischen jsr311-api und Jersey-Core auflösen?
Graben weiter hinein, ich fand die Klasse "javax.ws.rs.Path" ist in beiden Abhängigkeiten. Es wurde aufgenommen, aber nicht als Abhängigkeit. Die in jrs311 enthaltene enthält eine zusätzliche Methode namens limited(). Die Klasse URITemplate scheint immer die Path.class im Jersey-Kern Lib daher die Ausnahme zu finden.
Ich habe versucht, zu verschiedenen Versionen der Bibliotheken, aber nicht erfolgreich. Aufgrund des Codes, mit dem ich arbeite, werden beide Bibliotheken benötigt.
Hat jemand irgendwelche Ideen, wie man dieses Problem löst?
Caused by: org.springframework.beans.factory.BeanDefinitionStoreException: Factory method [public org.apache.cxf.jaxrs.JAXRSServerFactoryBean com.emailvision.nsapi.conf.NsApiSpringConf.restServerFactory(com.emailvision.nsapi.service.impl.NotificationServiceREST)] threw exception; nested exception is java.lang.NoSuchMethodError: javax.ws.rs.Path.limited()Z
* at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:181)
* at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:592)
* ... 27 more
* Caused by: java.lang.NoSuchMethodError: javax.ws.rs.Path.limited()Z
* at org.apache.cxf.jaxrs.model.URITemplate.createTemplate(URITemplate.java:167)
* at org.apache.cxf.jaxrs.JAXRSServiceFactoryBean.createClassResourceInfo(JAXRSServiceFactoryBean.java:198)
* at org.apache.cxf.jaxrs.JAXRSServiceFactoryBean.setResourceClassesFromBeans(JAXRSServiceFactoryBean.java:139)
* at org.apache.cxf.jaxrs.JAXRSServerFactoryBean.setServiceBeans(JAXRSServerFactoryBean.java:272)
Wenn dies das einzige Problem ist, können Sie die Klasse von jsr311 jar in das Jersey-Kernglas kopieren und sehen, dass es funktioniert. – Oleg
Dies funktioniert nicht, da diese Abhängigkeiten von Maven verwaltet werden. Sicherlich entfernt man die von Path.class funktioniert aber immer wenn ich eine Neuerstellung mache wird die Abhängigkeit überschrieben. Es muss eine Art Kontrolle haben, um zu verhindern, dass ein anderes Mitglied meines Teams es ersetzt. –
Sie können Ihre eigene Version erstellen und sie dann in Ihrem Team-Repository bereitstellen, wenn Sie eines haben, oder es zu git oder dem von Ihnen verwendeten VCS hinzufügen. Beginnen Sie mit dem Kauf und prüfen Sie, ob Ihr Problem dadurch tatsächlich gelöst wird. – Oleg