0

我在 kony 应用程序中创建了一个简单的 java 服务。当我尝试使用输入参数运行测试时,出现以下异常。

java.lang.ClassCastException: com.kony.sample.KonyServerConnection cannot be cast to com.konylabs.middleware.common.JavaService
    at com.konylabs.middleware.connectors.JavaConnector.execute(JavaConnector.java:142)
    at com.pat.tool.keditor.editors.JavaServiceDefinitionEditorPage.getJavaResponse(JavaServiceDefinitionEditorPage.java:1878)
    at com.pat.tool.keditor.editors.JavaServiceDefinitionEditorPage$InvokeJavaOperation.run(JavaServiceDefinitionEditorPage.java:1842)
    at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:121)

我按照这个链接供参考

我分享了一些java代码

 private static final String URL = "http://serverurl/sendEmail?";  


 public static String getServerPersponce(String entitiy,String mHeader){
        String responseBody = "";
        HttpClient httpclient = new DefaultHttpClient();
        HttpPost httppost = new HttpPost(URL);
        System.out.println("Requesting : " + httppost.getURI());

        try {
          StringEntity entity = new StringEntity(entitiy);

          if(mHeader != null && !mHeader.equalsIgnoreCase(""))
          httppost.addHeader("AuthToken" , mHeader);
          httppost.setEntity(entity);
          httppost.setHeader("Accept", "application/json");
          httppost.setHeader("Content-type", "application/json");
          HttpResponse response = httpclient.execute(httppost);
          HttpEntity entity1 = response.getEntity();
          InputStream stream = entity1.getContent();
           responseBody = getStringFromInputStream(stream);

            if (response.getStatusLine().getStatusCode() != 200) {
                // responseBody will have the error response
            }
          //responseBody = httpclient.execute(httppost, responseHandler);

          System.out.println("responseBody : " + responseBody);

        } catch (UnsupportedEncodingException e) {
          e.printStackTrace();
        } catch (ClientProtocolException e) {
          e.printStackTrace();
        } catch (IOException e) {
          e.printStackTrace();
        } finally {
          httpclient.getConnectionManager().shutdown();
        }
        return responseBody;
      }
    public static void main(String[] args) throws Exception {
        String data = "{\"CC\":[\"yuvarajag@gmail.com\"],\"Content\":\"sample string 2\",\"Subject\": \"sample string 1\",\"To\": [\"yuvarajag@gmail.com\",\"sakumarr@gmail.com\",]}";
        String result  = getServerPersponce(data, accessToken);
        System.out.println("Result "+result);
    } 

    // convert InputStream to String
        private static String getStringFromInputStream(InputStream is) {

            BufferedReader br = null;
            StringBuilder sb = new StringBuilder();

            String line;
            try {

                br = new BufferedReader(new InputStreamReader(is));
                while ((line = br.readLine()) != null) {
                    sb.append(line);
                }

            } catch (IOException e) {
                e.printStackTrace();
            } finally {
                if (br != null) {
                    try {
                        br.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
            }

            return sb.toString().trim();

        }

这个java代码工作正常。创建一个 jar 后,我将此 jar 包含到 Kony 应用程序中。我在 kony java 服务集成中遇到异常。

4

2 回答 2

1

在指定的代码中没有实现 com.konylabs.middleware.common.JavaService2 类。如果您在类文件中实现 JavaService2 类并覆盖其调用方法,JavaService 将起作用。

以下是示例:

public class <YOUR CLASS NAME> implements JavaService2 {
@Override
public Object invoke(String serviceId, Object[] arg1,
    DataControllerRequest arg2, DataControllerResponse arg3)
    throws Exception {
    // YOUR LOGIC
    return result;
}

}

于 2014-11-06T06:43:15.060 回答
0

KonyJavaConnector需要实现JavaServer或的类JavaService2。显然com.kony.sample.KonyServerConnection没有实现它们。

于 2019-09-04T02:53:36.847 回答