我遇到了一個奇怪的問題。 我使用Jersey 2.2來做我平靜的web服務(使用jersey-media-moxy)。 如果我產生我的輸出作爲application/xml,它運行良好。 但是,如果產生我的輸出作爲應用程序/ JSON,我得到「內部服務器錯誤500」。在的ivy.xmlJersey 2.2:輸出xml OK,但在json上失敗
我的依賴設置:
<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 - 內部服務器錯誤
類型狀態報告
消息內部服務器錯誤
描述服務器遇到一個內部錯誤(內部服務器錯誤)阻止其完成此請求。
我不覺得我的應用程序的日誌文件或Tomcat的日誌文件中的任何錯誤信息,所以我不 想法是怎麼回事。
有沒有人知道這個問題的任何可能的原因?真的很感謝...