出力パラメータjava.util.Collection
として私に返すサービスを呼び出しています。今私の質問は、私はそのオブジェクトからデータを取得できますか?私がJavaで印刷すると、[[Ljava.lang.Object;@7ff4d7c0]
のようなものが得られます。私はオブジェクトを印刷しているので、これは正常です。java.util.collection return from webservice
このサービスはofbizプロジェクトのもので、正しく動作しています。私はofbizからWebサービステスターを使用するとき、私はと戻り値を取得する:
{{party=[GenericEntity:Party][partyId,10045(java.lang.String)][partyTypeId,PERSON(java.lang.String)]}, {party=[GenericEntity:Party][partyId,10119(java.lang.String)][partyTypeId,PERSON(java.lang.String)]}}`
どのように私はJavaでこれを達成できますか?
これは私のコードです:
public static void main(String[] args) throws MalformedURLException, XmlRpcException {
XmlRpcClientConfigImpl config = new XmlRpcClientConfigImpl();
config.setServerURL(new URL("http://127.0.0.1:8080/webtools/control/xmlrpc"));
config.setEnabledForExceptions(true);
config.setEnabledForExtensions(true);
XmlRpcClient client = new XmlRpcClient();
client.setConfig(config);
Map paramMap = new HashMap();
Map map1 = new HashMap();
//Verplichte parameters
paramMap.put("login.username", "admin");
paramMap.put("login.password", "opentaps");
paramMap.put("userLoginId", "David");
Object[] params = new Object[]{paramMap};
Map result = (Map) client.execute("getPartyFromUserLogin", params);
//System.out.println(result.values());
Collection parties = null;
parties = (Collection) result.values();
System.out.println("Got parties: " + parties.size());
System.out.println(parties.toString());
Iterator it = parties.iterator();
while(it.hasNext()){
Party object = (Party)it.next();
System.out.println("ok : "+ object.getPartyId());
}
}
[OK]をので、今、私はそれを反復処理し、党オブジェクト(import org.opentaps.base.entities.Party;
)にキャストしようとしています。間違ったクラスにキャスティングしているだけですか?
エラーログ:このコードを使用した後
Exception in thread "main" java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to org.opentaps.base.entities.Party
at test.xmlrpcGetPartyEmail.main(xmlrpcGetPartyEmail.java:56)
エラーログ:
Iterator it = parties.iterator();
while(it.hasNext()){
System.out.println("ok : "+ it.next().getClass());
}
class java.util.HashMap$Values
Got parties: 1
[[Ljava.lang.Object;@2380bfe1]
ok : class [Ljava.lang.Object;
サーバーログ:
ava:777:WARN ] Running the getPartyFromUserLogin Service...
[java] 2012-03-27 14:47:28,861 (http-0.0.0.0-8080-1) [ PartyServices.
ava:792:INFO ] PartyFromUserLogin number found: 2
[java] 2012-03-27 14:47:28,865 (http-0.0.0.0-8080-1) [ RequestHandler.
ava:641:INFO ] Ran Event [xmlrpc:#] from [request], result is [null]
[java] 2012-03-27 14:47:28,866 (http-0.0.0.0-8080-1) [ ControlServlet.
ava:328:INFO ] [[[xmlrpc] Request Done- total:0.056,since last([xmlrpc] Request
...):0.056]]
正しいオブジェクトタイプにキャストしようとしましたか? – 02strich
こんにちは、コレクションオブジェクトを印刷するだけで、コレクションを繰り返し、個々のオブジェクトの状態を表示することができます – Murugesh
何をしようとしているかを示すコード例を示してください。 – nwinkler