1
Map countryList = new HashMap();
String str = "http://10.10.10.25/TEPortalIntegration/CustomerPortalAppIntegrationService.svc/PaymentSchedule/PEPL/Unit336";
 try {
    URL url = new URL(str);

    URLConnection urlc = url.openConnection();

       BufferedReader bfr = new BufferedReader(new InputStreamReader(
                    urlc.getInputStream()));

    String line, des;
    double title;
    final StringBuilder builder = new StringBuilder(2048);

    while ((line = bfr.readLine()) != null) {
      builder.append(line);
    }

            // convert response to JSON array
    final JSONArray jsa = new JSONArray(builder.toString());

            // extract out data of interest
    for (int i = 0; i < jsa.length(); i++) {
        final JSONObject jo = (JSONObject) jsa.get(i);
        title = jo.getDouble("NetAmount");

        countryList.put(i, title);
    }
    System.out.println(countryList); /* Giving result if i run in Console*/
  } catch (Exception e) {
            // TODO: handle exception
        }
  renderRequest.setAttribute("out-string", countryList);

上記のコードは、JavaクライアントからJSONWebサービスを使用するためのものです。Javaコンソールアプリケーションからアクセスできます。しかし、JSPまたはLiferayで試してみると、機能しません。JSPでは、java.lang.NoClassDefFoundError:org / json/JSONArrayを提供します。私がそれを修正するのを手伝ってください。JSPで動作させるには、ライブラリにjarファイルを追加する必要がありますか?

4

2 に答える 2

7

JSONArray次のディレクトリ構造に従って、クラスを含む jar ファイルを Web アプリケーションに追加する必要があります。

Tomcat_HOME
  ->
   webapps
     ->
       YourWebAppName
         ->
            WEB-INF
               ->lib
                  ->Here goes your jar file
于 2012-12-19T12:04:52.080 に答える
4

を使用する代わりに、json.org.JSONArrayLiferayのJSON APIの使用を検討しましたか?

次のものをインポートできます。

import com.liferay.portal.kernel.json.JSONArray;
import com.liferay.portal.kernel.json.JSONFactoryUtil;
import com.liferay.portal.kernel.json.JSONObject;

彼らは次のようなことをします:

JSONObject jsonObject = JSONFactoryUtil.createJSONObject(myJSONObjectString);
JSONArray jsonArray = JSONFactoryUtil.createJSONArray(myJSONArrayString);

このように、追加のJARは必要ありません!

于 2012-12-19T19:10:36.647 に答える