簡體   English   中英

啟動jax-rs服務器時出錯

[英]Error when starting jax-rs server

嘗試在本地啟動我的Web服務時出現以下錯誤

SEVERE: The ResourceConfig instance does not contain any root resource classes.
com.sun.jersey.api.container.ContainerException: The ResourceConfig instance does not contain any root resource classes.
    at com.sun.jersey.server.impl.application.RootResourceUriRules.<init>(RootResourceUriRules.java:99)
    at com.sun.jersey.server.impl.application.WebApplicationImpl._initiate(WebApplicationImpl.java:1359)
    at com.sun.jersey.server.impl.application.WebApplicationImpl.access$700(WebApplicationImpl.java:180)
    at com.sun.jersey.server.impl.application.WebApplicationImpl$13.f(WebApplicationImpl.java:799)
    at com.sun.jersey.server.impl.application.WebApplicationImpl$13.f(WebApplicationImpl.java:795)
    at com.sun.jersey.spi.inject.Errors.processWithErrors(Errors.java:193)
    at com.sun.jersey.server.impl.application.WebApplicationImpl.initiate(WebApplicationImpl.java:795)
    at com.sun.jersey.api.container.ContainerFactory.createContainer(ContainerFactory.java:172)
    at com.sun.jersey.api.container.ContainerFactory.createContainer(ContainerFactory.java:264)
    at com.sun.jersey.api.container.ContainerFactory.createContainer(ContainerFactory.java:246)
    at com.sun.jersey.api.container.httpserver.HttpServerFactory.create(HttpServerFactory.java:117)
    at com.sun.jersey.api.container.httpserver.HttpServerFactory.create(HttpServerFactory.java:92)
    at com.swiped.main.ServerStart.main(ServerStart.java:14)

我的課程如下所示;

public class ExposedFunctions {

    private static Logger logger = Logger.getLogger(ExposedFunctions.class);
    private DBFactoryController controller = new DBFactoryController();

    public ExposedFunctions(){
        if(controller!= null){
            controller.buildCache();
        }
    }

    @GET
    @Path("/add/{username}/{password}/{email}/{firstname}/{lastname}")
    @Produces(MediaType.TEXT_PLAIN)
    public String register(@PathParam("username") String username, @PathParam("password") String password, @PathParam("email") String email, @PathParam("firstname") String firstname, @PathParam("lastname") String lastname) {
        if(StringUtilities.stringEmptyOrNull(username, password, email, firstname, lastname)){
            logger.error("String was null or empty when registering");
        }

        RegistrationStatus status = controller.register(username, password, email, firstname, lastname);
        return status.getValue();
    }
}

我的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_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>com.swiped.service</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.swiped.service</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>Jersey REST Service</servlet-name>
    <url-pattern>/rest/*</url-pattern>
  </servlet-mapping>
</web-app> 

我的主要課程如下所述:

@SuppressWarnings("restriction")
public static void main(String[] args){
    try{
        HttpServer server = HttpServerFactory.create(BASE_URI);
        server.start();
        System.out.println("Press Enter to stop the server. ");
        System.in.read();
        server.stop(0);
    }catch(Exception e){
        e.printStackTrace();
    }
}

我注意到很多人都犯過類似的錯誤,但是針對個人情況給出了很多不同的建議,這使我很難找到解決該錯誤的方法。 有人認為我的方法明顯有問題嗎?如果是,請您幫我解決嗎?

謝謝你的時間

ExposedFunctions@Path注釋ExposedFunctions

@Path("/")
public class ExposedFunctions {

編輯:類是根資源,而方法是子資源。 您必須同時擁有。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM