2016-06-24 15 views
1

Ich habe eine Drupal-Modul mit einer einzigen Seite gemacht wie diese nur json Daten anzuzeigen:Drupal 7 json ouput Fehler -1 mit Java Camunda Anwendung

drupal_add_http_header('Status', $code); 
drupal_json_output($data); 

$Code sein kann 200, 204, 401, 404 usw. .

Wenn meine Seite von Postman aufgerufen wird, ist es in Ordnung.

Wenn meine Seite von Java-Anwendung aufgerufen wird, ist es -1 zurückgeben.

bekam ich die volle Stack-Trace und ich hochgeladen es auf Pastebin: http://pastebin.com/PvCeQuU5

eine Idee?


ich meine hook_menu wie folgt aus:

$items['mymodule/json'] = array(
    'title'    => t('Page title'), 
    'page callback'  => array('mymodule_pagejson'), 
    'access callback' => TRUE, 
    'type'    => MENU_NORMAL_ITEM, 
    'delivery callback' => 'drupal_json_output', 
); 
return $items; 
+0

Was Sie zu erreichen versuchen, ist nicht wirklich klar. machen Sie Anfragen von Java zu Drupal (das ist meine Vermutung, wie Sie drupal_json_output verwenden)? Übrigens: - Ich glaube, dass die richtige Verwendung von 'drupal_add_http_header' würde den $ -Code und den Namen des Fehlers (wie:' drupal_add_http_header ('Status', '404 Not Found'); 'wie beschrieben hier: https://api.drupal.org/api/drupal/includes%21bootstrap.inc/function/drupal_add_http_header/7.x - Es sei denn, du willst wirklich, dass dein 'mymodule/json' einen sichtbaren Menüpunkt hat, den contstant 'MENU_NORMAL_ITEM' sollte wahrscheinlich in' MENU_CALLBACK' geändert werden – zeropaper

Antwort

0

Das Problem ist, dass die Lieferung Rückruf mit drupal_json_output() 4 Zeichen zurückgibt, selbst wenn es sich um ein 204-Status ist.

Aber 204 Status erlaubt keine Content-Lenght mehr als 0 (wie es in der RFC gesagt wird) so brach die HTML-Datenschicht von Java zusammen.

Postman zeigt, dass Content-Lenght mehr als 0 ist, aber die Abfrage normal ausgeführt werden kann.