0

找不到其他地方的建议。

我正在为 Jersey(!) Restful 服务编写 Restlet JSE 客户端。我已经为此编写了一个 Jersey 客户端并且它正在工作,所以 jersey 服务还可以。现在我在编写 restlet 客户端时遇到问题:

我的服务根地址是:

 http://localhost:8080/com-project-core/rest, so I call:

 ClientResource = service = new ClientResource("http://localhost:8080/com-project-core/rest");

我的基本身份验证凭据是 admin 和 xxx,所以我打电话给:

 service.setChallengeResponse(ChallengeScheme.HTTP_BASIC, "admin", "xxx");

现在的问题:

 ClientResource service = new ClientResource("http://localhost:8080/com-project-core/rest/ping");

呼叫我的服务。之后我尝试

 String myString = service.get(String.class);
 System.out.println(myString);

我得到一个:

 08.07.2012 17:41:48 org.restlet.engine.http.connector.HttpClientHelper start
 INFO: Starting the default HTTP client

在我的输出中。不多!Junit 测试说:

 Not Acceptable (406) - Not Acceptable 

所以他可以找到资源但不能产生 @Produces("text/plain") ??

因此,当我在服务器端删除 @Produces("text/plain") 时,它就可以工作了!!

对于资源丰富的我的服务器端如下所示:

    @Path("/ping")
    @RolesAllowed({"admin", "user"})
    public class ConnectedResourceBean implements ConnectedResourceIF {

        @GET
        @Produces("text/plain")
        public String getPingMessage() throws NamingException {             

        return "Hello World";
       }
 }

对于我的 pom 设置这个依赖项:

<dependency>
    <groupId>org.restlet.jse</groupId>
    <artifactId>org.restlet</artifactId>
    <version>${restlet.version}</version>
</dependency>

<dependency>
    <groupId>org.restlet.jse</groupId>
    <artifactId>org.restlet.ext.xstream</artifactId>
    <version>${restlet.version}</version>
</dependency>

正如我所说,它与我的球衣客户合作。

4

1 回答 1

1

没办法:Restlet 有问题

 @Produces("text/plain")

在泽西服务器端。有人可以向我解释这个事实吗?

编辑:

使它与

 <properties>
     <restlet.version>2.1-M3</restlet.version>
 </properties>
于 2012-07-08T17:31:57.810 回答