0

JAXB オブジェクトを返す REST Web サービスがあります。メソッドに Mediatype を JSON として指定しました。ajaxForm プラグインを使用して、この WebService にデータを送信しています。

問題は、JSON を webservice の mediatype として指定し、クライアントの Javascript で dataType として指定したにもかかわらず、返されたオブジェクトとして xmlDocument のみを取得していることです。

これは Web サービスの署名です。Glassfish 3.1 を使用していますが、すべての機能が適切に実行されます (server.log にメッセージが表示されます)。

@Path("GetJson")
public class GetJson
{
    private static  Logger   logger = Logger.getLogger("GetJson");
    @POST
    @Produces({MediaType.APPLICATION_XML,MediaType.APPLICATION_JSON})
    public Exceldatalist getJson(@Context HttpServletRequest request)
{

これはクライアント コードです。フォームは次のとおりです。

<form id="form3" action="http://comp1:8080/RestWSGS/jersey/GetJson" style="display:none"
         enctype="multipart/form-data" method="post">
         <input id ="username" name="username" type="hidden" />
         <input id ="purpose" name="purpose" type="hidden" value="new"  /> 
        <input id ="filename" name="filename" type="hidden" />
        <input id ="password" name="password" type="hidden"  value="abc"/>
        <input id ="company" name="company" type="hidden" value="Third"/>
        <input id ="ignoreSheet" name="ignoreSheet" type="hidden" />
        <input type="submit"  style="display:none" />
</form>

ajaxForm 呼び出しは次のとおりです。

$('#form3').ajaxForm({
     url: 'http://comp1:8080/RestWSGS/jersey/GetJson', 
        async: false,
        type: 'POST',
        cache: false,
        dataType: 'json', 
        contentType: "multipart/form-data",
        processData: false,
        success: function(data)
         {
          myData = data;
          alert('success '+myData);
          
         }
}); 

これとは別にsubmit()、フォームの呼び出しのみがあります。

私は自分が間違っていることを理解できません。しばらくここで立ち往生しています...これを解明するのを手伝ってください!

4

1 に答える 1

0

これは私がこれを解決するためにしたことです。

プロジェクトからすべてのジャージーとジャクソンの jar ファイルを削除しました。

グラスフィッシュのインストールディレクトリ/モジュールからすべてのジャージーとジャクソンのjarファイルを削除しました。ジャージーからすべての最新の瓶を手に入れて、そこに置きました。

次に、グラスフィッシュから osgi-cache を削除し、サーバーを再起動しました。これで問題は解決しましたが、正確に何が変わったのかはわかりません!!

于 2012-01-06T05:40:56.993 に答える