Restlet - 连接问题 - 406不可接受 - 纯文本

时间:2012-07-08 15:53:06

标签: rest jersey restlet

无法找到别的建议。

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

我的服务根地址是:

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

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

My Basic Auth Credentiels是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>

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

1 个答案:

答案 0 :(得分:1)

没办法:Restlet遇到问题

 @Produces("text/plain")

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

编辑:

使用

 <properties>
     <restlet.version>2.1-M3</restlet.version>
 </properties>