6

私は次のようなCXFWebサービスを持っています:

@Service("MyWebService")
public class MyWebService implements IMyWebService {    
    @Autowired
    private IMyService MyService;

    public ResponseObject doSomething(RequestObject requestObject) {
        ResponseObject responseObject = new ResponseObject;     
        .
        // do something....
        .
        .        
        return responseObject;
    }
}

これは入力JSONを想定しており、次のように言います。

{ "requestObject" : { "amount" : 12.50, "userName" : "abcd123" } }

次のような出力JSONを生成します。

{ "responseObject" : { "success" : "true", "errorCode" : 0 } }

次の形式で入力JSONを受け入れるようにCXFを構成する方法はありますか?

{ "amount" : 12.50, "userName" : "abcd123" }

入力および出力JSONのオブジェクトタイプ名「requestObject」/「responseObject」を削除する必要があります。それも可能ですか?

あなたの助けに感謝します!

4

2 に答える 2

1

springs xml 構成ファイル (applicationContext.xml など) を使用して json プロバイダーを構成している場合は、以下の構成を追加するだけで機能します。

<jaxrs:providers>
            <bean class="org.apache.cxf.jaxrs.provider.json.JSONProvider">
                <property name="dropRootElement" value="true" />
                <property name="supportUnwrapped" value="true" />
            </bean>
</jaxrs:providers>

dropRootElement は、json プロバイダーにルート要素を削除するように指示します。構成と理解の詳細については、このJSON サポートを参照してください。

于 2012-05-30T13:31:23.960 に答える