1

Struts 2 コア jar が Struts2-Json-Plugin jar と同期している必要があるかどうかを知りたいです。Actionクラスのメソッドから「SUCCESS」を返すと、例外が発生するためです。私はxmlで結果タイプを「json」として宣言しました

<result-type name="json" class="org.apache.struts2.json.JSONResult"/>

そして私が得ている例外は

java.lang.NoSuchMethodError: com.opensymphony.xwork2.ActionContext.get(Ljava/lang/String;)Ljava/lang/Object;
at org.apache.struts2.json.JSONResult.execute(JSONResult.java:166)
at com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:348)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:253)
at com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:221)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86)

私は struts2-core-2.0.11.jar を使用しており、私の struts.xml は

<action name="editEmployee" class="myaction.AddEmployeeAction" method="getValue">
      <result name="success" type="json" />
</action>

そして私の行動は

public class AddEmployeeAction extends ActionSupport implements ParameterAware {

/**
 * 
 */
private static final long serialVersionUID = 1L;
private EmployeeDaoImp empdao;
private Map parameters;

public EmployeeDaoImp getEmpdao() {
    return empdao;
}

public void setEmpdao(EmployeeDaoImp empdao) {
    this.empdao = empdao;
}

public String getValue() throws Exception
{
    //JSONArray jsonArr = new JSONArray();
    JSONObject jsonObject = new JSONObject();
    String query = getParameterValue("selChar");
    List<String> names = empdao.getData(query);
    /*for (String name : names) {
        jsonArr.add(name);
    }*/
    jsonObject.put("namesList", names);
    return SUCCESS;
}

}

4

1 に答える 1

4

S2プラグインのバージョンはS2バージョンと一致する必要があります。プラグインは、struts2-coreによって提供されるメカニズムを使用します。

プラグインは異なるバージョンのコアで動作する可能性がありますが、そのようにテストされることはありません。したがって、独自のテストハーネスを提供しない限り、ランダムにミキシングとマッチングを開始した場合の動作を知る方法はありません。混ぜ合わせてはいけません。

于 2012-07-25T15:11:51.323 に答える