Грешка на Javax UriBuilder

Имам Java приложение, внедрено на Jetty сървър и използвам Jersey. След като се опитам да отворя URL адреса, получавам грешка HTTP 500 със следното съобщение. Прочетох други публикации относно тази грешка, казвайки, че проблемът е причинен от множество версии на Jersey и има два UriBuilder класа, но имам една версия на UriBuilder клас и същата версия на Jersey.

 java.lang.AbstractMethodError: javax.ws.rs.core.UriBuilder.uri(Ljava/lang/String;)Ljavax/ws/rs/core/UriBuilder;
        at javax.ws.rs.core.UriBuilder.fromUri(UriBuilder.java:119)
        at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:649)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
        at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:841)
        at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:543)
        at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:188)
        at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1593)
        at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:188)
        at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1239)
        at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:168)
        at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:481)
        at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1562)
        at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:166)
        at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1141)
        at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
        at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:118)
        at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:513)
        at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
        at org.eclipse.jetty.server.Server.handle(Server.java:564)
        at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:320)
        at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:251)
        at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:279)
        at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:110)
        at org.eclipse.jetty.io.ssl.SslConnection.onFillable(SslConnection.java:258)
        at org.eclipse.jetty.io.ssl.SslConnection$3.succeeded(SslConnection.java:147)
        at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:110)
        at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:124)
        at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:672)
        at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:590)
    at java.lang.Thread.run(Thread.java:748)

ето моите зависимости от gradle:

sourceCompatibility = 1.6
targetCompatibility = 1.6

repositories {
    maven { url("https://plugins.gradle.org/m2/") }
    mavenCentral()
}

buildscript {
    repositories {
        maven { url("https://plugins.gradle.org/m2/") }
        mavenCentral()
    }
    dependencies { classpath 'com.netflix.nebula:gradle-ospackage-plugin:1.9.2' }
}

ext.jerseyVersion='1.17.1'
ext.jettyVersion='9.4.3.v20170317'
ext.glassfishVersion='2.9.1'

dependencies {
    compile "com.google.code.gson:gson:2.8.0"

    compile "com.sun.jersey:jersey-core:${jerseyVersion}"
    compile "com.sun.jersey:jersey-grizzly2:${jerseyVersion}"
    compile "com.sun.jersey:jersey-json:${jerseyVersion}"
    compile "com.sun.jersey:jersey-server:${jerseyVersion}"
    compile "com.sun.jersey:jersey-servlet:${jerseyVersion}"

    compile "com.sun.jersey.contribs:jersey-multipart:${jerseyVersion}"
    compile "com.sun.jersey.contribs:jersey-spring:${jerseyVersion}"

    compile 'commons-io:commons-io:2.4'

    compile 'javax.inject:javax.inject:1'

    compile 'javax.ws.rs:jsr311-api:1.1.1'

    testCompile 'junit:junit:4.10'

    testCompile group: 'org.jmock', name: 'jmock-junit4', version: '2.6.0'

    testCompile group: 'org.jmock', name: 'jmock-legacy', version: '2.6.0'

    testCompile group: 'cglib', name: 'cglib-nodep', version: '2.1_3'

    testCompile group: 'org.objenesis', name: 'objenesis', version: '1.0'

    testCompile group: 'org.hamcrest', name: 'hamcrest-core', version: '1.3'

    testCompile group: 'org.hamcrest', name: 'hamcrest-library', version: '1.3'

    compile 'log4j:log4j:1.2.17'

    compile 'org.apache.commons:commons-math3:3.2'

    compile 'org.clojure:clojure:1.6.0'

    compile "org.eclipse.jetty:jetty-server:${jettyVersion}"
    compile "org.eclipse.jetty:jetty-servlet:${jettyVersion}"
    compile "org.eclipse.jetty:jetty-webapp:${jettyVersion}"

    compile 'org.freemarker:freemarker:2.3.20'

    compile "org.glassfish.jersey.core:jersey-client:${glassfishVersion}"
    compile "org.glassfish.jersey.containers:jersey-container-grizzly2-servlet:${glassfishVersion}"
    compile "org.glassfish.jersey.connectors:jersey-grizzly-connector:${glassfishVersion}"
    compile 'com.hazelcast:hazelcast:2.6'
    compile 'org.springframework:spring-context:3.2.1.RELEASE'
    compile 'org.springframework:spring-core:3.2.1.RELEASE'
    compile 'org.springframework:spring-web:3.2.1.RELEASE'

    compile 'org.yaml:snakeyaml:1.12'
    compile 'org.quartz-scheduler:quartz:2.2.1'

}

person Tiara    schedule 12.07.2018    source източник
comment
Вероятно просто несъответстваща версия на вашите ws зависимости. Можете ли да изброите вашите зависимости / буркани по време на изпълнение?   -  person Joakim Erdfelt    schedule 13.07.2018
comment
Най-вероятно версията на библиотеката Jetty, която имате във вашата среда за разработка, е различна от тази, инсталирана във вашия сървър за разполагане. Във вашата IDE методът е конкретен, но в сървъра е абстрактен.   -  person Jim Garrison    schedule 13.07.2018
comment
uri(String) методът беше добавен в JAX-RS 2.0. Изглежда, че вашата Джърси версия не е JAX-RS 2.0.   -  person Andreas    schedule 13.07.2018
comment
@JoakimErdfelt Добавих зависимостите към публикацията   -  person Tiara    schedule 13.07.2018
comment
Защо във вашия проект имате зависимости и от Jersey 1.x, и от Jersey 1.x? Изберете едното и премахнете другото. Премахнете всичко org.glassfish.jersey   -  person Paul Samsotha    schedule 13.07.2018
comment
Имам предвид Джърси 1.x и Джърси 2.x   -  person Paul Samsotha    schedule 13.07.2018
comment
@PaulSamsotha, защото те не съществуват във версия 1.17.1   -  person Tiara    schedule 13.07.2018
comment
Съжалявам, но не разбирам какво имаш предвид. В публикацията си казахте, че нямате две различни версии на Jersey, но имате. com.sun.jersey е Джърси 1.x и og.glassfish.jersey е Джърси 2.x Те не играят добре заедно. Използвайте едното или другото. Премахнете всичко, което не използвате.   -  person Paul Samsotha    schedule 13.07.2018