blog

転送後、ウェブサービス・インターフェイスには正常にアクセスできるが、データを取得することができない。

最初は、メソッド名が複数あるのではと思ったので、メソッド名の名前空間、プラス)、プラス)、プラス)、プラス)、プラス)、プラス)、プラス)、プラス)、プラス)、プラス)、プラス)、プラス)、プラス)、...

Apr 16, 2020 · 3 min. read
シェア

元のコードは以下の通りです:

public String getMyMatter1(HttpS res, String uuid, String num, String pagenum){
 res.setHeader("Access-Control-Allow-Origin", "*");
 res.setHeader("Access-Control-Allow-Methods","GET, POST");
 Map<String,Object> map = new HashMap<>();
 if(StringUtil.isNotEmpty(uuid) && StringUtil.isNotEmpty(num) 
 StringUtil.isNotEmpty(pagenum)){
 try{
 int overtime = ; ///タイムアウト時間、デフォルト60秒
 String oprName = "getTransList";
 List<Object> value = new ArrayList<Object>();
 Service service = new Service();
 Call call = (Call) service.createCall();
 call.setTargetEndpointAddress(new URL("http://***/?dl"));
 call.setTimeout(overtime);
 call.addParameter("uuid", XMLType.XSD_STRING, ParameterMode.IN);
 value.add(uuid);
 call.addParameter("pagenum", XMLType.XSD_INT, ParameterMode.IN);
 value.add(Integer.parseInt(pagenum));
 call.addParameter("num", XMLType.XSD_INT, ParameterMode.IN);
 value.add(Integer.parseInt(num));
 call.setReturnType(XMLType.XSD_STRING);
 call.setOperationName(oprName);
 Object result = call.invoke(value.toArray());
 String jsonResult = (String)result;
 return jsonResult;
 } catch (Exception e) {
 map.put("result","fail");
 map.put("message"," ");
 }
 }else{
 map.put("result","fail");
 map.put("message","パラメトリックエラー");
 }
 return JsonUtil.objectToString(map);
 }

最初、私は複数のメソッド名があると思ったので、私はメソッド名の名前空間を指定しようとし、プラスcall.setOperationName(new QName("http://***/external/", "getTransList"))、プラスその後、それはまだ動作しません。その後、私は呼び出しのWebサービスインターフェイスの例を見つけるためにインターネットに行き、コードを比較し、パラメータに独自のコードが対応する名前空間を指定していないことがわかり、さらにcall.addParameter(new QName("http://***/external/", "num"), XMLType.INT,ParameterMode.IN)、さらにpostmanコールを使用した後、まだ動作しません、まだデータは空です。数時間探して、そうでなければ問題はありませんし、最終的に方法はありませんが、ちょうど変更されたパラメータの順序を考えて、私はそう考える方法を知らない、ちょうどそれを行うが、また成功しました。

public String getMyMatter(HttpS res, String uuid, String num, String pagenum){
 res.setHeader("Access-Control-Allow-Origin", "*");
 res.setHeader("Access-Control-Allow-Methods","GET, POST");
 Map<String,Object> map = new HashMap<>();
 if(StringUtil.isNotEmpty(uuid) && StringUtil.isNotEmpty(num) 
 StringUtil.isNotEmpty(pagenum)){
 try{
 int overtime = ; ///タイムアウト時間、デフォルト60秒
 final String endpoint = "http://***/?dl";
 String rec_msg = "";
 try {
 // サービスコールを作成する
 Service service = new Service();
 Call call = (Call) service.createCall();
 // サービスのURLを設定する
 call.setTargetEndpointAddress(new URL(endpoint));
 call.setUseSOAPAction(true);
 call.setTimeout(overtime);
 // パラメータの設定
 call.addParameter(new QName("http://***/al/","id"), XMLType.XSD_STRING,ParameterMode.IN);
 call.addParameter(new QName("http://***/al/","um"), XMLType.XSD_INT,ParameterMode.IN);
 call.addParameter(new QName("http://***/al/","um"), XMLType.XSD_INT,ParameterMode.IN);
 // メソッド名を指定する
 call.setOperationName(new QName("http://***/al/","st"));
 // 戻り値の型を設定する
 call.setReturnType(XMLType.XSD_STRING);
 // リモートコール・ウェブサービス・インターフェース
 rec_msg = (String) call.invoke(new Object[] {uuid,Integer.parseInt(num),Integer.parseInt(pagenum)});
 return rec_msg;
 } catch (ServiceException e) {
 e.printStackTrace();
 } catch (RemoteException e) {
 e.printStackTrace();
 }
 } catch (Exception e) {
 map.put("result","fail");
 map.put("message"," ");
 }
 }else{
 map.put("result","fail");
 map.put("message","パラメトリックエラー");
 }
 return JsonUtil.objectToString(map);
 }
Read next

vueモバイルフォームコンポーネントのパッケージング

Vue2.xとVant-UIでラップされたダイナミックフォームコンポーネントをベースに、純粋なJSON設定レンダリング、強力なチェック機構、二次開発機構を備えています。

Apr 16, 2020 · 3 min read