0

Selenium 2.24.1 を使用していますが、次のエラーが発生します。

Caused an ERROR 
null 
java.lang.StackOverflowError 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
at org.json.JSONObject.populateMap(JSONObject.java:988) 
at org.json.JSONObject.<init>(JSONObject.java:272) 
at org.json.JSONObject.wrap(JSONObject.java:1587) 
at org.json.JSONObject.populateMap(JSONObject.java:990) 
at org.json.JSONObject.<init>(JSONObject.java:272) 

何が欠けているのかわかりません.json-20080701.jarがあり、すべてのjarファイルにはselenium-java-2.24.1とselenium-server-2.24.1が付属していました。

selenium-server-standalone-2.24.1.jar のみを使用しても、このエラー メッセージが表示されます。

助けてください?

4

2 に答える 2

3

循環依存関係を持つオブジェクト グラフがあると確信しています。

次に例を示します。

public class Parent{
    private List<Child> children;
}

public class Child{
    private Parent parent;
}

これを JSON にシリアル化しようとすると、アルゴリズムが循環依存関係を認識していない限り、StackOverflow も発生します。

すべての親に対して、子のリストを作成する必要があるため、それぞれに親があり、それぞれに子のリストがありました。

于 2012-06-21T16:05:04.777 に答える
1

プロジェクトには、WebDriverがクラスパスで必要とするもの以外の/古いバージョンのorg.jsonクラスがあるようです。また、jsonバージョンはWebDriverでは機能しません。

selenium-server-standalone-x.xx.x.jarを確認すると、org.jsonが含まれていることがわかります。

これは、プロジェクトのクラスパスに2つの異なるバージョンのjsonjarがあることを意味します。

JAR地獄へようこそ。

解決策:jsonライブラリを、/Selenium-x.xx/lib/json-20080701.jarにあるセレンに付属しているライブラリに置き換えます。

于 2013-01-16T06:20:24.973 に答える