I have also been trying to get started with the Convention plugin and was
struggling to understand why a webapp which works fine in Tomcat would not
work in Jetty.

I found that if Jetty does not expand the WAR file then I get this on
startup:

java.lang.Exception: Could not load
WEB-INF/classes/com/nature/xb3/action/news/Home.class
    at  
com.opensymphony.xwork2.util.finder.ClassFinder.readClassDef(ClassFinder.jav
a:745)

But if in my context file I set :

<Set name="extractWAR">true</Set>

Then the error goes away. I seems as though Struts makes some use of the
META-INF directory.

John


On 24/09/2009 21:34, "Ingo Hoffmann" <i...@hoffmann.cx> wrote:

> I'm using the jetty-starter
> 
> On 24/09/2009, at 17:33, Musachy Barroso wrote:
> 
>> hard to say. A good point to start debugging is in
>> PackageBasedActionConfigBuilder.buildUrlSet, for some reason it is not
>> finding the actions. I used jetty all the time, but I use it with the
>> maven jetty plugin.
>> 
>> musachy
>> 
>> On Thu, Sep 24, 2009 at 12:53 PM, Ingo Hoffmann <i...@hoffmann.cx>
>> wrote:
>>> In contrast to Tomcat:
>>> 
>>> 2009-09-24 16:51:08,115 [TRACE]
>>> (com.opensymphony.xwork2.util.logging.commons.CommonsLogger:69)
>>> Setting
>>> action default parent package to [convention-default]
>>> 2009-09-24 16:51:08,117 [TRACE]
>>> (com.opensymphony.xwork2.util.logging.commons.CommonsLogger:69)
>>> Loading
>>> action configurations
>>> 2009-09-24 16:51:08,117 [TRACE]
>>> (com.opensymphony.xwork2.util.logging.commons.CommonsLogger:69)
>>> Actions
>>> being loaded using package locators [action, actions, struts,
>>> struts2]
>>> 2009-09-24 16:51:08,118 [TRACE]
>>> (com.opensymphony.xwork2.util.logging.commons.CommonsLogger:69)
>>> Excluding
>>> actions from packages [org.apache.struts.*, org.apache.struts2.*,
>>> org.springframework.web.struts.*, org.springframework.web.struts2.*,
>>> org.hibernate.*]
>>> 2009-09-24 16:51:08,207 [TRACE]
>>> (com.opensymphony.xwork2.util.logging.commons.CommonsLogger:69)
>>> Changed
>>> action name from [HelloWorld] to [hello-world]
>>> 2009-09-24 16:51:08,208 [TRACE]
>>> (com.opensymphony.xwork2.util.logging.commons.CommonsLogger:69) Got
>>> actionName for class [class cx.hoffmann.bab.web.actions.HelloWorld]
>>> of
>>> [hello-world]
>>> 2009-09-24 16:51:08,209 [TRACE]
>>> (com.opensymphony.xwork2.util.logging.commons.CommonsLogger:69)
>>> Created
>>> package config named [cx.hoffmann.bab.web.actions#convention-
>>> default#] with
>>> a namespace []
>>> 2009-09-24 16:51:08,214 [TRACE]
>>> (com.opensymphony.xwork2.util.logging.commons.CommonsLogger:69) Using
>>> non-default action namespace from the Action annotation of [/asd]
>>> 2009-09-24 16:51:08,214 [TRACE]
>>> (com.opensymphony.xwork2.util.logging.commons.CommonsLogger:69)
>>> Created
>>> package config named [cx.hoffmann.bab.web.actions#convention-
>>> default#] with
>>> a namespace []
>>> 2009-09-24 16:51:08,217 [TRACE]
>>> (com.opensymphony.xwork2.util.logging.commons.CommonsLogger:69)
>>> Using final
>>> calculated namespace []
>>> 2009-09-24 16:51:08,217 [TRACE]
>>> (com.opensymphony.xwork2.util.logging.commons.CommonsLogger:69)
>>> Searching
>>> for results in the Servlet container at [/WEB-INF/content/] with
>>> result
>>> prefix of [/WEB-INF/content/asd]
>>> 2009-09-24 16:51:08,218 [TRACE]
>>> (com.opensymphony.xwork2.util.logging.commons.CommonsLogger:69)
>>> Processing
>>> resource path [/WEB-INF/content/hello-world.jsp]
>>> 2009-09-24 16:51:08,218 [TRACE]
>>> (com.opensymphony.xwork2.util.logging.commons.CommonsLogger:69)
>>> Processing
>>> resource path [/WEB-INF/content/hello-world.freemarker]
>>> 2009-09-24 16:51:08,219 [TRACE]
>>> (com.opensymphony.xwork2.util.logging.commons.CommonsLogger:69)
>>> Processing
>>> resource path [/WEB-INF/content/index-success.ftl]
>>> 2009-09-24 16:51:08,219 [TRACE]
>>> (com.opensymphony.xwork2.util.logging.commons.CommonsLogger:69)
>>> Processing
>>> resource path [/WEB-INF/content/index.ftl]
>>> 2009-09-24 16:51:08,220 [TRACE]
>>> (com.opensymphony.xwork2.util.logging.commons.CommonsLogger:69)
>>> Searching
>>> for results in the class path at [WEB-INF/content/] with a result
>>> prefix of
>>> [/WEB-INF/content/asd] and action name [asd]
>>> 2009-09-24 16:51:08,227 [TRACE]
>>> (com.opensymphony.xwork2.util.logging.commons.CommonsLogger:69)
>>> Changed
>>> action name from [HelloWorld] to [hello-world]
>>> 2009-09-24 16:51:08,227 [TRACE]
>>> (com.opensymphony.xwork2.util.logging.commons.CommonsLogger:69) Got
>>> actionName for class [class exemplo.actions.HelloWorld] of [hello-
>>> world]
>>> 2009-09-24 16:51:08,228 [TRACE]
>>> (com.opensymphony.xwork2.util.logging.commons.CommonsLogger:69)
>>> Created
>>> package config named [exemplo.actions#convention-default#] with a
>>> namespace
>>> []
>>> 2009-09-24 16:51:08,229 [TRACE]
>>> (com.opensymphony.xwork2.util.logging.commons.CommonsLogger:69)
>>> Using final
>>> calculated namespace []
>>> 2009-09-24 16:51:08,230 [TRACE]
>>> (com.opensymphony.xwork2.util.logging.commons.CommonsLogger:69)
>>> Searching
>>> for results in the Servlet container at [/WEB-INF/content/] with
>>> result
>>> prefix of [/WEB-INF/content/hello-world]
>>> 2009-09-24 16:51:08,230 [TRACE]
>>> (com.opensymphony.xwork2.util.logging.commons.CommonsLogger:69)
>>> Processing
>>> resource path [/WEB-INF/content/hello-world.jsp]
>>> 2009-09-24 16:51:08,231 [TRACE]
>>> (com.opensymphony.xwork2.util.logging.commons.CommonsLogger:69) The
>>> result
>>> file [/WEB-INF/content/hello-world.jsp] has no result code and
>>> therefore
>>> will be associated with success, input and error by default. This
>>> might be
>>> overridden by another result file or an annotation.
>>> 2009-09-24 16:51:08,232 [TRACE]
>>> (com.opensymphony.xwork2.util.logging.commons.CommonsLogger:69)
>>> Processing
>>> resource path [/WEB-INF/content/hello-world.freemarker]
>>> 2009-09-24 16:51:08,233 [TRACE]
>>> (com.opensymphony.xwork2.util.logging.commons.CommonsLogger:69) The
>>> result
>>> file [/WEB-INF/content/hello-world.freemarker] has no result code and
>>> therefore will be associated with success, input and error by
>>> default. This
>>> might be overridden by another result file or an annotation.
>>> 2009-09-24 16:51:08,234 [TRACE]
>>> (com.opensymphony.xwork2.util.logging.commons.CommonsLogger:69)
>>> Processing
>>> resource path [/WEB-INF/content/index-success.ftl]
>>> 2009-09-24 16:51:08,234 [TRACE]
>>> (com.opensymphony.xwork2.util.logging.commons.CommonsLogger:69)
>>> Processing
>>> resource path [/WEB-INF/content/index.ftl]
>>> 2009-09-24 16:51:08,235 [TRACE]
>>> (com.opensymphony.xwork2.util.logging.commons.CommonsLogger:69)
>>> Searching
>>> for results in the class path at [WEB-INF/content/] with a result
>>> prefix of
>>> [/WEB-INF/content/hello-world] and action name [hello-world]
>>> 2009-09-24 16:51:08,237 [TRACE]
>>> (com.opensymphony.xwork2.util.logging.commons.CommonsLogger:69)
>>> Changed
>>> action name from [xpto] to [xpto]
>>> 2009-09-24 16:51:08,237 [TRACE]
>>> (com.opensymphony.xwork2.util.logging.commons.CommonsLogger:69)
>>> Changed
>>> action name from [HelloWorld] to [hello-world]
>>> 2009-09-24 16:51:08,247 [TRACE]
>>> (com.opensymphony.xwork2.util.logging.commons.CommonsLogger:69) Got
>>> actionName for class [class exemplo.actions.xpto.HelloWorld] of
>>> [hello-world]
>>> 2009-09-24 16:51:08,247 [TRACE]
>>> (com.opensymphony.xwork2.util.logging.commons.CommonsLogger:69)
>>> Created
>>> package config named [exemplo.actions.xpto#convention-default#/
>>> xpto] with a
>>> namespace [/xpto]
>>> 2009-09-24 16:51:08,249 [TRACE]
>>> (com.opensymphony.xwork2.util.logging.commons.CommonsLogger:69)
>>> Using final
>>> calculated namespace [/xpto]
>>> 2009-09-24 16:51:08,250 [TRACE]
>>> (com.opensymphony.xwork2.util.logging.commons.CommonsLogger:69)
>>> Searching
>>> for results in the Servlet container at [/WEB-INF/content/xpto/]
>>> with result
>>> prefix of [/WEB-INF/content/xpto/hello-world]
>>> 2009-09-24 16:51:08,250 [TRACE]
>>> (com.opensymphony.xwork2.util.logging.commons.CommonsLogger:69)
>>> Searching
>>> for results in the class path at [WEB-INF/content/xpto/] with a
>>> result
>>> prefix of [/WEB-INF/content/xpto/hello-world] and action name
>>> [hello-world]
>>> 2009-09-24 16:51:08,251 [TRACE]
>>> (com.opensymphony.xwork2.util.logging.commons.CommonsLogger:69)
>>> Changed
>>> action name from [HelloWorldAction] to [hello-world]
>>> 2009-09-24 16:51:08,252 [TRACE]
>>> (com.opensymphony.xwork2.util.logging.commons.CommonsLogger:69) Got
>>> actionName for class [class
>>> cx.hoffmann.bab.web.actions.HelloWorldAction] of
>>> [hello-world]
>>> 2009-09-24 16:51:08,252 [TRACE]
>>> (com.opensymphony.xwork2.util.logging.commons.CommonsLogger:69)
>>> Created
>>> package config named [cx.hoffmann.bab.web.actions#convention-
>>> default#] with
>>> a namespace []
>>> 2009-09-24 16:51:08,253 [TRACE]
>>> (com.opensymphony.xwork2.util.logging.commons.CommonsLogger:69) Using
>>> non-default action namespace from the Action annotation of [/asd]
>>> 2009-09-24 16:51:08,256 [TRACE]
>>> (com.opensymphony.xwork2.util.logging.commons.CommonsLogger:69)
>>> Created
>>> package config named [cx.hoffmann.bab.web.actions#convention-
>>> default#] with
>>> a namespace []
>>> 2009-09-24 16:51:08,257 [TRACE]
>>> (com.opensymphony.xwork2.util.logging.commons.CommonsLogger:69)
>>> Using final
>>> calculated namespace []
>>> 2009-09-24 16:51:08,260 [TRACE]
>>> (com.opensymphony.xwork2.util.logging.commons.CommonsLogger:69)
>>> Searching
>>> for results in the Servlet container at [/WEB-INF/content/] with
>>> result
>>> prefix of [/WEB-INF/content/asd]
>>> 2009-09-24 16:51:08,261 [TRACE]
>>> (com.opensymphony.xwork2.util.logging.commons.CommonsLogger:69)
>>> Processing
>>> resource path [/WEB-INF/content/hello-world.jsp]
>>> 2009-09-24 16:51:08,264 [TRACE]
>>> (com.opensymphony.xwork2.util.logging.commons.CommonsLogger:69)
>>> Processing
>>> resource path [/WEB-INF/content/hello-world.freemarker]
>>> 2009-09-24 16:51:08,265 [TRACE]
>>> (com.opensymphony.xwork2.util.logging.commons.CommonsLogger:69)
>>> Processing
>>> resource path [/WEB-INF/content/index-success.ftl]
>>> 2009-09-24 16:51:08,265 [TRACE]
>>> (com.opensymphony.xwork2.util.logging.commons.CommonsLogger:69)
>>> Processing
>>> resource path [/WEB-INF/content/index.ftl]
>>> 2009-09-24 16:51:08,266 [TRACE]
>>> (com.opensymphony.xwork2.util.logging.commons.CommonsLogger:69)
>>> Searching
>>> for results in the class path at [WEB-INF/content/] with a result
>>> prefix of
>>> [/WEB-INF/content/asd] and action name [asd]
>>> 
>>> 
>>> 
>>> On 24/09/2009, at 16:22, Musachy Barroso wrote:
>>> 
>>>> Any traces or errors? Set the log level to TRACE
>>>> 
>>>> musachy
>>>> 
>>>> On Thu, Sep 24, 2009 at 12:20 PM, Ingo Hoffmann <i...@hoffmann.cx>
>>>> wrote:
>>>>> 
>>>>> Hi,
>>>>> 
>>>>> I have been trying to get the Convention plugin to work on
>>>>> Winstone and
>>>>> Jetty without any luck. It seems it doesn't even start.
>>>>> 
>>>>> The same .war works without issues on Tomcat.
>>>>> 
>>>>> I set org.apache.struts2.convention to DEBUG and I see on the
>>>>> Tomcat logs
>>>>> the convention plugins mapping my URLs to actions, but it doesn't
>>>>> show up
>>>>> on
>>>>> Winstone or Jetty at all. The config-browser plugin doesn't show
>>>>> any
>>>>> actions
>>>>> on the default namespace or any other namespace besides its own.
>>>>> 
>>>>> I'm using Maven 2.2.1 to build the .war. Tried Struts 2.1.6,
>>>>> 2.1.7 and
>>>>> 2.1.8
>>>>> without any luck.
>>>>> 
>>>>> Anyone with a similar experience?
>>>>> 
>>>>> Thanks,
>>>>> Ingo Hoffmann
>>>>> 
>>>>> ---------------------------------------------------------------------
>>>>> To unsubscribe, e-mail: user-unsubscr...@struts.apache.org
>>>>> For additional commands, e-mail: user-h...@struts.apache.org
>>>>> 
>>>>> 
>>>> 
>>>> 
>>>> 
>>>> --
>>>> "Hey you! Would you help me to carry the stone?" Pink Floyd
>>>> 
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: user-unsubscr...@struts.apache.org
>>>> For additional commands, e-mail: user-h...@struts.apache.org
>>>> 
>>> 
>>> 
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: user-unsubscr...@struts.apache.org
>>> For additional commands, e-mail: user-h...@struts.apache.org
>>> 
>>> 
>> 
>> 
>> 
>> -- 
>> "Hey you! Would you help me to carry the stone?" Pink Floyd
>> 
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: user-unsubscr...@struts.apache.org
>> For additional commands, e-mail: user-h...@struts.apache.org
>> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscr...@struts.apache.org
> For additional commands, e-mail: user-h...@struts.apache.org
> 


********************************************************************************
   
DISCLAIMER: This e-mail is confidential and should not be used by anyone who is
not the original intended recipient. If you have received this e-mail in error
please inform the sender and delete it from your mailbox or any other storage
mechanism. Neither Macmillan Publishers Limited nor any of its agents accept
liability for any statements made which are clearly the sender's own and not
expressly made on behalf of Macmillan Publishers Limited or one of its agents.
Please note that neither Macmillan Publishers Limited nor any of its agents
accept any responsibility for viruses that may be contained in this e-mail or
its attachments and it is your responsibility to scan the e-mail and 
attachments (if any). No contracts may be concluded on behalf of Macmillan 
Publishers Limited or its agents by means of e-mail communication. Macmillan 
Publishers Limited Registered in England and Wales with registered number 
785998 
Registered Office Brunel Road, Houndmills, Basingstoke RG21 6XS   
********************************************************************************


---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscr...@struts.apache.org
For additional commands, e-mail: user-h...@struts.apache.org

Reply via email to