2011-12-22 20 views
3

カスタムインターセプタが手元にあり、アノテーションを使用してActionクラスに関連付ける必要があります。私はstruts.xmlで宣言されたものを使用してインターセプタ-REFを追加しましたが、次のように注釈を使用してカスタムインターセプタをリンクする方法

"SEVERE: Exception starting filter Struts2 
Unable to load configuration. - [unknown location]" 

マイActionクラスは、ある次のように

@Action(value = "/login", results = { 
      @Result(name = "success", location = "/Welcome.jsp"), 
      @Result(name = "error", location = "/Login.jsp") }, 
      interceptorRefs = { 
       @InterceptorRef("defaultStack"), 
       @InterceptorRef("myLogging")} 
    ) 
    public String validateCredentials() { 
     if (this.userName.equals("Raj") && this.password.equals("aspire")) { 
      return "success"; 
     } else { 
      // addActionError(getText("error.login")); 
      return "error"; 
     } 
    } 

マイstruts.xmlがあり、

、などの例外を取得しています
<package name="default" extends="struts-default" namespace="/"> 
     <interceptors> 
      <interceptor name="myLogging" class="org.struts.hello.MyLoggingInterceptor"/> 
     </interceptors> 
    </package> 

エラー・スタック:

SEVERE: Exception starting filter Struts2 
Unable to load configuration. - [unknown location] 
    at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:58) 
    at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:360) 
    at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:403) 
    at org.apache.struts2.dispatcher.FilterDispatcher.init(FilterDispatcher.java:190) 
    at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:295) 
    at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:422) 
    at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:115) 
    at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:3838) 
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4488) 
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045) 
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:785) 
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045) 
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443) 
    at org.apache.catalina.core.StandardService.start(StandardService.java:519) 
    at org.apache.catalina.core.StandardServer.start(StandardServer.java:710) 
    at org.apache.catalina.startup.Catalina.start(Catalina.java:581) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
    at java.lang.reflect.Method.invoke(Unknown Source) 
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289) 
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414) 
Caused by: Unable to find interceptor class referenced by ref-name loggingStack - [unknown location] 
    at com.opensymphony.xwork2.config.providers.InterceptorBuilder.constructInterceptorReference(InterceptorBuilder.java:52) 
    at org.apache.struts2.convention.DefaultInterceptorMapBuilder.buildInterceptorList(DefaultInterceptorMapBuilder.java:99) 
    at org.apache.struts2.convention.DefaultInterceptorMapBuilder.build(DefaultInterceptorMapBuilder.java:90) 
    at org.apache.struts2.convention.DefaultInterceptorMapBuilder.build(DefaultInterceptorMapBuilder.java:74) 
    at org.apache.struts2.convention.PackageBasedActionConfigBuilder.createActionConfig(PackageBasedActionConfigBuilder.java:676) 
    at org.apache.struts2.convention.PackageBasedActionConfigBuilder.buildConfiguration(PackageBasedActionConfigBuilder.java:493) 
    at org.apache.struts2.convention.PackageBasedActionConfigBuilder.buildActionConfigs(PackageBasedActionConfigBuilder.java:278) 
    at org.apache.struts2.convention.ClasspathPackageProvider.loadPackages(ClasspathPackageProvider.java:52) 
    at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:200) 
    at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:55) 
    ... 21 more 
Dec 22, 2011 3:30:22 PM org.apache.catalina.core.StandardContext start 
SEVERE: Error filterStart 
Dec 22, 2011 3:30:22 PM org.apache.catalina.core.StandardContext start 
SEVERE: Context [/StrutsAnnotation] startup failed due to previous errors 
+0

そこドキュメントを参照してください、あなたは完全なエラーコンソールを表示することができますか? –

答えて

3

私はstruts2の有無にかかわらず注釈を使用することはあまりありませんが、私はあなたがconvention-pluginを使用していると信じています。あなたの問題について彼らが何を言っているのかを簡単に示しています。

あなたは「 REF-名XYZによって参照インターセプタクラスを見つけることができません」などのエラーが発生した場合。つまり、コンベンションがあなたの行動を と置いているパッケージは、インターセプタが であるパッケージを拡張しません。この問題を解決するには

  1. 使用@ParentPackage注釈(またはstruts.convention.default.parent.package) いずれかのインターセプタを定義するパッケージの名前を渡します。
  2. インターセプタを定義するパッケージを拡張するXMLでパッケージを作成します。 を使用して、@ParentPackage(またはStruts.convention.default.parent.package)を使用してそれを示します。詳細については

convention-plugin

+0

ああ動作します..ありがとう –

+0

@Raj:それはあなたが受け入れられたとして答えをマークすることができます:) –

関連する問題