Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/rest/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java REST客户端代码是一个问题_Java_Rest - Fatal编程技术网

Java REST客户端代码是一个问题

Java REST客户端代码是一个问题,java,rest,Java,Rest,我正在尝试用java创建REST-ful web服务。 这个REST-ful web服务包含Hibernate配置和REST-ful配置。 实际上,javaweb服务工作得非常好。但是当我尝试执行该web服务的客户机代码时 我使用的jar文件是 activation antlr-2.7.6 asm-3.1 asm-attrs cglib-nodep commons-collections-2.1.1 commons-fileupload-1.2.1 commons-io-1.3.2 common

我正在尝试用java创建REST-ful web服务。 这个REST-ful web服务包含Hibernate配置和REST-ful配置。 实际上,javaweb服务工作得非常好。但是当我尝试执行该web服务的客户机代码时

我使用的jar文件是

activation
antlr-2.7.6
asm-3.1
asm-attrs
cglib-nodep
commons-collections-2.1.1
commons-fileupload-1.2.1
commons-io-1.3.2
commons-logging-1.1
dom4j-1.6.1
ehcache-1.2.3
ejb3-persistence
grizzly-servlet-webserver-1.7.3.2
hibernate-annotations
hibernate-commons-annotations
hibernate-entitymanager
hibernate-tools
hibernate3
http
javassist
jaxb-api
jaxb-impl
jaxb-xjc
jdbc2_0-stdext
jdom-1.0
jersey-core-1.7
jersey-server-1.7
jersey-spring
jersey
jettison-1.0-RC1
jsr173_api
jsr311-api
jta
mysql-connector-java-5.1.12-bin
osgi
rome-0.9
wadl2java
我的问题是

Exception in thread "main" java.lang.NoSuchMethodError: com.sun.jersey.spi.inject.InjectableProviderContext.getInjectable(Ljava/lang/Class;Lcom/sun/jersey/spi/service/ComponentContext;Ljava/lang/annotation/Annotation;Ljava/lang/Object;Ljava/util/List;)Lcom/sun/jersey/spi/inject/Injectable;
        at com.sun.jersey.spi.service.ComponentConstructor.getConstructor(ComponentConstructor.java:139)
        at com.sun.jersey.impl.application.ComponentProviderCache.getComponent(ComponentProviderCache.java:177)
        at com.sun.jersey.impl.application.ComponentProviderCache.getProvidersAndServices(ComponentProviderCache.java:122)
        at com.sun.jersey.impl.application.MessageBodyFactory.getProviderMap(MessageBodyFactory.java:133)
        at com.sun.jersey.impl.application.MessageBodyFactory.initReaders(MessageBodyFactory.java:107)
        at com.sun.jersey.impl.application.MessageBodyFactory.init(MessageBodyFactory.java:102)
        at com.sun.jersey.api.client.Client.<init>(Client.java:284)
        at com.sun.jersey.api.client.Client.<init>(Client.java:209)
        at com.sun.jersey.api.client.Client.create(Client.java:429)
        at pack1.client.Test.main(Test.java:20)
我试图在客户端代码中测试的方法

    @GET
    @Path("xml")
    @Produces(MediaType.TEXT_XML)
    public String sayXMLHello() {
        return "<?xml version=\"1.0\"?>" + "<hello> Hello Jersey </hello>";
    }
现在的问题是

com.sun.jersey.spi.inject.Errors processErrorMessages
SEVERE: The following errors and warnings have been detected with resource and/or provider classes:
  SEVERE: Missing dependency for field: javax.ws.rs.core.UriInfo com.sun.jersey.impl.template.ViewableMessageBodyWriter.ui
  SEVERE: Missing dependency for field: com.sun.jersey.spi.template.TemplateContext com.sun.jersey.impl.template.ViewableMessageBodyWriter.tc
Exception in thread "main" com.sun.jersey.spi.inject.Errors$ErrorMessagesException
        at com.sun.jersey.spi.inject.Errors.processErrorMessages(Errors.java:170)
        at com.sun.jersey.spi.inject.Errors.postProcess(Errors.java:136)
        at com.sun.jersey.spi.inject.Errors.processWithErrors(Errors.java:199)
        at com.sun.jersey.api.client.Client.<init>(Client.java:187)
        at com.sun.jersey.api.client.Client.<init>(Client.java:170)
        at com.sun.jersey.api.client.Client.create(Client.java:679)
        at pack1.client.Test.main(Test.java:20)
com.sun.jersey.spi.inject.Errors processErrorMessages
严重:在资源和/或提供程序类中检测到以下错误和警告:
严重:缺少字段的依赖项:javax.ws.rs.core.UriInfo com.sun.jersey.impl.template.ViewableMessageBodyWriter.ui
严重:缺少字段的依赖项:com.sun.jersey.spi.template.TemplateContext com.sun.jersey.impl.template.ViewableMessageBodyWriter.tc
线程“main”com.sun.jersey.spi.inject.Errors$ErrorMessagesException中出现异常
位于com.sun.jersey.spi.inject.Errors.processErrorMessages(Errors.java:170)
位于com.sun.jersey.spi.inject.Errors.postProcess(Errors.java:136)
位于com.sun.jersey.spi.inject.Errors.processWithErrors(Errors.java:199)
位于com.sun.jersey.api.client.client.(client.java:187)
位于com.sun.jersey.api.client.client.(client.java:170)
位于com.sun.jersey.api.client.client.create(client.java:679)
位于pack1.client.Test.main(Test.java:20)

我需要放其他jar文件吗?

我遇到了同样的问题。我发现分别使用jersey-bundle-1.8.jar而不是客户机和服务器库可以解决这个问题。您可以试试。

这是该服务器上运行的唯一web应用程序吗?也许你有另一个不同版本的jersey罐子,服务器会感到困惑。根据该方法调用似乎是合法的。请告诉我们您使用的是什么java应用程序服务器。顺便说一句,jersey 1.9已经发布,您可以更新它。@sjngm是的,我只运行这个应用程序。@gkatkov我已经编辑了原始帖子。请参阅“更改jar文件后”文本中的文章。Thanks@Mohan顺便说一句,我建议您使用Maven来解决项目的依赖关系。
jersey-server-1.8.jar
jersey-json-1.8.jar
jersey-core-1.8.jar
jersey-client-1.8.jar
com.sun.jersey.spi.inject.Errors processErrorMessages
SEVERE: The following errors and warnings have been detected with resource and/or provider classes:
  SEVERE: Missing dependency for field: javax.ws.rs.core.UriInfo com.sun.jersey.impl.template.ViewableMessageBodyWriter.ui
  SEVERE: Missing dependency for field: com.sun.jersey.spi.template.TemplateContext com.sun.jersey.impl.template.ViewableMessageBodyWriter.tc
Exception in thread "main" com.sun.jersey.spi.inject.Errors$ErrorMessagesException
        at com.sun.jersey.spi.inject.Errors.processErrorMessages(Errors.java:170)
        at com.sun.jersey.spi.inject.Errors.postProcess(Errors.java:136)
        at com.sun.jersey.spi.inject.Errors.processWithErrors(Errors.java:199)
        at com.sun.jersey.api.client.Client.<init>(Client.java:187)
        at com.sun.jersey.api.client.Client.<init>(Client.java:170)
        at com.sun.jersey.api.client.Client.create(Client.java:679)
        at pack1.client.Test.main(Test.java:20)