他の場所でアドバイスを見つけることができませんでした。
私は、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>
私が言ったように、それは私のジャージークライアントと連携しています。