私の問題が何であるかを理解しようとした後、私は最終的に私の問題を解決する方法をあなたに尋ねることに決めました。私は同じ問題を抱えているさまざまな人々を見てきました。彼らに勧められたすべてのことを試しましたが、私の問題には何の助けもありませんでした。つまり、基本的には、Jerseyを使用して構築したRESTfulサービスを使用しています。クライアントの場合、JSON形式でオブジェクトを返したいと思います。さまざまなチュートリアルを読み、jersey-json-1.8ライブラリを使用するのが理にかなっていると判断しました。いつものようにプロジェクトにすべてを追加して実行しようとしましたが、サービスを呼び出すたびに(get request atmを介して)HTTPエラーコード500(内部サーバーエラー)が発生し、サーバーはメッセージ本文がないと応答しますライターが見つかりました。XMLを返す場合、それは問題なく機能し、すべてが素晴らしいです。jersey-json-1.8もコピーしてみました。jarをTomcatlibフォルダーに移動します。これは、使用しているmysql libでこれを実行する必要があったためですが、どちらも役に立ちませんでした。このようなものを機能させるために私を助けてくれたら本当に嬉しいです!さらに情報が必要な場合は、コメントを残してください。できるだけ早く人間的に提供します:)
プロジェクトのセットアップは次のとおりです。3つの異なるパッケージ1.RESTfulServices2.SQL接続などを処理するJavaWork3.作業する必要があり、JSON形式で返したいすべてのモデルを格納するパッケージ(私の例では、テストドライブのルート)
Tomcat WebサーバーIDE:Eclipse私はMavenを使用しています
オブジェクトを返そうとしているものや方法に関係なく、オブジェクトは機能せず、常にエラーメッセージが表示されます。
Mapped exception to response: 500 (Internal Server Error)
javax.ws.rs.WebApplicationException: com.sun.jersey.api.MessageException: A message body writer for Java class com.mykong.models.Teststrecke, and Java type class com.mykong.models.Teststrecke, and MIME media type application/json was not found
編集:これが私のJSONサービスメソッドです
@Path("/hellojson")
public class JSONService {
@GET
@Produces(MediaType.APPLICATION_JSON)
public ArrayList<Route> getJSONMsg()
{
Route ts = new Route();
ts.setId(1);
ts.setName("HelloWorld");
Route ts2 = new Route();
ts2.setId(2);
ts2.setName("HelloWorld");
ArrayList<Route> availRoutes = new ArrayList<Route>();
availRoutes.add(ts);
availRoutes.add(ts2);
return availRoutes;
}
}