0

他の場所でアドバイスを見つけることができませんでした。

私は、Jersey(!) Restful サービス用の Restlet JSE クライアントを作成しています。私はすでにそのためのジャージークライアントを作成しており、それは機能しているので、ジャージーサービスは問題ありません。今、私は restlet クライアントを書く際に問題を抱えています:

私のサービスのルートアドレスは次のとおりです。

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

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

私の Basic Auth Credentials は 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 Test は次のように述べています。

 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 in setの場合、この依存関係は次のとおりです。

<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 に答える