既存のstruts 2アプリケーションにREST APIを追加しようとしています。Strutsを使用したREST API
アイデアは、標準的なストラットマッピングを使用するアプリケーションの一部と、RESTを使用する別の部分を持つことです。
だから私はstruts2-rest-pluginプラグインを使用して、以下の設定を追加しました:
struts.xml:
<constant name="rest" value="org.apache.struts2.rest.RestActionMapper"/>
<constant name="struts.mapper.class"
value="org.apache.struts2.dispatcher.mapper.PrefixBasedActionMapper"/>
<constant name="struts.mapper.prefixMapping" value="/rest:rest,/:struts"/>
struts.properties:
struts.action.extension=,htm,action,xml,json
TasksControllerを。 java:
package xxx.common.webservice.rest;
public class TasksController implements ModelDriven<Task> {
public String update() {
return "UPDATE";
}
// Handles /tasks/{id} GET requests
public String show() {
return "YES";
}
@Override
public Task getModel() {
// TODO Auto-generated method stub
return null;
}
}
この設定では、基本的なstrutsアクションは機能しますが、RESTアクションを動作させることはできません。 私は別のstruts.xmlの設定(規約のプラグインオプションも含む)を試しましたが、成功しなかったとしても、マッピングは決してconfig-brower pluginで表示されません。
私が間違っていたことや間違っていることはありますか?
あなたは "RESTアクションが仕事を得ることができない" によって何を意味しますか?少しの説明が役に立ちます –
残念なことに、残りのアクションは常に404エラー(GETとPOST)または403エラー(PUTとDELETE)を返します。 – nicompte
どのようにRESTが動作するのか分かりませんが、すべてのアクションには名前空間が定義されている必要がありますので注意してください。 –