You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@struts.apache.org by Marco Mistroni <mm...@gmail.com> on 2008/06/14 19:35:19 UTC

problem with configuration wiht annotations

hi all,
 i have a struts application that i am trying to 'rewrite' using
annotiations..
I am doing it little by little, so i still have  a struts-config.xml file

i have annotated the following two actions like this@

@Results({
    @Result(name="success", value="/WEB-INF/freemarker/login.ftl",
type=FreemarkerResult.class)
})

public class Index  extends ActionSupport {

    private static final long serialVersionUID = 1L;
    private static Logger log = Logger.getLogger(Index.class);

    public String execute() {
        log.debug("----- in index action..");

        return SUCCESS;
    }
}

@Results({
    @Result(name="input", value="/WEB-INF/freemarker/login.ftl",
type=FreemarkerResult.class),
    @Result(name="success", value="/WEB-INF/freemarker/hello/hello.ftl",
type=FreemarkerResult.class)
})
public class Login  extends ActionSupport
                    implements SessionAware {


i have also setup a filter in web.xml


<filter>
          <filter-name>struts2</filter-name>

<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
          <init-param>
            <param-name>actionPackages</param-name>

<param-value>com.mm.budgetweb.action.admin,com.mm.budgetweb.action,com.mm.budgetweb.ajax,com.mm.budgetweb.tasks</param-value>
          </init-param>
    </filter>

this was the original struts-config.xml for the two classes

<action name="login" class="com.mm.budgetweb.action.admin.Login">
        <result name="input"
type="freemarker">/WEB-INF/freemarker/login.ftl</result>
        <result name="success"
type="freemarker">/WEB-INF/freemarker/hello/hello.ftl</result>

    </action>

    <action name="index" class="com.mm.budgetweb.action.admin.Index">
        <result name="success"
type="freemarker">/WEB-INF/freemarker/login.ftl</result>
    </action>


they were associated with no package........ the iNdex action  and
LoginAction were invoked with following URL

http://localhost:port/BudgetWeb/

for some reasons, i am getting an exception in my selenium tests...
when i deployed app and checked problems i got this excepiton in the
background

There is no Action mapped for namespace / and action name index. - [unknown
location]
        at
com.opensymphony.xwork2.DefaultActionProxy.prepare(DefaultActionProxy.java:186)
        at
org.apache.struts2.impl.StrutsActionProxyFactory.createActionProxy(StrutsActionProxyFactory.java:41)
        at
org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:494)
        at
org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:419)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        at
com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:119)
        at
com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:55)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        at
org.apache.struts2.dispatcher.ActionContextCleanUp.doFilter(ActionContextCleanUp.java:99)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        at
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
        at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
        at
org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:175)
        at
org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:74)
        at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
        at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
        at
org.jboss.web.tomcat.tc5.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:156)
        at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
        at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
        at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
        at
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
        at
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
        at
org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112)
        at java.lang.Thread.run(Thread.java:595)

anyone could tell me what i am doing wrong?

thanks and regards
  marco