2017-12-12 17 views
0

私のコードは、HTMLフォームのユーザー入力を取得し、CICSで通知します。それでも動作しますが、コンソールにはInvalid forms data was found in the input messageというエラーが表示されますJCICS - 無効なHTMLフォーム

com.ibm.cics.server.InvalidRequestException: CICS INVREQ Condition(RESP=INVREQ, RESP2=17) 
    at com.ibm.cics.server.HttpRequest.READ(Native Method) 
    at com.ibm.cics.server.HttpRequest.getFormField(HttpRequest.java:635) 
    at com.ibm.cics.server.HttpRequest.getFormField(HttpRequest.java:607) 

どうすれば修正できますか?ここに私のコード

 HttpRequest req = HttpRequest.getHttpRequestInstance(); 
     String template = "<form name=\"response\">" 
       + "<input type='radio' name='response' value=\"yes\" checked> Investigation needed<br>" 
       + "<input type='radio' name='response' value=\"no\"> No investigation needed<br>" 
       + "<input type='submit' value='Submit' onclick='clickAlert()'>" 
       + "</form>" 
       + "<script>function clickAlert() {alert(\"Selection submitted!\");}</script>"; 
     HttpResponse resp = new HttpResponse(); 
     Document doc = new Document(); 
     doc.createText(msg); 
     doc.appendFromTemplate(template); 
     resp.setMediaType("text/html"); 
     resp.sendDocument(doc, (short)200, "OK", ASCII); 

     if (req.getFormField("response") != null){ 
      if (req.getFormField("response").equals("yes")){ 
       t.out.println("SHE0008: Notify teller: Customer requested investigation. Teller please go to " + TELLER_URL); 
      }else{ 
       t.out.println("No investigation needed"); 
      } 
     } 
+0

これは他のCICSの問題と同様にデバッグすることをお勧めします。 RESP = INVREQ、RESP2 = 17を返すCICS APIは何ですか?そのAPIの[documentation](https://www.ibm.com/support/knowledgecenter/SSGMCP_5.4.0/reference/commands-api/dfhp4_commandsummary.html)には何が問題なのですか?関連するデータの表示を追加して、コード内で何が起こっているのかを確認することもできます。 – cschneid

+0

「入力メッセージに無効なフォームデータが見つかりましたが、まだ動作していてエラーが発生しています...」 –

+1

Javaスタックトレースに行番号が表示され、[CICSConditionException](RESPS: //www.ibm.com/support/knowledgecenter/SSGMCP_5.4.0/reference/jcics-javadoc/com/ibm/cics/server/CicsConditionException.html)では、JCICS [javadoc](https://www.ibm。 JCICSクラスを基になるCICS API [https:// www。com/support/knowledgecenter/SSGMCP_5.4.0/reference/jcics-javadoc/com/ibm/cics/server/package-summary.html] ibm.com/support/knowledgecenter/SSGMCP_5.4.0/reference/commands-api/dfhp4_commandsummary.html)、RESP2 = 17を参照してください。 –

答えて

0

は)私は、コードを誤解かもしれませんが、あなたのJavaプログラムが(resp.sendDocumentをやっているようにそれはそうだ戻ってデータを取得しようと直後。 resp.sendDocumentが呼び出されると、タスクの終了時にHTMLを送信するために情報がCICSバッファーに格納されます。したがって、コードがすぐにデータを取得しようとすると、クライアント/ブラウザはまだ応答していません。

次のタスクの実行時にのみデータを取得できます。

関連する問題