How does your custom service implement IEngineService.getLink(...)?

If you are closely adhering to the code outlined at http://wiki.apache.org/jakarta-tapestry/FriendlyUrls then this method should look something like this:

   public static final String SERVICE_NAME = "EnrollmentReportService";

public ILink getLink(IRequestCycle cycle, IComponent component, Object[] parameters)
   {
String suffix = cycle.getEngine().getSpecification().getProperty("org.apache.tapestry.service-url-suffix"); // This ILink implementation refers to the one outlined at http://wiki.apache.org/jakarta-tapestry/FriendlyUrls
       return new Link(cycle, SERVICE_NAME + suffix, null, parameters);
   }

All custom services should also override AbstractService.getServiceContext() like so:

   protected String[] getServiceContext(RequestContext requestContext)
   {
return requestContext.getParameters(Tapestry.SERVICE_QUERY_PARAMETER_NAME);
   }

Assuming your service-url-suffix = ".do", this will generate urls that look like:

http://localhost:8100/registrar-student/EnrollmentReportService.do

Much prettier...

Paul

Skriloff, Nicholas wrote:

We are using friendly URLs within the confines of Tapestry 3.0.3.  I
have a service called EnrollmentReportService declared in our
application file. The service's job is to return the list of courses for
which a student is enrolled as a pdf.  IT is working fine most of the
time except for when I run my automated web test.
   <service name="EnrollmentReportService"
class="edu.darden.registrar.student.reports.EnrollmentReportService"/>

Web.xml has the following

   <servlet-mapping>
       <servlet-name>registrar-student</servlet-name>
       <url-pattern>*.tap</url-pattern>
   </servlet-mapping>
   <servlet-mapping>
       <servlet-name>registrar-student</servlet-name>
       <url-pattern>*.svc</url-pattern>
   </servlet-mapping>

If I am at working directly in firefox and click the submit button, I
get a url generated like follows
http://localhost:8100/registrar-student/Home.tap?service=EnrollmentRepor
tService&sp=...

However, when I run my automated Selenium test, where the test clicks
the submit button, I get
http://localhost:8100/registrar-student/home.svc?service=EnrollmentRepor
tService&sp=

THIS CAUSES MY HOME PAGE TO COME UP INSTEAD OF MY REPORT. NOTICE THE
DIFFERENCE BETWEEN HOME.TAP? AND HOME.SVC.
ONCE THAT HAPPENS, EVEN IF I GO BACK INTO FIREFOX AND ACT AS A USER
AGAIN, THE PROBLEM PERSISTS. Any Thoughts?
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to