0

問題を解決するのに役立つとは思えない多くの例外に遭遇しました。

ここにある

Class org.apache.struts2.json.JSONWriter can not access a member of class org.hibernate.bytecode.internal.javassist.BytecodeProviderImpl$EntityInstrumentationMetadataImpl with modifiers "public"
java.lang.IllegalAccessException: Class org.apache.struts2.json.JSONWriter can not access a member of class org.hibernate.bytecode.internal.javassist.BytecodeProviderImpl$EntityInstrumentationMetadataImpl with modifiers "public"
org.apache.struts2.json.JSONException: java.lang.IllegalAccessException: Class org.apache.struts2.json.JSONWriter can not access a member of class org.hibernate.bytecode.internal.javassist.BytecodeProviderImpl$EntityInstrumentationMetadataImpl with modifiers "public"
org.apache.struts2.json.JSONException: org.apache.struts2.json.JSONException: java.lang.IllegalAccessException: Class org.apache.struts2.json.JSONWriter can not access a member of class org.hibernate.bytecode.internal.javassist.BytecodeProviderImpl$EntityInstrumentationMetadataImpl with modifiers "public"
org.apache.struts2.json.JSONException: org.apache.struts2.json.JSONException: org.apache.struts2.json.JSONException: java.lang.IllegalAccessException: Class org.apache.struts2.json.JSONWriter can not access a member of class org.hibernate.bytecode.internal.javassist.BytecodeProviderImpl$EntityInstrumentationMetadataImpl with modifiers "public"
org.apache.struts2.json.JSONException: org.apache.struts2.json.JSONException: org.apache.struts2.json.JSONException: org.apache.struts2.json.JSONException: java.lang.IllegalAccessException: Class org.apache.struts2.json.JSONWriter can not access a member of class org.hibernate.bytecode.internal.javassist.BytecodeProviderImpl$EntityInstrumentationMetadataImpl with modifiers "public"
org.apache.struts2.json.JSONException: org.apache.struts2.json.JSONException: org.apache.struts2.json.JSONException: org.apache.struts2.json.JSONException: org.apache.struts2.json.JSONException: java.lang.IllegalAccessException: Class org.apache.struts2.json.JSONWriter can not access a member of class org.hibernate.bytecode.internal.javassist.BytecodeProviderImpl$EntityInstrumentationMetadataImpl with modifiers "public"
org.apache.struts2.json.JSONException: org.apache.struts2.json.JSONException: org.apache.struts2.json.JSONException: org.apache.struts2.json.JSONException: org.apache.struts2.json.JSONException: org.apache.struts2.json.JSONException: java.lang.IllegalAccessException: Class org.apache.struts2.json.JSONWriter can not access a member of class org.hibernate.bytecode.internal.javassist.BytecodeProviderImpl$EntityInstrumentationMetadataImpl with modifiers "public"

これがJSONを返すアクションクラスです

public class GetTagsAction extends ActionSupport{       
    public String execute(){

        Gson gson = new Gson();
        String tags = gson.toJson(audioTaggingService.findTagsByName(q));
        System.out.println(tags);

        return Action.SUCCESS;
    }

    public String getQ() {
        return q;
    }

    public void setQ(String q) {
        this.q = q;
    }

    public AudioTaggingService getAudioTaggingService() {
        return audioTaggingService;
    }

    public void setAudioTaggingService(AudioTaggingService audioTaggingService) {
        this.audioTaggingService = audioTaggingService;
    }

    public String getTags() {
        return tags;
    }

    public void setTags(String tags) {
        this.tags = tags;
    }

    private String q;
    private AudioTaggingService audioTaggingService;
    private String tags;
}

パッケージはこちら

<package name="default" namespace="/" extends="json-default">
    <!--  Get AJAX Related Actions -->
    <action name="tags" class="tags">
        <result type="json" />
    </action>
</package>

そして、私は使用していますStruts2-JSON-plugin

4

3 に答える 3

3

エラーは、プラグインがオブジェクト グラフ全体を変換しようとしており、プラグインが audioTaggingService を介してデータベース レイヤーを変換しようとしているように見えるという事実によるものです。Struts XML で「root」パラメータを指定する必要があります

<action name="tags" class="tags">
    <result type="json">
      <param name="root">tags</param>
    </result>
</action>

アクションで getTags() メソッドを提供します。

ただし、これが役立つかどうかはわかりません。既に JSON データを含む文字列を JSON 化しようとするとどうなるかわかりません。

于 2013-01-30T13:02:48.077 に答える
2

あなたのxmlで次の行を編集する必要があります

 <action name="tags" class="tags">

属性classは、次のような詳細なクラス名を探していますcom.your.package.YourAction

詳細はこちら

于 2013-01-30T08:53:12.450 に答える
0

JSONデータの1つがnullの場合、このエラーが発生することがあります。変換中にエラーは発生しませんが、データの処理時にエラーが発生します。

于 2014-11-27T07:19:56.910 に答える