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()
、フォームの呼び出しのみがあります。
私は自分が間違っていることを理解できません。しばらくここで立ち往生しています...これを解明するのを手伝ってください!