That definitely looks like a bug to me. Your code looks like it is 
perfect. The WMS you are testing against publicly accessible? If not, 
can you send me the capabilities document? I will write a test case and 
try to replicate it.

Richard

Tertre Francois wrote:
> Hi,
>  
> I would like to retrieve Infos from a WMS (MapServer 4.10.0) with the 
> getFeatureInfo request, using GeoTools (2.3.0), but the LAYERS parameter 
> is missing in my final request.
>  
> I create first my getMap request using 
> myWebMapServer.createGetMapRequest(), then, create my getFeatureInfo 
> request using myWebMapServer.createGetFeatureInfoRequest(), finally, I 
> ask the server using 
> myWebMapServer.issuerequest(myGetFeatureInfoRequest). But albeit my 
> getMapRequest has the good LAYERS parameter, my getFeatureInfoRequest 
> has not it.
>  
> Is someone know why I have this issue?
>  
> This is my code:
>  
> // START CODE
>     /**
>      * Makes a GetFeatureInfo request on the current WebMapServer.
>      * @param size Output size of the Map.
>      * @param crse Bounding Box of the Map.
>      * @param p Requested point (warning: with Java Y-axis !).
>      * @throws java.io.IOException
>      * @throws org.geotools.ows.ServiceException
>      * @return GetFeatureInfo of a point of current WebMapServer.
>      */
>     public String getFeatureInfo( Dimension size , CRSEnvelope crse , 
> Point p ) throws IOException, ServiceException {
>         StringBuffer sb = new StringBuffer();
>        
>         // GetFeatureInfo needs a GetMap before
>         GetMapRequest gmReq = wms.createGetMapRequest();
>         // We add the requested Layer
>         gmReq.addLayer( getLayerByName(layerasstring) );
>         // We set the BBOX of the requested Map
>         gmReq.setBBox( crse );
>         // We set the dimensions of the output
>         gmReq.setDimensions(size.width, size.height);
>         // We set the output format
>         gmReq.setFormat("image/png");
>         // We set the SRS
>         gmReq.setSRS( crse.getEPSGCode() );
>         // We want a transparent background
>         gmReq.setTransparent(true);
>        
>         // Now, we can create our GetFeatureInfo, from the previous GetMap
>         GetFeatureInfoRequest gfiReq = 
> wms.createGetFeatureInfoRequest(gmReq);
>         // We want request this layer
>         gfiReq.addQueryLayer( getLayerByName( layerasstring ) );
>         // We need information from this point (warning : java Y-axis 
> goes from top to bottom, geographic goes from bottom to top !)
>         gfiReq.setQueryPoint( p.x , size.height - p.y );
>        
>         // Tummy (Bidouille) used to circle an issue with LAYERS 
> parameter...
>         gfiReq.setProperty( "LAYERS" , layerasstring );
>        
>         // Debug
>         System.out.println( gmReq.getFinalURL().toString() );
>         System.out.println( gfiReq.getFinalURL().toString() );
>        
>         // We ask the server
>         GetFeatureInfoResponse gfiRep = wms.issueRequest( gfiReq );
>         // We read the response
>         sb.append( FileReader.read( gfiRep.getInputStream() ) );
>        
>         return sb.toString();
>     }
> // END CODE
>  
> - layerasstring is the name of the layer.
> - getLayerByName(String) function is a function which returns a 
> org.geotools.data.ows.Layer of the current server from his name.
> - The tummy (is it the good word for "bidouille" in french ?!) is here 
> for the moment to make the code working, but I prefer find the bug. ;-)
> - In the Debug output, the LAYERS parameter is here for gmReq (getMap), 
> but not for gfiReq (getFeatureInfo).
>  
> Thanks in advance,
> bests,
>  
> ______________________________
> François Tertre
> BRGM STI/AD
> 3, avenue Claude Guillemin
> BP 6009 - 45060 Orléans Cedex 2
> France
> Tel:+33 238 643 642
> Fax: +33 238 644 830
> Secr: +33 238 643 999
> Mail: [EMAIL PROTECTED]
> Web: http://www.brgm.fr
>  
> Le contenu de ce mél et de ses pièces jointes est destiné à l'usage 
> exclusif du
> (des) destinataire(s) expressément désigné(s) comme tel(s). En cas de 
> réception de ce
>  mél par erreur, le signaler à son expéditeur et ne pas en divulguer le 
> contenu.
> L'absence de virus a été vérifié à  l'émission du message. Il convient 
> néanmoins de
> vérifier l'absence de contamination à sa réception.
>  
> The contents of this email and any attachments are confidential. They 
> are intended for
> the named recipient(s) only. If you have received this email in error 
> please notify the
> system manager or  the sender immediately and do not disclose the 
> contents to
> anyone or make copies. eSafe scanned this email for viruses, vandals and 
> malicious
> content.
> 
> 
> ------------------------------------------------------------------------
> 
> -------------------------------------------------------------------------
> This SF.net email is sponsored by DB2 Express
> Download DB2 Express C - the FREE version of DB2 express and take
> control of your XML. No limits. Just data. Click to get it now.
> http://sourceforge.net/powerbar/db2/
> 
> 
> ------------------------------------------------------------------------
> 
> _______________________________________________
> Geotools-gt2-users mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/geotools-gt2-users


-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Geotools-gt2-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/geotools-gt2-users

Reply via email to