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=" " 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
[EMAIL PROTECTED]/,file:/vol/home/forge/work/opensource-rw/maven-trunks/continuum/continuum-webapp/src/main/webapp/}
:WARN: failed [EMAIL PROTECTED]
:WARN: failed [EMAIL PROTECTED]
:INFO: Started SelectChannelConnector @ 0.0.0.0:9090
:WARN: failed [EMAIL PROTECTED]
[INFO] Jetty server exiting.
[INFO]
------------------------------------------------------------------------
[ERROR] BUILD ERROR
[INFO]
------------------------------------------------------------------------
[INFO] Failure
Embedded error: org.codehaus.plexus.PlexusContainerException: Error
initializaing container in
[EMAIL PROTECTED]
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 <[EMAIL PROTECTED]> 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, [EMAIL PROTECTED] 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=" " 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/