0

私は奇妙な問題に遭遇しました。私は、Jersey 2.2 を使用して安静な Web サービスを実行しています (jersey-media-moxy を使用)。出力を application/xml として生成すると、問題なく動作します。しかし、出力を application/json として生成すると、「Internal Server Error 500」が発生します。

ivy.xml の依存関係の設定は次のとおりです。

<dependency org="org.glassfish.jersey.core" name="jersey-server" rev="2.2"/>
<dependency org="org.glassfish.jersey.containers" name="jersey-container-servlet-core" rev="2.2"/>
<dependency org="org.glassfish.jersey.media" name="jersey-media-moxy" rev="2.2"/>

私のサービスクラスは次のとおりです。

@Path("/projects/{companykey: [0-9]*}")
@Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
public class ProjectResource {
    private static Logger logger = Logger.getLogger(ProjectResource.class);
    private final Application app = Application.getInstance();
    @GET
    public List<ProjectBase> getProjectBases(
            @PathParam("companykey") String companyKeyStr) {
        ...
    }
    @GET
    @Path("/{projectkey: [0-9]*}")
    public ProjectBase getProjectBase(
            @PathParam("companykey") String companyKeyStr,
            @PathParam("projectkey") String projectKeyStr) {
        int companyKey = Integer.valueOf(companyKeyStr);
        int projObjKey = Integer.valueOf(projectKeyStr);
        logger.debug(MessageFormat.format("get project {1} of company {0}",
                companyKey, projObjKey));
        ProjectBase project = null;
        try {
            project = app.getProjectIF().getProjectBase(companyKey, projObjKey);
            if (project == null) throw new WebApplicationException(404);
            return project;
        } catch (ServerException se) {
            logger.warn("get project fails ! " + se);
            throw new WebApplicationException(500);
        }
    }
    ...
} 

//class end

xml 出力を要求すると ( http://biz.loc.net:8080/tm/rest/projects/100/104にアクセス)、次のようになります。

<projectBase>
<_checkTopicAccess>false</_checkTopicAccess>
<_checkTaskAccess>false</_checkTaskAccess>
....

json の出力を要求すると、次のようになります。

HTTP ステータス 500 - 内部サーバー エラー

タイプ ステータス レポート

message 内部サーバー エラー

説明 サーバーで内部エラー (内部サーバー エラー) が発生したため、この要求を実行できませんでした。

アプリのログ ファイルまたは Tomcat のログ ファイルにエラー メッセージが見つからないため、何が起こっているのかわかりません。

この問題の考えられる理由を知っている人はいますか? 本当に感謝しています...

4

2 に答える 2

0

エンティティ コードを表示できますか? 空のコンストラクターがありませんか?

于 2013-09-11T15:38:07.697 に答える