これを参照として使用して、Struts2でRESTのみの構成を作成します。
https://cwiki.apache.org/confluence/display/WW/REST+Plugin
私の現在の問題はインターセプターにあります。アクションがヒットする前に実行する必要があるサンプルインターセプターを作成しました。
ここにあります:
public class AuthInterceptor extends AbstractInterceptor implements Interceptor
{
public String intercept(ActionInvocation invocation) throws Exception {
System.out.println("intercepting AuthInterceptor...");
return invocation.invoke();
}
public void destroy() {
System.out.println("Destroying AuthInterceptor...");
}
public void init() {
System.out.println("Initializing AuthInterceptor...");
}
}
これが私のstruts.xmlファイルです:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<constant name="struts.enable.DynamicMethodInvocation" value="false"/>
<constant name="struts.devMode" value="true"/>
<constant name="struts.mapper.class" value="rest" />
<constant name="struts.convention.action.suffix" value="Controller"/>
<constant name="struts.convention.action.mapAllMatches" value="true"/>
<constant name="struts.convention.default.parent.package" value="rest-default"/>
<constant name="struts.convention.package.locators" value="controllers"/>
<package name="default" extends="struts-default">
<interceptors>
<interceptor name="myInterceptor" class="com.company.interceptors.AuthInterceptor"/>
<interceptor-stack name="myStack">
<interceptor-ref name="myInterceptor"/>
<interceptor-ref name="defaultStack"/>
</interceptor-stack>
</interceptors>
<default-interceptor-ref name="myStack"/>
</package>
</struts>
ログ(catalina.out)には、インターセプターが初期化されたが、実際には何もインターセプトされなかったことが示されています。
Initializing AuthInterceptor...
どうやら、default-interceptor-ref
はrest
マッパークラスではうまく機能しません。これは本当ですか?または私はここで何か間違ったことをしていますか?
これを変更する必要があります
<constant name="struts.convention.default.parent.package" value="default"/>
<package name="default" extends="rest-default">
アクション構成を作成するときのコンベンションプラグインは、親パッケージで定義されたインターセプターを継承します。親パッケージを定義するに@ParentPackage
は、すべてのアクションの親パッケージを定義するアノテーションまたは上記の定数を使用できます。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加