Генератор не был предоставлен, и не зарегистрирован генератор по умолчанию. Джерси OSGi - PullRequest
0 голосов
/ 22 января 2020

Я использую джерси-клиент с Felix OSGi. Проблема возникает, когда я пытаюсь зарегистрировать конечную точку.

jerseyClient.target(uri)

Изучая источник Javax, javax.ws.rs.ext.RuntimeDelegate пытается найти его реализацию, просматривая .. \ Файл Java \ jdk \ jre \ lib \ jaxrs.properties (которого у меня нет и я не хочу), и если он его не найдет, он попытается использовать резервный класс org.glassfi sh .jersey.internal .RuntimeDelegateImpl.

enter image description here

Как видно, загружается jersey-common и класс извлекается, но при попытке spiClass.newInstance () проклятая ошибка thrown: (

Я даже пытался вручную запустить пакеты hk2 (api, locator, utils, jersey-guava и apache .servicemix.bundles.javax-inject), используя BundleContext из OSGi, поэтому я уверен что все необходимые пакеты загружаются до того, как я зарегистрирую конечную точку.

В этот момент я потерян ...

java .lang.RuntimeException: java. lang.ClassNotFoundException: поставщик org.glassfi sh .jersey.internal.RuntimeDelegateImpl не может быть создан: java .lang.IllegalStateException: генератор не предоставлен, и по умолчанию на javax.ws.rs.ext не зарегистрирован генератор. RuntimeDelegate.findDelegate (RuntimeDelegate. java: 152) в javax.ws.rs.ext.RuntimeDelegate.getInstance (RuntimeDelegate. java: 120) в javax.ws.rs.core.UriBuilder.newInstance (UriBil. *: 95) на javax.ws.rs.core.UriBu ilder.fromUri (UriBuilder. java: 119) в org.glassfi sh .jersey.client.JerseyWebTarget. (JerseyWebTarget. java: 71) в org.glassfi sh .jersey.client.JerseyClient.target (JerseyClient. java: 185) в org.glassfi sh .jersey.client.JerseyClient.target (JerseyClient. java: 70)

Зависимости пом:

        <dependency>
            <groupId>org.glassfish.hk2</groupId>
            <artifactId>hk2-api</artifactId>
            <version>2.3.0-b10</version>
        </dependency>
        <dependency>
            <groupId>org.glassfish.hk2</groupId>
            <artifactId>hk2-locator</artifactId>
            <version>2.3.0-b10</version>
        </dependency>
        <dependency>
            <groupId>org.glassfish.hk2</groupId>
            <artifactId>hk2-utils</artifactId>
            <version>2.3.0-b10</version>
        </dependency>
        <dependency>
            <groupId>org.glassfish.hk2</groupId>
            <artifactId>osgi-resource-locator</artifactId>
            <version>1.0.1</version>
        </dependency>
        <dependency>
            <groupId>org.glassfish.hk2.external</groupId>
            <artifactId>aopalliance-repackaged</artifactId>
            <version>2.3.0-b10</version>
        </dependency>
        <dependency>
            <groupId>org.glassfish.hk2.external</groupId>
            <artifactId>javax.inject</artifactId>
            <version>2.3.0-b10</version>
        </dependency>
        <dependency>
            <groupId>org.glassfish.hk2.external</groupId>
            <artifactId>javax.inject</artifactId>
        </dependency>
...