2012-01-16 3 views
0

Когда я работал над созданием нового действия с полосами, я обнаружил следующую ошибку в файле журнала.net.sourceforge.stripes.exception.StripesServletException: Не удалось создать экземпляр типа ActionBean

**net.sourceforge.stripes.exception.StripesServletException: ***Could not create instance of ActionBean type*** [site.person.inspector.finaid.budget.ManageSession].** 
    at net.sourceforge.stripes.controller.AnnotatedClassActionResolver.getActionBean(AnnotatedClassActionResolver.java:368) 
    at net.sourceforge.stripes.controller.NameBasedActionResolver.getActionBean(NameBasedActionResolver.java:264) 
    at net.sourceforge.stripes.controller.AnnotatedClassActionResolver.getActionBean(AnnotatedClassActionResolver.java:293) 
    at net.sourceforge.stripes.controller.DispatcherHelper$1.intercept(DispatcherHelper.java:106) 
    at net.sourceforge.stripes.controller.ExecutionContext.proceed(ExecutionContext.java:158) 
    at.site.stripesext.ConnectionContextSetupInterceptor.intercept(ConnectionContextSetupInterceptor.java:17) 
    at net.sourceforge.stripes.controller.ExecutionContext.proceed(ExecutionContext.java:155) 
    at net.sourceforge.stripes.controller.BeforeAfterMethodInterceptor.intercept(BeforeAfterMethodInterceptor.java:113) 
    at net.sourceforge.stripes.controller.ExecutionContext.proceed(ExecutionContext.java:155) 
    at net.sourceforge.stripes.controller.ExecutionContext.wrap(ExecutionContext.java:74) 
    at net.sourceforge.stripes.controller.DispatcherHelper.resolveActionBean(DispatcherHelper.java:102) 
    at net.sourceforge.stripes.controller.DispatcherServlet.resolveActionBean(DispatcherServlet.java:238) 
    at net.sourceforge.stripes.controller.DispatcherServlet.service(DispatcherServlet.java:141) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:802) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) 
    at net.sourceforge.stripes.controller.StripesFilter.doFilter(StripesFilter.java:247) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) 
    at .site.person.PersonAuditFilter.doFilter(PersonAuditFilter.java:44) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) 
    at .site.support.security.AuthorizationFilter.doFilter(AuthorizationFilter.java:76) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) 
    at .site.support.session.SessionTrackingFilter.doFilter(SessionTrackingFilter.java:41) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) 
    at .site.support.security.AuthenticationFilter.doFilter(AuthenticationFilter.java:39) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) 
    at .site.support.downtime.DowntimeFilter.doFilter(DowntimeFilter.java:41) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) 
    at org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:738) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) 
    at .site.QueueFilter.doFilter(QueueFilter.java:23) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) 
    at .site.TransactionFilter.doFilter(TransactionFilter.java:82) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) 
    at .site.ExceptionLoggingFilter.doFilter(ExceptionLoggingFilter.java:42) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) 
    at org.displaytag.filter.ResponseOverrideFilter.doFilter(ResponseOverrideFilter.java:125) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) 
    at .site.PdfFilter.doFilter(PdfFilter.java:42) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) 
    at .site.PreventCacheResponseFilter.doFilter(PreventCacheResponseFilter.java:25) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) 
    at site.QuiesceFilter.doFilter(QuiesceFilter.java:91) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) 
    at .site.HqlTraceFilter.doFilter(HqlTraceFilter.java:43) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) 
    at .site.AuditFilter.doFilter(AuditFilter.java:61) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172) 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) 
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117) 
    at org.apache.catalina.valves.FastCommonAccessLogValve.invoke(FastCommonAccessLogValve.java:500) 
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108) 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174) 
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:873) 
    at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665) 
    at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528) 
    at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81) 
    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689) 
    at java.lang.Thread.run(Thread.java:619) 

Ниже приведены классы, над которыми я работаю прямо сейчас.

@UrlBinding("/person/inspect/finaid/budget/manage-session-budget.page") 
public class ManageSession extends AbstractAidApplicantYearSessionTab{ 
//The class AbstractAidApplicantYearSessionTab has a hierarchy and the last one extends from UIAction 
    private static final String MANAGE_JSP_FILE="person/inspect/finaid/budget/manage-session-budget.jsp" ; 
    @Override 
    @DefaultHandler 
    public Resolution show() { 
     return new MauiForwardResolution(MANAGE_JSP_FILE); 
    } 

    public ManageSession(PersonInspectorAction personInspector, String group, String title) { 
      super(personInspector, group, title); 
     } 

} 


@UrlBinding("/person/inspect/finaid/budget/cost-of-attendance.page") 

public class CostOfAttendanceTab extends AbstractAidApplicantTab { 

public String getViewSessionUrl() { 
     return "/person/inspect/finaid/budget/manage-session-budget.page"; 
    } 

public CostOfAttendanceTab(PersonInspectorAction personInspector, String group, String  title) { 
    super(personInspector, group, title); 
} 


} 

То, что я пытаюсь сделать, когда вы нажмете на ссылку я вызывающую getViewSessionUrl (т.е. actionBean.viewSessionUrl). который, в свою очередь, приведет вас к manage-session-budget.page (например, к классу ManageSession) ... В этом классе у меня есть разрешение по умолчанию, называемое show() .., которое переводит вас в manage-session-budget.jsp .... но я не знаю, почему это не получается, что файл jsp или sth не соответствует странице ManageSession ...

У вас есть мысли?

ответ

2

Класс действия bean (ManageSession), не имеет конструктора no-arg, поэтому Stripes не может создать экземпляр этого класса.

+0

Ну. Вы правы. «ManageSession» не имеет конструктора no-arg. Так делают и другие классы, такие как «CostOfAttendance», и они работают хорошо. Даже я попытался поместить конструктор по умолчанию в ManageSession, и у него есть ошибка времени компиляции, в которой говорится, что в конструкторе site.person.inspector.finaid.AbstractAidApplicantYearSessionTab (родителя ManageSession) нет конструктора по умолчанию. Когда я делаю то же самое в AbstractAidApplicantYearSessionTab, он продолжает указывать мне родительский класс и так далее. Я не имею права изменять другие классы, кроме ManageSession. Что мне делать? – WowBow

+0

Класс CostOfAttendanceTab имеет конструктор no-arg, потому что он его не имеет, и в этом случае компилятор Java создает его для вас, что просто вызывает 'super()'. Конструктор no-arg ** должен ** вызывать супер конструктор в качестве первой инструкции. Если у суперкласса нет конструктора no-arg, тогда нужно еще одно: «public ManageSession() {super (null, null, null); // ...}'. См. Http://docs.oracle.com/javase/tutorial/java/javaOO/constructors.html –

+0

Прошу прощения. В CostOfAttendanceTab уже есть конструктор. Я редактировал свой вопрос. public CostOfAttendanceTab (PersonInspectorAction personInspector, String group, String title) { super (personInspector, group, title); } – WowBow

Смежные вопросы