2017-06-13 10 views
0

この場合、JerseyWithPadding(com.sun.jersey.api.json.JSONWithPadding)を使用してオブジェクトをラップしました。 JsonWithPaddingがなければ、正しいJSON応答を返します。完全JsonWithPaddingでの作業持っJSONWithPadding - JERSEY JAX-RS RESTのCORS関連エラー500問題

、それは私が、私は日食ネオンを使用していジャージー2に切り替えてくれイベントに次のエラーを与える、tomcatの8

それも、むしろ、コンソール上の任意のエラーをスローしませんアクセスログに500というエラーが見つかりました。私はそれがセキュリティ(トロイの木馬)の問題であると確信しています。

アクセスログ

172.22.14.88 - - [13// 2017年6月:09:17:49 -0400] "GET/csmgt /休憩/クライアント/ HTTP/1.1"

応答:

<!DOCTYPE html> 
<html> 
    <head> 
     <title>Apache Tomcat/8.0.28 - Error report</title> 
     <style type="text/css">H1 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:22px;} H2 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:16px;} H3 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:14px;} BODY {font-family:Tahoma,Arial,sans-serif;color:black;background-color:white;} B {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;} P {font-family:Tahoma,Arial,sans-serif;background:white;color:black;font-size:12px;}A {color : black;}A.name {color : black;}.line {height: 1px; background-color: #525D76; border: none;}</style> 
    </head> 
    <body> 
     <h1>HTTP Status 500 - Internal Server Error</h1> 
     <div class="line"></div> 
     <p> 
      <b>type</b> Status report 
     </p> 
     <p> 
      <b>message</b> 
      <u>Internal Server Error</u> 
     </p> 
     <p> 
      <b>description</b> 
      <u>The server encountered an internal error that prevented it from fulfilling this request.</u> 
     </p> 
     <hr class="line"> 
     <h3>Apache Tomcat/8.0.28</h3> 
    </body> 
</html> 

JsonWithPadding持つすべてのヘルプは高く評価されます。

答えて

0

最後に、私は闘争の末、私の質問を解決しました。まず第一に、エラー500レスポンスではなくEclipseコンソールでJerseyが投げたエラーを見ることができませんでした。 Jerseyの次のCustom ExceptionMapperエラーをコンソールに表示するように作成しました。

import javax.ws.rs.core.Response; import javax.ws.rs.ext.Provider;

@Provider 
public class MoxyThrowable implements javax.ws.rs.ext.ExceptionMapper<Exception> { 
    @Override 
    public Response toResponse(Exception exception) { 
     exception.printStackTrace(); 
     return Response.status(500).build(); 
    } 
} 

... その例外のマッパーが明確な原因は私がジャージー2に移行する前に、私はジャージー2.0デフォルトにすることを実現働いていたCORS(クロスドメイン)をサポートするために使用されるパディングとJSONである私を示していMOXyプロバイダー。

2つのAPIのは、パディングライブラリとJSONのためにあります。 com.sun.jersey.api.json.JSONWithPadding - 私はこの org.eclipse.persistence.oxm.JSONWithPadding

を--- USED ソリューション

セット@ web.xmlの

DISABLE MOXY

<init-param> 
    <param-name>jersey.config.disableMoxyJson.server</param-name> 
    <param-value>true</param-value> 
</init-param> 

使用JACKSON

<init-param> 
    <param-name>jersey.config.server.provider.packages</param-name> 
    <param-value>YOUR SERVICES;org.codehaus.jackson.jaxrs 
    </param-value> 
</init-param> 

---あなたは ジャージーメディア-JSON-ジャクソン -2.5.1

を追加したことを確認してください
関連する問題