私は、Jersey Java REST WebService フレームワークを初めて使用します。JSON を使用して生成するサービス メソッドを作成しようとしています。私のサービスコードは以下です。学習目的のためだけの、最も単純なコードです。
@Path("/myresource")
public class MyResource {
@Path("/sendReceiveJson")
@GET
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
public String sendReceiveJson(String name)
{
System.out.println("Value in name: " + name);
return "{\"serviceName\": \"Mr.Server\"}";
}
}
以下はJerseyClientのコードです。
public class Program {
public static void main(String[] args) throws Exception{
String urlString="http://localhost:8080/MyWebService/webresources/myresource/sendReceiveJson";
URL url=new URL(urlString);
URLConnection connection=url.openConnection();
connection.setDoOutput(true);
OutputStreamWriter out = new OutputStreamWriter(connection.getOutputStream());
out.write("{\"clientName\": \"Mr.Client\"}");
out.close();
BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
String decodedString;
while ((decodedString = in.readLine()) != null) {
System.out.println(decodedString);
}
in.close();
}
}
しかし、サービスを実行してからクライアントを実行すると、JSON データを送受信できません。私はどこで例外を取得しconnection.getInputStream()
ます
Server returned HTTP response code: 405 for URL: http://localhost:8080/hellointernet/webresources/myresource/sendReceiveJson
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1625)
何を修正する必要があるか、または間違った方向に進んでいるかどうかを教えてください。