continuum-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Kenney Westerhof <ken...@apache.org>
Subject Re: continuum-webapp issues [was: Re: svn commit: r431764 - /maven/continuum/trunk/continuum-webapp/src/main/webapp/summary.jsp]
Date Wed, 16 Aug 2006 16:03:54 GMT

Ok, the problem is resolved: I upgraded the web.xml to the 2.4
specification. Tomcat correctly uses the 1.0 jstl and applies other 2.3 
behaviours if the web.xml is version 2.3, whereas jetty probably always 
uses the 2.4 spec, which is why that works there (although jetty:run
doesn't work here..).

I also updated the c:urls to ww:urls.

What I see is a lot of non-standard actions, like

<ww:url value="${notifier.type}NotifierEdit!default.action">.

Could this easily be changed to

<ww:url action="edit${notifier.type}Notifier">

? Seems cleaner to me.


Thanks for your patience and sorry about all the spam! :)

-- Kenney

Kenney Westerhof wrote:
> (fwd again, now using correct address.. does anybody have a nice 
> alternative for Thunderbird on linux? :/ )
> 
> ---
> 
> Ok, I'm trying to get this to work.
> 
> It seems that the <ww: tags use OGNL expressions to set/get values from
> the action. (I'm missing a design document on how actions/jsp/etc are
> related, but I'm figuring it out... slowly..).
> 
> Code snippet from summary.jsp (simplified):
> 
> ----
>         <ec:table items="projects"
>                   var="project">
>           <ec:row highlightRow="true">
>             <ec:column property="state" title="&nbsp;" width="1%"
> cell="org.apache.maven.continuum.web.view.StateCell"/>
>             <ec:column property="name"
> title="summary.projectTable.name" width="48%">
>               <a href="<ww:url action='projectView.action'>
>                   <ww:param name='projectId' value='${project.id}' />
>                 </ww:url>">${project.name}</a>
>             </ec:column>
> ---
> 
>  From what I understand the following happens when you go to
> /summary.action:
> 
> * The SummaryAction class is executed and the summary.jsp used to render
>   the output.
> 
> * The <ec:table> uses the SummaryAction.getProjects()'s value to iterate
>   over the projects (how it retrieves that is a mystery; it must somehow
>   be registered as a PageContext scope'd variable 'projects'??)
>   The <ec:*> taglib only uses the JspPageContext e.a. to retrieve/store
>   variables.
> 
> * The <ec:table> makes the current item (from the projects list)
>   available in a variable 'project'. This is only so that the
>   ${project.*} expressions in plain-text (i.e. not within <tags> and
>   their parameters) can be evaluated by the JspWriter.
> 
> * Next taglib: webwork. The <ww:url> and <ww:param> values use OGNL
>   expressions to evaluate parameters. So <ww:param . value="project.id">
>   actually tries SummaryAction.getProject().getId().
> 
> * Since the extremecomponents taglib doesn't update the action with the
>   current loop variable (call SummaryAction.setProject(project), which I
>   added to test this), the <ww:param> tag doesn't work since the value
>   can't be evaluated.
> 
> Some more strange things:
> 
> * ${project.id} works outside of tags (but inside <ec:column>), since
>   'project' is a PageContext scoped variable.
> 
> * <c:set var="test" value="${project.id}"/> doesn't work; produces
>   '${project.id}' for ${test}.
> 
> * <c:set var="test" property="${project.id}"/> doesn't work; produces
>   '' for ${test}.
> 
> * <c:set var="test" property="project.id"/> doesn't work; produces
>   '' for ${test}.
> 
> * <c:set var="test">${project.id}</c:set> doesn't work; produces
>   '${project.id}' for ${test}.
> 
> Any ideas? Working examples? (not the <a href="<ww:url
> action=".."/>?projectId=${project.id}">..</a> preferrably ;)
> 
> -- Kenney
> 
> Kenney Westerhof wrote:
>>
>>
>> Carlos Sanchez wrote:
>>> i've seen this problem with tomcat. Works fine with jetty.
>>
>> Aha.
>>
>> I couldn't get jetty to work:
>>
>> [continuum-webapp]$ mvn jetty:run
>> ....
>>
>> [INFO] Initializing JDO.
>> 13:11:26,739 INFO  JPOX.JDO 
>> [org.jpox.AbstractPersistenceManagerFactory] PersistenceManagerFactory 
>> - Vendor: JPOX  Version: Unknown
>> 13:11:26,745 INFO  JPOX.JDO 
>> [org.jpox.AbstractPersistenceManagerFactory] PersistenceManagerFactory 
>> initialised for datastore 
>> URL=jdbc:derby:/vol/home/forge/work/opensource-rw/maven-trunks/continuum/continuum-webapp/src/main/webapp/WEB-INF/database;create=true

>> driver=org.apache.derby.jdbc.EmbeddedDriver userName=sa
>> 13:11:26,823 INFO  org.quartz.simpl.RAMJobStore 
>> [org.quartz.simpl.RAMJobStore] RAMJobStore initialized.
>> 13:11:26,824 INFO  org.quartz.impl.StdSchedulerFactory 
>> [org.quartz.impl.StdSchedulerFactory] Quartz scheduler 
>> 'defaultScheduler' initialized from an externally provided properties 
>> instance.
>> 13:11:26,826 INFO  org.quartz.impl.StdSchedulerFactory 
>> [org.quartz.impl.StdSchedulerFactory] Quartz scheduler version: 1.4.5
>> 13:11:26,828 INFO  org.quartz.core.QuartzScheduler 
>> [org.quartz.core.QuartzScheduler] Scheduler 
>> defaultScheduler_$_NON_CLUSTERED started.
>> [WARNING] Could not find the executable 'ant' in the path '[]'.
>> [WARNING] Could not find the executable 'maven' in the path '[]'.
>> :WARN:  failed 
>> ContextHandler@1248f2b{/,file:/vol/home/forge/work/opensource-rw/maven-trunks/continuum/continuum-webapp/src/main/webapp/}

>>
>> :WARN:  failed ContextHandlerCollection@ad97f5
>> :WARN:  failed HandlerCollection@d38976
>> :INFO:  Started SelectChannelConnector @ 0.0.0.0:9090
>> :WARN:  failed Server@86988
>> [INFO] Jetty server exiting.
>> [INFO] 
>> ------------------------------------------------------------------------
>> [ERROR] BUILD ERROR
>> [INFO] 
>> ------------------------------------------------------------------------
>> [INFO] Failure
>>
>> Embedded error: org.codehaus.plexus.PlexusContainerException: Error 
>> initializaing container in 
>> org.codehaus.plexus.container.initialization.StartLoadOnStartComponentsPhase@18f729c.

>>
>> Component composition failed. No field of type: 'interface 
>> org.apache.maven.MavenTools' exists in class 
>> 'org.apache.maven.project.DefaultMavenProjectBuilder'. Component: 
>> role: 'org.apache.maven.project.MavenProjectBuilder', implementation: 
>> 'org.apache.maven.project.DefaultMavenProjectBuilder'
>> [INFO] 
>> ------------------------------------------------------------------------
>> [INFO] For more information, run Maven with the -e switch
>> [INFO] 
>> ------------------------------------------------------------------------
>> [INFO] Total time: 1 minute 24 seconds
>> [INFO] Finished at: Wed Aug 16 13:11:26 CEST 2006
>> [INFO] Final Memory: 18M/52M
>> [INFO] 
>> ------------------------------------------------------------------------
>> FATAL ERROR: Unable to configure the Maven application
>> For more information, run with the -e flag
>> :INFO:  Shutdown hook executing
>> :INFO:  Shutdown hook complete
>> 13:11:28,867 INFO  JPOX.RDBMS 
>> [org.jpox.store.rdbms.adapter.RDBMSAdapterFactory] RDBMS Adapter 
>> initialised : CloudscapeAdapter : Apache Derby version=10.1.2.1, 
>> major=10, minor=1, revision=2
>> Identifier Names : UPPERCASE
>> Driver name=Apache Derby Embedded JDBC Driver, version=10.1.2.1, 
>> major=10, minor=1
>> Identifier Max Lengths : Table=128  Column=128  Constraint=18  
>> Index=18  Delimeters="
>> Identifier Support in DDL : catalog=false  schema=true
>> 13:11:28,868 INFO  JPOX.RDBMS.SCHEMA 
>> [org.jpox.store.rdbms.RDBMSManager] Initialising Catalog "", Schema 
>> "SA" using "SchemaTable" auto-start option
>> 13:11:29,761 INFO  JPOX.RDBMS.SCHEMA 
>> [org.jpox.store.rdbms.RDBMSManager] Catalog "", Schema "SA" 
>> initialised - managing 0 classes
>> org.codehaus.plexus.personality.plexus.lifecycle.phase.StoppingException: 
>> Error storing the Continuum configuration.
>>         at 
>> org.apache.maven.continuum.DefaultContinuum.stopContinuum(DefaultContinuum.java:2077)

>>
>>         at 
>> org.apache.maven.continuum.DefaultContinuum$1.run(DefaultContinuum.java:163) 
>>
>> Caused by: 
>> org.apache.maven.continuum.configuration.ConfigurationStoringException: 
>> Error writting configuration to database.
>>         at 
>> org.apache.maven.continuum.configuration.DefaultConfigurationService.store(DefaultConfigurationService.java:270)

>>
>>         at 
>> org.apache.maven.continuum.DefaultContinuum.stopContinuum(DefaultContinuum.java:2073)

>>
>>         ... 1 more
>> Caused by: org.apache.maven.continuum.store.ContinuumStoreException: 
>> Not detached: null
>>         at 
>> org.apache.maven.continuum.store.JdoContinuumStore.updateObject(JdoContinuumStore.java:602)

>>
>>         at 
>> org.apache.maven.continuum.store.JdoContinuumStore.updateSystemConfiguration(JdoContinuumStore.java:1045)

>>
>>         at 
>> org.apache.maven.continuum.configuration.DefaultConfigurationService.store(DefaultConfigurationService.java:266)

>>
>>         ... 2 more
>> Caused by: org.codehaus.plexus.jdo.PlexusStoreException: Not detached: 
>> null
>>         at 
>> org.codehaus.plexus.jdo.PlexusJdoUtils.updateObject(PlexusJdoUtils.java:74) 
>>
>>         at 
>> org.apache.maven.continuum.store.JdoContinuumStore.updateObject(JdoContinuumStore.java:598)

>>
>>         ... 4 more
>>
>>
>> I thought this was fixed?
>>
>> Any idea?
>>
>> -- Kenney
>>
>>>
>>> Please add a jira to put back the right url composition, your changes
>>> won't work in some cases (we just moved all url composition to use
>>> c:url)
>>>
>>> On 8/15/06, Brett Porter <brett@apache.org> wrote:
>>>> There are two versions of c: - core, and core_rt. If you are 
>>>> including a
>>>> TLD in the webapp, make sure you have the right one.
>>>>
>>>> I usually just omit the tlds in the webapp and use:
>>>> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
>>>> (note this is JSTL 1.1, the URL is different for JSTL 1.0, which might
>>>> also be the problem).
>>>>
>>>> This gets pulled from the JAR. Seems to work just fine in MRM.
>>>>
>>>> - Brett
>>>>
>>>> On 16/08/2006 11:41 AM, kenney@apache.org wrote:
>>>> > Author: kenney
>>>> > Date: Tue Aug 15 18:41:17 2006
>>>> > New Revision: 431764
>>>> >
>>>> > URL: http://svn.apache.org/viewvc?rev=431764&view=rev
>>>> > Log:
>>>> > Use <c:url because of the url completion, but not c:param (for now).
>>>> >
>>>> > <c:*> tags don't evaluate the expressions, somehow. Not sure why

>>>> this doesn't
>>>> > work..
>>>> >
>>>> > This problem also exists in schedules.jsp (and probably other 
>>>> places).
>>>> >
>>>> > Added a workaround for the main page for now.
>>>> >
>>>> > Modified:
>>>> >     
>>>> maven/continuum/trunk/continuum-webapp/src/main/webapp/summary.jsp
>>>> >
>>>> > Modified: 
>>>> maven/continuum/trunk/continuum-webapp/src/main/webapp/summary.jsp
>>>> > URL: 
>>>> http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-webapp/src/main/webapp/summary.jsp?rev=431764&r1=431763&r2=431764&view=diff

>>>>
>>>> > 
>>>> ==============================================================================

>>>>
>>>> > --- 
>>>> maven/continuum/trunk/continuum-webapp/src/main/webapp/summary.jsp 
>>>> (original)
>>>> > +++ 
>>>> maven/continuum/trunk/continuum-webapp/src/main/webapp/summary.jsp 
>>>> Tue Aug 15 18:41:17 2006
>>>> > @@ -19,13 +19,8 @@
>>>> >            <ec:row highlightRow="true">
>>>> >              <ec:column property="state" title="&nbsp;" width="1%"

>>>> cell="org.apache.maven.continuum.web.view.StateCell"/>
>>>> >              <ec:column property="name" 
>>>> title="summary.projectTable.name" width="48%">
>>>> > -                <!--this doesn't work as the project.id isn't 
>>>> interpolated
>>>> > -                <c:url var="projectViewUrl" 
>>>> value="/projectView.action">
>>>> > -                  <c:param name="projectId" value="${project.id}"/>
>>>> > -                </c:url>
>>>> > -                <a href="<c:out 
>>>> value='${projectViewUrl}'/>">${project.name}</a>
>>>> > -                -->
>>>> > -                <a 
>>>> href="/projectView.action?projectId=${project.id}">${project.name}</a>
>>>> > +                <c:url var="projectViewUrl" 
>>>> value="/projectView.action"/>
>>>> > +                <a href="<c:out 
>>>> value='${projectViewUrl}?projectId=${project.id}'/>">${project.name}</a>

>>>>
>>>> >              </ec:column>
>>>> >              <ec:column property="version" 
>>>> title="summary.projectTable.version" width="13%"/>
>>>> >              <ec:column property="buildNumber" 
>>>> title="summary.projectTable.build" width="5%" 
>>>> cell="org.apache.maven.continuum.web.view.BuildCell"/>
>>>> >
>>>> >
>>>>
>>>>
>>>> -- 
>>>> Apache Maven - http://maven.apache.org/
>>>> Better Builds with Maven - http://library.mergere.com/
>>>>
>>>
>>>
> 

Mime
View raw message