2 つのリソースを持つ単純な REST サービスを作成しました。最初のリソースはうまく機能し、MediaType.TEXT_PLAIN を返すだけです。
2 番目のリソースでは、POJO を Java にマッピングして、次の例に従いました。
私のテストビーンは次のように定義されています:
@XmlRootElement
public class Company {
public String name;
public String symbol;
public String country;
public Company(String name, String symbol,
String country) {
this.name = name;
this.symbol = symbol;
this.country = country;
}
public String getName() {
return name;
}
public String getSymbol() {
return symbol;
}
public String getCountry() {
return country;
}
}
リソースも簡単です。
@Path("company/{name}")
public class CompanyResource {
private Map<String, Company> companies;
public CompanyResource() {
companies = new LinkedHashMap<String, Company>();
companies.put("Apple", new Company("Apple Inc.", "AAPL", "USA"));
companies.put("Microsoft", new Company("Microsoft Corp.", "MSFT", "USA"));
companies.put("Honda", new Company("Honda Motor Co Ltd", "HMC", "Japan"));
companies.put("Random", new Company("Random Inc.", "RND", "Undefined"));
}
@GET
@Produces(MediaType.APPLICATION_JSON)
public Company getCompany(@PathParam("name") String name) {
Company cmp = companies.get(name);
if (cmp == null) {
return companies.get("Random");
}
return cmp;
}
}
リクエストをデバッグし、return ステートメントに問題なく到達しました。ただし、ここから JAXBException がスローされたと思いますが、詳細を表示できず、どこのログにも何も表示されません。ブラウザに「内部サーバー エラー 500」というメッセージが表示されるだけです。
監視構成の下で、必死になってすべてをレベル HIGH に設定しました。それでもどこにも何も表示されません。
私が見つけた唯一の同様の質問は、jax-rs 2.0 と Glassfish 4 で JSON を Pojo に @consume できず、JAX RS Jersey + JSON --> HTTP 500 Internal Server Errorでしたが、完全に関連しているようには見えませんでした。
クライアントの場合、「高度なRESTクライアント」アプリでGoogle Chromeを使用しています。
どんな助けでも大歓迎です。