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