2017-04-05 12 views
0

私のgrailsのコードからサーブレットのdoGet()メソッドを安らかに呼び出しています。doGet()メソッドが正常に呼び出され、printステートメントを見ることができます。 doGet()が呼び出されると、メソッドが呼び出されたという安らかな呼び出しに応答を返す必要があります。それは私が穏やかな呼び出しに応答する

response.setContentLength(5); 
     response.setStatus(200); 

として応答を設定しようとしていますGrailsのサーブレットで

def getStatus(String tableName) { 
      try { 
       def result 
       def resultList = [] 
       println "attempting to send START signal to http://localhost:9081/ServletSample/ServletSample" 
       result = rest.get("http://localhost:9081/ServletSample/ServletSample?tableName="+tableName) 
       println "length "+result.length() 
       println result.body 
       resultList.add(result) 
       log.debug "$result.body" 
       resultList.each { 
        println "$it.body" 
        if (it.status == 200) { 
         if (it.body == "Starting") 

{ 
         println ("starting up") 

に送り返すことができますが、それを受信取得されないように、サーブレットのレスポンスを設定する方法。次の例外が発生しています

Exception occured in rest service() groovy.lang.MissingMethodException: No signature of method: grails.plugins.rest.client.RestResponse.length() is applicable for argument types:() values: [] 
Possible solutions: getAt(java.lang.String), each(groovy.lang.Closure), with(groovy.lang.Closure), wait(), getXml(), every() from class java.net.URL 

答えて

0

Javaオブジェクトをjson文字列に変換してHttpServletResponseに書き込む必要があります。

response.setContentType("application/json"); 
response.setCharacterEncoding("UTF-8"); 
// Get the printwriter object from response to write the required json object to the output stream  
PrintWriter out = response.getWriter(); 
String json = new Gson().toJson(someObject); 

out.write(json); 

私はGoogle Gson

を使用しかし、SomeObjectの中で与えられるべきであるどのような値

+0

簡単であれば手動でJSON文字列を作成することができますJSON文字列にJavaオブジェクトを変換するには:ここでは、コードです。状態が200でbodyに値が "開始中"の場合、私のgrilsコードはlookinです。 –

+0

Jsonでフォーマットされた '{" name ":" John "、" age ":31、" city ":" New York "}'のような文字列です。これは、安らかな呼び出しに対するサーバーの応答になります。 –

+0

私はあなたが言っているが、私の質問をどのように解析し、grailsコードで "name"の値を取得するので、返された値が等しいかどうかをチェックできるようになります –

関連する問題