Arhn - архитектура программирования

Классы провайдеров не найдены: при запуске службы REST в Джерси

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

введите здесь описание изображения

WEB.XML

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app
Sep 23, 2014 12:22:56 PM org.apache.catalina.core.AprLifecycleListener init
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Program Files\Java\jre7\bin;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\Program Files (x86)\Intel\iCLS Client\;C:\Program Files\Intel\iCLS Client\;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files (x86)\Intel\OpenCL SDK\2.0\bin\x86;C:\Program Files (x86)\Intel\OpenCL SDK\2.0\bin\x64;C:\Program Files\Microsoft\Web Platform Installer\;D:\ndk;C:\ant\;C:\Program Files\Java\jdk1.7.0_07\bin;D:\Softwares\Ecclipse\Ecclipse\sdk\build-tools\18.1.0;C:\Program Files (x86)\Windows Kits\8.0\Windows Performance Toolkit\;C:\Program Files (x86)\Windows Kits\8.1\Windows Performance Toolkit\;C:\Program Files (x86)\MySQL\MySQL Server 5.6\bin;C:\Program Files (x86)\GtkSharp\2.12\bin;C:\Takipi\lib;C:\Takipi\lib32;C:\Program Files (x86)\Microsoft SDKs\TypeScript\1.0\;C:\Program Files (x86)\nodejs\;JAVA_HOME%\bin;C:\apache-ant-1.9.4\bin;C:\adt-bundle\sdk\platform-tools;C:\adt-bundle\sdk\tools;;C:\Program Files (x86)\Java\jdk1.6.0_39\bin;C:\Users\sajeetharan.DUOSL.000\AppData\Local\Android\android-sdk\tools;C:\Users\sajeetharan.DUOSL.000\AppData\Local\Android\android-sdk\platform-tools;C:\Program Files\Microsoft SQL Server\110\Tools\Binn\;;C:\Program Files (x86)\Intel\iCLS Client\;C:\Program Files\Intel\iCLS Client\;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files (x86)\Intel\OpenCL SDK\2.0\bin\x86;C:\Program Files (x86)\Intel\OpenCL SDK\2.0\bin\x64;C:\Program Files\Microsoft\Web Platform Installer\;D:\ndk;C:\ant\;C:\Program Files\Java\jdk1.7.0_07\bin;D:\Softwares\Ecclipse\Ecclipse\sdk\build-tools\18.1.0;C:\Program Files (x86)\Windows Kits\8.0\Windows Performance Toolkit\;C:\Program Files (x86)\Windows Kits\8.1\Windows Performance Toolkit\;C:\Program Files (x86)\MySQL\MySQL Server 5.6\bin;C:\Program Files (x86)\GtkSharp\2.12\bin;C:\Takipi\lib;C:\Takipi\lib32;C:\Program Files (x86)\Microsoft SDKs\TypeScript\1.0\;C:\Program Files (x86)\nodejs\;JAVA_HOME%\bin;C:\apache-ant-1.9.4\bin;C:\adt-bundle\sdk\platform-tools;C:\adt-bundle\sdk\tools;;C:\Program Files (x86)\Java\jdk1.6.0_39\bin;C:\Users\sajeetharan.DUOSL.000\AppData\Local\Android\android-sdk\tools;C:\Users\sajeetharan.DUOSL.000\AppData\Local\Android\android-sdk\platform-tools;C:\Program Files\Microsoft SQL Server\110\Tools\Binn\\tools;C:\apache-ant-1.9.4\bin;C:\adt-bundle\sdk\tools;C:\adt-bundle\sdk\platform-tools;c:\users\sajeetharan.DUOSL.000\AppData\Roaming\npm\;.
Sep 23, 2014 12:22:57 PM org.apache.tomcat.util.digester.SetPropertiesRule begin
WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:com.duo.test' did not find a matching property.
Sep 23, 2014 12:22:57 PM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["http-nio-8080"]
Sep 23, 2014 12:22:57 PM org.apache.tomcat.util.net.NioSelectorPool getSharedSelector
INFO: Using a shared selector for servlet write/read
Sep 23, 2014 12:22:57 PM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["ajp-nio-8009"]
Sep 23, 2014 12:22:57 PM org.apache.tomcat.util.net.NioSelectorPool getSharedSelector
INFO: Using a shared selector for servlet write/read
Sep 23, 2014 12:22:57 PM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 2349 ms
Sep 23, 2014 12:22:58 PM org.apache.catalina.core.StandardService startInternal
INFO: Starting service Catalina
Sep 23, 2014 12:22:58 PM org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: Apache Tomcat/8.0.12
Sep 23, 2014 12:23:01 PM com.sun.jersey.api.core.PackagesResourceConfig init
INFO: Scanning for root resource and provider classes in the packages:
  com.duo.test
Sep 23, 2014 12:23:01 PM com.sun.jersey.api.core.ScanningResourceConfig logClasses
INFO: Root resource classes found:
  class com.duo.test.status.V1_status
Sep 23, 2014 12:23:01 PM com.sun.jersey.api.core.ScanningResourceConfig init
INFO: No provider classes found.
Sep 23, 2014 12:23:01 PM com.sun.jersey.server.impl.application.WebApplicationImpl _initiate
INFO: Initiating Jersey application, version 'Jersey: 1.17 01/17/2013 03:31 PM'
[2014-09-23 12:23:03 TAKIPI] User code detected.
Sep 23, 2014 12:23:04 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-nio-8080"]
Sep 23, 2014 12:23:04 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["ajp-nio-8009"]
Sep 23, 2014 12:23:04 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in 6653 ms
1.xsd" id="WebApp_ID" version="3.1"> <display-name>com.duo.test</display-name> <servlet> <servlet-name>Jersey Rest Service</servlet-name> <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class> <init-param> <param-name>com.sun.jersey.config.property.packages</param-name> <param-value>com.duo.test</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>Jersey Rest Service</servlet-name> <url-pattern>/api/*</url-pattern> </servlet-mapping> </web-app>

МОЙ курс:

package com.duo.test.status;
import javax.ws.rs.*;
import javax.ws.rs.core.MediaType;

@Path("/v1/status/*")
public class V1_status {
    @GET
    @Produces(MediaType.TEXT_HTML)
    public String returnTitle()
    {
    return "<p> Java Web Serbice</p>";  
    }

}

Журналы:

Sep 23, 2014 12:22:56 PM org.apache.catalina.core.AprLifecycleListener init
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Program Files\Java\jre7\bin;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\Program Files (x86)\Intel\iCLS Client\;C:\Program Files\Intel\iCLS Client\;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files (x86)\Intel\OpenCL SDK\2.0\bin\x86;C:\Program Files (x86)\Intel\OpenCL SDK\2.0\bin\x64;C:\Program Files\Microsoft\Web Platform Installer\;D:\ndk;C:\ant\;C:\Program Files\Java\jdk1.7.0_07\bin;D:\Softwares\Ecclipse\Ecclipse\sdk\build-tools\18.1.0;C:\Program Files (x86)\Windows Kits\8.0\Windows Performance Toolkit\;C:\Program Files (x86)\Windows Kits\8.1\Windows Performance Toolkit\;C:\Program Files (x86)\MySQL\MySQL Server 5.6\bin;C:\Program Files (x86)\GtkSharp\2.12\bin;C:\Takipi\lib;C:\Takipi\lib32;C:\Program Files (x86)\Microsoft SDKs\TypeScript\1.0\;C:\Program Files (x86)\nodejs\;JAVA_HOME%\bin;C:\apache-ant-1.9.4\bin;C:\adt-bundle\sdk\platform-tools;C:\adt-bundle\sdk\tools;;C:\Program Files (x86)\Java\jdk1.6.0_39\bin;C:\Users\sajeetharan.DUOSL.000\AppData\Local\Android\android-sdk\tools;C:\Users\sajeetharan.DUOSL.000\AppData\Local\Android\android-sdk\platform-tools;C:\Program Files\Microsoft SQL Server\110\Tools\Binn\;;C:\Program Files (x86)\Intel\iCLS Client\;C:\Program Files\Intel\iCLS Client\;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files (x86)\Intel\OpenCL SDK\2.0\bin\x86;C:\Program Files (x86)\Intel\OpenCL SDK\2.0\bin\x64;C:\Program Files\Microsoft\Web Platform Installer\;D:\ndk;C:\ant\;C:\Program Files\Java\jdk1.7.0_07\bin;D:\Softwares\Ecclipse\Ecclipse\sdk\build-tools\18.1.0;C:\Program Files (x86)\Windows Kits\8.0\Windows Performance Toolkit\;C:\Program Files (x86)\Windows Kits\8.1\Windows Performance Toolkit\;C:\Program Files (x86)\MySQL\MySQL Server 5.6\bin;C:\Program Files (x86)\GtkSharp\2.12\bin;C:\Takipi\lib;C:\Takipi\lib32;C:\Program Files (x86)\Microsoft SDKs\TypeScript\1.0\;C:\Program Files (x86)\nodejs\;JAVA_HOME%\bin;C:\apache-ant-1.9.4\bin;C:\adt-bundle\sdk\platform-tools;C:\adt-bundle\sdk\tools;;C:\Program Files (x86)\Java\jdk1.6.0_39\bin;C:\Users\sajeetharan.DUOSL.000\AppData\Local\Android\android-sdk\tools;C:\Users\sajeetharan.DUOSL.000\AppData\Local\Android\android-sdk\platform-tools;C:\Program Files\Microsoft SQL Server\110\Tools\Binn\\tools;C:\apache-ant-1.9.4\bin;C:\adt-bundle\sdk\tools;C:\adt-bundle\sdk\platform-tools;c:\users\sajeetharan.DUOSL.000\AppData\Roaming\npm\;.
Sep 23, 2014 12:22:57 PM org.apache.tomcat.util.digester.SetPropertiesRule begin
WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:com.duo.test' did not find a matching property.
Sep 23, 2014 12:22:57 PM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["http-nio-8080"]
Sep 23, 2014 12:22:57 PM org.apache.tomcat.util.net.NioSelectorPool getSharedSelector
INFO: Using a shared selector for servlet write/read
Sep 23, 2014 12:22:57 PM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["ajp-nio-8009"]
Sep 23, 2014 12:22:57 PM org.apache.tomcat.util.net.NioSelectorPool getSharedSelector
INFO: Using a shared selector for servlet write/read
Sep 23, 2014 12:22:57 PM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 2349 ms
Sep 23, 2014 12:22:58 PM org.apache.catalina.core.StandardService startInternal
INFO: Starting service Catalina
Sep 23, 2014 12:22:58 PM org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: Apache Tomcat/8.0.12
Sep 23, 2014 12:23:01 PM com.sun.jersey.api.core.PackagesResourceConfig init
INFO: Scanning for root resource and provider classes in the packages:
  com.duo.test
Sep 23, 2014 12:23:01 PM com.sun.jersey.api.core.ScanningResourceConfig logClasses
INFO: Root resource classes found:
  class com.duo.test.status.V1_status
Sep 23, 2014 12:23:01 PM com.sun.jersey.api.core.ScanningResourceConfig init
INFO: No provider classes found.
Sep 23, 2014 12:23:01 PM com.sun.jersey.server.impl.application.WebApplicationImpl _initiate
INFO: Initiating Jersey application, version 'Jersey: 1.17 01/17/2013 03:31 PM'
[2014-09-23 12:23:03 TAKIPI] User code detected.
Sep 23, 2014 12:23:04 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-nio-8080"]
Sep 23, 2014 12:23:04 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["ajp-nio-8009"]
Sep 23, 2014 12:23:04 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in 6653 ms

ВЫВОД: введите здесь описание изображения

23.09.2014


Ответы:


1

Одна из проблем, которую я нашел с ошибкой

com.sun.jersey.api.core.ScanningResourceConfig init INFO: No provider classes found.

использует лямбда-выражения (Java 8) в классе обслуживания Rest. Джерси не может сканировать аннотации, если Lambdas используются в пакете, указанном в файле web.xml ниже:

  <init-param>
      <param-name>com.sun.jersey.config.property.packages</param-name>
      <param-value>com.duo.test</param-value>
  </init-param>

Решение этой проблемы — удалить Lambda в любом классе указанного пакета.

ПРИМЕЧАНИЕ. Это может быть проблема только с Джерси 1.x, я еще не пробовал использовать Джерси 2.x. Удаление Lambda помогло мне временно обойти проблему.

28.01.2016

2

Сопоставление URL-адресов было неправильным, оно должно быть

<servlet-mapping>
      <servlet-name>Jersey Rest Service</servlet-name>
      <url-pattern>/v1/*</url-pattern>
</servlet-mapping>

И в соответствии с вашими настройками URL-адрес API должен быть http://localhost:8080/v1/status/

Or

Измените сопоставление URI в классе обслуживания, например

package com.duo.test.status;
import javax.ws.rs.*;
import javax.ws.rs.core.MediaType;

@Path("/api/*")
public class V1_status {
    @GET
    @Produces(MediaType.TEXT_HTML)
    @Path("/v1/status/")
    public String returnTitle()
    {
    return "<p> Java Web Serbice</p>";  
    }

}
23.09.2014

3

Кажется, когда я столкнулся с этим, он обновлял майку с 1.0.2 до 1.1x, и в журналах было написано

INFO: Root resource classes found:
  class org.x.y.MyClass
No provider classes found.

И тогда все будет 404, хотя там написано, что веб-приложение успешно развернуто, вообще не может добраться до него.

Оказывается, мой

<servlet-mapping>
<servlet-name>Webapp Human name</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>

в web.xml уже недостаточно хороша для новой версии джерси, она должна быть

<url-pattern>/*</url-pattern>

ссылка: http://jersey.576304.n2.nabble.com/Jersey-and-url-pattern-td4548025.html

12.10.2017
  • / не работает и должно быть / ?! Я не понял. 20.12.2017
  • @ w35l3y ой, это должно быть /* обновлено, спасибо за совет. 20.12.2017
  • Новые материалы

    Коллекции публикаций по глубокому обучению
    Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

    Представляем: Pepita
    Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

    Советы по коду Laravel #2
    1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

    Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
    Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

    3 способа решить квадратное уравнение (3-й мой любимый) -
    1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

    Создание VR-миров с A-Frame
    Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

    Демистификация рекурсии
    КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..