Web Service Jersey

5 respostas Resolvido
W
Boa tarde, estou tendo um problema com webservice,  procurei na net e não achei a solução, tenho a seguinte mensagem de erro:

jan 04, 2016 5:53:46 PM org.apache.catalina.core.StandardContext loadOnStartup

GRAVE: Servlet [Jersey REST Service] in web application [/Teste] threw load() exception

com.sun.jersey.api.container.ContainerException: The ResourceConfig instance does not contain any root resource classes.

at com.sun.jersey.server.impl.application.RootResourceUriRules.(RootResourceUriRules.java:99)

at com.sun.jersey.server.impl.application.WebApplicationImpl._initiate(WebApplicationImpl.java:1331)

at com.sun.jersey.server.impl.application.WebApplicationImpl.access$700(WebApplicationImpl.java:168)

at com.sun.jersey.server.impl.application.WebApplicationImpl$13.f(WebApplicationImpl.java:774)

at com.sun.jersey.server.impl.application.WebApplicationImpl$13.f(WebApplicationImpl.java:770)

at com.sun.jersey.spi.inject.Errors.processWithErrors(Errors.java:193)

at com.sun.jersey.server.impl.application.WebApplicationImpl.initiate(WebApplicationImpl.java:770)

at com.sun.jersey.server.impl.application.WebApplicationImpl.initiate(WebApplicationImpl.java:765)

at com.sun.jersey.spi.container.servlet.ServletContainer.initiate(ServletContainer.java:489)

at com.sun.jersey.spi.container.servlet.ServletContainer$InternalWebComponent.initiate(ServletContainer.java:319)

at com.sun.jersey.spi.container.servlet.WebComponent.load(WebComponent.java:605)

at com.sun.jersey.spi.container.servlet.WebComponent.init(WebComponent.java:210)

at com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java:374)

at com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java:557)

at javax.servlet.GenericServlet.init(GenericServlet.java:158)

at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1231)

at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1144)

at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1031)

at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4914)

at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5201)

at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)

at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1409)

at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1399)

at java.util.concurrent.FutureTask.run(FutureTask.java:266)

at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)

at java.lang.Thread.run(Thread.java:745)

Até onde pude ver, tem haver com o pacote onde está a classe, porém ele está correto.

<?xml version="1.0" encoding="UTF-8"?>


Tag

Jersey REST Service
com.sun.jersey.spi.container.servlet.ServletContainer

com.sun.jersey.config.property.packages
br.com.restful.resource

1


Jersey REST Service
/*

<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>

5 Respostas

A

Você está usando a annotation @Path certo? Tente mudar por exemplo, de @Path("/x") para @Path(“x”).

E, caso não o tenha feito, adicione este parâmetro no seu web.xml (substituindo pelo nome do pacote onde se encontra a classe):

<init-param>
  <param-name>com.sun.jersey.config.property.packages</param-name>
  <param-value>nome.pacote</param-value>
</init-param>
W

Opa, obrigado pela resposta, seguinte, está tudo correto, já tentei com e sem “/” no path.
Segue código.
web.xml:
identar texto pre-formata<init-param> <param-name>com.sun.jersey.config.property.packages</param-name> <param-value>br.com.restful.resource</param-value> </init-param>do em 4 espaços
Classe do package:
@Path("/tag")
public class TagsResource {

@GET
@Path("/listarDados")
@Produces("application/json")
public ArrayList<Tags> listarDados(){
    return new TagController().listarTodos();
}

}
Grato pela ajuda.

A

Cara, então ou o pacote que vc informou no value ta errado, ou a classe TagsResource não está nesse pacote…

Esse erro significa que ou vc não tem o param com.sun.jersey.config.property.packages informado no web.xml ou ele foi informado porém não tem relação com nenhum recurso/serviço do Jersey.

W

Opa, tenho sim, estava funcionando, parou de funcionar quando fui corrigir um erro de comunicação com o banco de dados SQL Server. Fiz a correção no banco e começou a dar este problema. Prints.

Valeu pela ajuda.

W
Solucao aceita

Achei o problema, tinha dois jars como missing, bastou informar eles novamente e problema resolvido.
Grato.

Criado 4 de janeiro de 2016
Ultima resposta 5 de jan. de 2016
Respostas 5
Participantes 2