2015-09-09 2 views
0

В настоящее время я столкнулся с проблемой, когда пытаюсь запустить RestEasy с Tomcat.Проблема с запуском RestEasy Restful Webservice с Tomcat

Я добавил все соответствующие банки.

Но я не могу понять, в чем причина проблемы.

Ниже я дал все детали конфигурации и ресурс, который я использовал.

Сервер: Tomcat версия 7 Я использую его.

Может ли кто-нибудь помочь мне, как решить проблему, пожалуйста, дайте мне знать, если ничего не пропало.

Журнал ошибок конфигурации

9 Sep, 2015 10:30:04 PM org.apache.catalina.core.StandardEngine startInternal 
INFO: Starting Servlet Engine: Apache Tomcat/7.0.30 
9 Sep, 2015 10:30:05 PM org.jboss.resteasy.plugins.server.servlet.ConfigurationBootstrap 
WARNING: resteasy.scan is no longer supported. Use a servlet 3.0 container and the ResteasyServletInitializer 
9 Sep, 2015 10:30:06 PM org.apache.coyote.AbstractProtocol start 
INFO: Starting ProtocolHandler ["http-bio-8080"] 
9 Sep, 2015 10:30:06 PM org.apache.coyote.AbstractProtocol start 
INFO: Starting ProtocolHandler ["ajp-bio-8009"] 
9 Sep, 2015 10:30:06 PM org.apache.catalina.startup.Catalina start 
INFO: Server startup in 1792 ms 
9 Sep, 2015 10:31:15 PM org.jboss.resteasy.core.ExceptionHandler 
SEVERE: failed to execute 
javax.ws.rs.NotFoundException: Could not find resource for full path: http://localhost:8080/web-layer/rest/vechicle 
    at org.jboss.resteasy.core.registry.ClassNode.match(ClassNode.java:73) 
    at org.jboss.resteasy.core.registry.RootClassNode.match(RootClassNode.java:48) 
    at org.jboss.resteasy.core.ResourceMethodRegistry.getResourceInvoker(ResourceMethodRegistry.java:444) 
    at org.jboss.resteasy.core.SynchronousDispatcher.getInvoker(SynchronousDispatcher.java:255) 
    at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:192) 
    at org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:220) 
    at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:56) 
    at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:51) 

LIB

WebContent\WEB-INF\lib\activation-1.1.1.jar 
WebContent\WEB-INF\lib\commons-codec-1.6.jar 
WebContent\WEB-INF\lib\commons-io-2.1.jar 
WebContent\WEB-INF\lib\commons-logging-1.1.3.jar 
WebContent\WEB-INF\lib\httpclient-4.3.6.jar 
WebContent\WEB-INF\lib\httpcore-4.3.3.jar 
WebContent\WEB-INF\lib\jaxrs-api-3.0.12.Final.jar 
WebContent\WEB-INF\lib\jboss-annotations-api_1.1_spec-1.0.1.Final.jar 
WebContent\WEB-INF\lib\jcip-annotations-1.0.jar 
WebContent\WEB-INF\lib\resteasy-jaxrs-3.0.12.Final.jar 

web.xml

<?xml version="1.0" encoding="UTF-8"?> 
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> 
    <display-name>asf-lpa-web</display-name> 

    <welcome-file-list> 
    <welcome-file>index.html</welcome-file> 
    <welcome-file>index.htm</welcome-file> 
    <welcome-file>index.jsp</welcome-file> 
    <welcome-file>default.html</welcome-file> 
    <welcome-file>default.htm</welcome-file> 
    <welcome-file>default.jsp</welcome-file> 
    </welcome-file-list> 

    <!-- Auto scan REST service --> 
    <context-param> 
     <param-name>resteasy.scan</param-name> 
     <param-value>true</param-value> 
    </context-param> 

    <!-- this need same with resteasy servlet url-pattern --> 
    <context-param> 
     <param-name>resteasy.servlet.mapping.prefix</param-name> 
     <param-value>/rest</param-value> 
    </context-param> 

    <listener> 
     <listener-class> 
      org.jboss.resteasy.plugins.server.servlet.ResteasyBootstrap 
     </listener-class> 
    </listener> 

    <servlet> 
     <servlet-name>resteasy-servlet</servlet-name> 
     <servlet-class> 
      org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher 
     </servlet-class> 
    </servlet> 

    <servlet-mapping> 
     <servlet-name>resteasy-servlet</servlet-name> 
     <url-pattern>/rest/*</url-pattern> 
    </servlet-mapping> 

</web-app> 

Service Interface

import javax.ws.rs.GET; 
import javax.ws.rs.Path; 
import javax.ws.rs.Produces; 
import javax.ws.rs.core.MediaType; 
import javax.ws.rs.core.Response; 

@Path("/") 

    public interface ParkService { 

     @GET 
     @Path("/vechicle") 
     @Produces(MediaType.APPLICATION_JSON) 
     public Response getViewPark(); 

    } 

Сервис Impl Класс

import java.util.ArrayList; 
import java.util.List; 
import java.util.Map; 
import java.util.TreeMap; 

import javax.ws.rs.core.Response; 

public class ParkServiceImpl implements ParkService{ 

    public Response getViewPark(){ 

     ViewTo viewTo = new ViewTo(); 
     // 
     /// 
     /// 

     return response("view",viewTo); 

    } 

    private Response response(String jsonName, Object object) { 

     Map<String, Object> outputMap = new TreeMap<String, Object>(); 
     outputMap.put(jsonName, object); 

     return Response.ok(outputMap).build(); 
    } 

} 
+0

@peeskillet Я использовал тот же код в JBOSS, он отлично работает, поскольку Jboss поставляется с предопределенной библиотекой. Я не знаю, есть ли здесь что-то здесь. – Arun

+0

@techuser web-layer - это имя приложения или может быть принято как контекстно- путь – Arun

ответ

0

Вы, вероятно, сталкиваются с той же проблемой, что и пользователь, который создал этот вопрос: javax.ws.rs.NotFoundException: Could not find resource for full path

Сначала попробуйте изменить свой отдых api версии 3.0.4.Final, и если ваше приложение работает с ней, то это точно такая же проблема.

0

Я считаю, что проблема связана с аннотацией @Path на интерфейсе. По-видимому, ResteastServletInitializer не может справиться с этим.

Я хотел бы узнать, как разрешить интерфейсы иметь аннотацию @Path.

+0

Согласно спецификации JAX-RS, аннотация '@ Path' должна быть на фактической реализации. Другие аннотации ('@ GET',' @ POST' и т. Д.) Разрешены в интерфейсе. – randymay

Смежные вопросы