yes I think this is exactly what was happening :-( On 29 October 2012 11:09, Morten Olav Hansen <[email protected]> wrote: > Yes, its because every controller is mapped to a path.. so if its > DataSetController, then its mapped to /dataSets, so if you add another value > = "/dataSets", the end result would be /dataSets/dataSets > > (If I understood you correctly) > > -- > Morten > > > > On Mon, Oct 29, 2012 at 12:07 PM, Bob Jolliffe <[email protected]> > wrote: >> >> OK that seems fine now, thanks. >> >> The problem goes away when I remove the 'value' parameter from the >> RequestMapping. >> >> # >> On 29 October 2012 10:44, Morten Olav Hansen <[email protected]> wrote: >> > I have sent him a fix for this.. >> > >> > -- >> > Morten >> > >> > >> > >> > On Mon, Oct 29, 2012 at 11:43 AM, Lars Helge Ă˜verland >> > <[email protected]> >> > wrote: >> >> >> >> Hi Bob, it should be possible to define a more specific mapping in the >> >> concrete controller class. To see the stack trace in the log you can >> >> start any single web-module with mvn clean jetty:run . Your build >> >> cycle is then to run mvn install on the dhis-web-api module, then mvn >> >> clean jetty:run on e.g. dhis-web-reporting module. >> >> >> >> Lars >> >> >> >> On Sun, Oct 28, 2012 at 10:43 PM, Bob Jolliffe <[email protected]> >> >> wrote: >> >> > Hi Morten >> >> > >> >> > On 28 October 2012 13:18, Morten Olav Hansen <[email protected]> >> >> > wrote: >> >> >> Hi Bob >> >> >> >> >> >> This should be as easy as adding another method.. we already have >> >> >> getObjectList (I think thats the name.. ) in our ABC. What you will >> >> >> need to >> >> >> do, is to add another method in DataSetController, maybe call it >> >> >> getDataSetsDSD (or something similar). And have a request-mapping >> >> >> that >> >> >> points to both dataSets and dataSets.dsd, this together with the >> >> >> consumed = >> >> >> mimetype option, should give you a unique combination (spring mvc >> >> >> will >> >> >> complain if two requestmappings point to the same method) >> >> > >> >> > This is all what I figured. Estimated 2 hours work and 2 days later >> >> > :-) So I have a method in DataSetController with a signature like: >> >> > >> >> > @RequestMapping( value = DataSetController.RESOURCE_PATH + ".dsd", >> >> > produces = "application/dsd+xml" ) >> >> > public void getStructure( @RequestParam Map<String, String> >> >> > parameters, HttpServletResponse response ) >> >> > >> >> > Which is I think like you say (other than produces rather than >> >> > consumes). But all I get is the "Aw snap" page with nothing in the >> >> > logs whatsoever which makes this really difficult to debug. (I don't >> >> > know if you have any tips for efficient debugging, but currently my >> >> > edit-compile-test cycle is also very unfriendly, going into many >> >> > minutes). >> >> > >> >> > I *think* (and I feel I am no expert on this), that the getObjectList >> >> > in abstract controller is catching ALL get requests to dataSets. I >> >> > had originally thought that providing a more precise match to the >> >> > request in the dataSets class would trump the more general match in >> >> > the abstract controller (you will recognize xslt as having dominated >> >> > my thinking on this matching business). Anyway it looks like it >> >> > doesn't work like this. If two controller methods are an ambiguous >> >> > match, spring seems to just go pop. >> >> > >> >> > Thats ok, but if it is the case, then either we would have to make >> >> > specific exclusions to the abstract controller match (which could get >> >> > ugly as it is used for much more than datasets), or move back away >> >> > from /api/dataSets to something like /api/dsd. >> >> > >> >> > Can you confirm that I am reading this correctly. >> >> > >> >> > Bob >> >> > >> >> > >> >> > >> >> >> >> >> >> Try it... if its not working, I will try and add it for you >> >> >> >> >> >> -- >> >> >> Morten >> >> >> >> >> >> >> >> >> >> >> >> On Sat, Oct 27, 2012 at 6:54 PM, Bob Jolliffe >> >> >> <[email protected]> >> >> >> wrote: >> >> >>> >> >> >>> Hi Morten >> >> >>> >> >> >>> I am struggling to grasp something (well actually to do something) >> >> >>> which I thought would be fairly simple, and probably even is if >> >> >>> only I >> >> >>> knew how ... >> >> >>> >> >> >>> It has to do with where you have been clever with the >> >> >>> AbstractCrudController in the web api. >> >> >>> >> >> >>> Something like DataSetController extends this. >> >> >>> >> >> >>> Currently /api/dataSets returns you the full list of datasets >> >> >>> formatted in html. And using either the extension (.xml or .json) >> >> >>> or >> >> >>> accept headers we can get xml or json renditions of the same. >> >> >>> >> >> >>> But I want to return an alternative xml description of the >> >> >>> structure >> >> >>> of the datasets (lets call it as data structure definition or DSD). >> >> >>> Is there any way to map a request which uses either an extension >> >> >>> (eg >> >> >>> dataSets.dsd) or accept header (eg application/dsd+xml) which DOES >> >> >>> NOT >> >> >>> get routed through the getObjectList method of >> >> >>> AbstractCrudController? >> >> >>> >> >> >>> Bob >> >> >> >> >> >> >> >> > >> >> > _______________________________________________ >> >> > Mailing list: https://launchpad.net/~dhis2-devs >> >> > Post to : [email protected] >> >> > Unsubscribe : https://launchpad.net/~dhis2-devs >> >> > More help : https://help.launchpad.net/ListHelp >> > >> > > >
_______________________________________________ Mailing list: https://launchpad.net/~dhis2-devs Post to : [email protected] Unsubscribe : https://launchpad.net/~dhis2-devs More help : https://help.launchpad.net/ListHelp

