RE: [Geoserver-users] RE: Adding the SLD body dynamically

Hi Lee Wai See,

2. The sld can be declared in a number of ways. In my case the
BoundingBox element is created dynamically from servlet input parameters so
I just build it in the simplest possible manner as a new StringBuffer
instance:
  StringBuffer sld = new StringBuffer();
  sld.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n");
  sld.append("<ogc:GetMap\n");
  sld.append(" xmlns:ogc=\"http://www.opengis.net/ows\\&quot;\\n&quot;\);
  sld.append(" xmlns:gml=\"http://www.opengis.net/gml\\&quot;\\n&quot;\);
  sld.append(" version=\"1.1.1\" service=\"WMS\">\n");
  sld.append(" <StyledLayerDescriptor version=\"1.0.0\">\n");
.
      .
  A more sophisticated approach would be to create the xml using
perhaps Xerces or Jdom before writing it to the geocon connection.
  In some cases it might be useful to read the sld from the
filesystem. In other cases it is useful to load an sld file as a xml
template and change specific elements as needed. The sld example I indicated
is just a specific instance for a client selected bounding box.

1. The display image/jpeg can be returned directly as the servlet response
output stream.

If you are just using html or jsp you could call the servlet to build your
WMS image from an img src:
<html>
<body>
<img height="100%" width="100%"
src="http://ims.cr.usgs.gov/servlet19/com.esri.wms.Esrimap/USGS_EDC_National
_Atlas?Service=WMS&Version=1.1.1&request=GetMap&layers=ATLAS_ROADS_INTERSTAT
E&format=image/png&transparent=TRUE&srs=EPSG:4326&bbox=-109.59893035888672,3
6.71657752990723,-101.73796844482422,41.28876972198486&WIDTH=1000&HEIGHT=582
"/>
</html>
</body>

Or

If the calling servlet is from svg, as in my case, I simply call the servlet
from the image element xlink:href using multiple overlapping png image
elements with transparent set to true. (With many thanks to a hint from
cholmes)

<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20001102//EN"
  "http://www.w3.org/TR/SVG/DTD/svg10.dtd&quot; >
<svg preserveAspectRatio="xMinYMin"
  viewBox="-109.59893035888672 -41.28876972198486 7.8609619140625
4.572192192077637"
  xmlns:xlink="http://www.w3.org/1999/xlink&quot;
  xmlns="http://www.w3.org/2000/svg&quot;
  zoomAndPan="magnify">

<g id="canvas">
<rect x="-113.52941131591797" y="-45.21925067901611" width="31.44384765625"
height="31.44384765625" style="fill:none"/>
    <g id="WMSGeothermal">
      <image id="img" x="-109.59893035888672" y="-41.28876972198486"
width="7.8609619140625" height="4.572192192077637"
xlink:href="http://localhost/geoserver/wms?request=GetMap&amp;layers=geo:cou
nty&amp;styles=county&amp;format=image/png&amp;transparent=TRUE&amp;srs=EPSG
:4326&amp;bbox=-109.59893035888672,36.71657752990723,-101.73796844482422,41.
28876972198486&amp;WIDTH=1000&amp;HEIGHT=582">
      </image>
    </g>
    <g id="WMSUSGS_Atlas">
      <image id="img" x="-109.59893035888672" y="-41.28876972198486"
width="7.8609619140625" height="4.572192192077637"
xlink:href="http://ims.cr.usgs.gov/servlet19/com.esri.wms.Esrimap/USGS_EDC_N
ational_Atlas?Service=WMS&amp;Version=1.1.1&amp;request=GetMap&amp;layers=AT
LAS_ROADS_INTERSTATE&amp;format=image/png&amp;transparent=TRUE&amp;srs=EPSG:
4326&amp;bbox=-109.59893035888672,36.71657752990723,-101.73796844482422,41.2
8876972198486&amp;WIDTH=1000&amp;HEIGHT=582">
      </image>
    </g>
  </g><!-- canvas -->
</svg>

Hopefully I'm answering the right questions.

rkgeorge

-----Original Message-----
From: geoserver-users-admin@lists.sourceforge.net
[mailto:geoserver-users-admin@lists.sourceforge.net] On Behalf Of
leewse@anonymised.com
Sent: Sunday, February 26, 2006 2:16 AM
To: Randy George
Cc: geoserver-users@lists.sourceforge.net
Subject: RE: [Geoserver-users] RE: Adding the SLD body dynamically

Hi Randy George,

Thanks for the information given. They should be useful for me. However, I
still have some doubts, which I hope you can clear them for me:

1. With respect to the java code snippet to feed a custom SLD to a
wms/GetMap post, after getting back the response as an image file, how do
i display this image on my jsp page?

2. Again, with respect to the java code snippet, what is the sld declared?

Thank you.

Regards,
Lee Wai See

Hi Lee Wai See,

  I have recently been working with this as well. Alex Petkov has a
nice example: http://docs.codehaus.org/display/GEOSDOC/SLD+Snippets

Look at the bottom. If you take out the first named layer it will work
directly with the geoserver1.3.war demo/sampleRequest/ using the
TestWfsPost

Also add the topp: prefix to states => topp:states

url:
http://localhost:8080/geoserver/wms/GetNap

body:
<?xml version="1.0" encoding="UTF-8"?>
<ogc:GetMap
xmlns:ogc="http://www.opengis.net/ows&quot;
xmlns:gml="http://www.opengis.net/gml&quot;
version="1.1.1" service="WMS">
  <StyledLayerDescriptor version="1.0.0">
   <NamedLayer>
    <Name>topp:states</Name>
     <NamedStyle>
      <Name>population</Name>
     </NamedStyle>
    </NamedLayer>
   </StyledLayerDescriptor>
   <BoundingBox srsName="http://www.opengis.net/gml/srs/epsg.xml#4326&quot;&gt;
    <gml:coord>
     <gml:X>-130.0</gml:X>
     <gml:Y>24.0</gml:Y>
    </gml:coord>
    <gml:coord>
     <gml:X>-66.0</gml:X>
     <gml:Y>50.0</gml:Y>
    </gml:coord>
   </BoundingBox>
   <Output><Format>image/png</Format>
    <Size>
     <Width>600</Width>
     <Height>320</Height>
    </Size>
   </Output>
   <Exceptions>application/vnd.ogc.se+xml</Exceptions>
  </ogc:GetMap>

I don't know the way mapbuilder works but here is a sample code for using
java to feed a custom sld to a wms/GetMap Post

Snippet:
try {
  URL u = new URL("http://www.web-demographics.com/geoserver/wms/GetMap&quot;\);
  HttpURLConnection geocon = (HttpURLConnection)u.openConnection();
  geocon.setAllowUserInteraction(false);
  geocon.setRequestMethod("POST");
  geocon.setRequestProperty("Content-Type", "application/xml");
  geocon.setDoOutput(true);
  geocon.setDoInput(true);
  geocon.setUseCaches(false);
  System.out.println("GetImage\n"+sld.toString());
  xmlOut = new PrintWriter(new BufferedWriter(new
           OutputStreamWriter(geocon.getOutputStream())));
  xmlOut.write(sld.toString());
  xmlOut.flush();
  xmlOut.close();
  response.setHeader("Cache-Control", "no-store, no-cache,
                      must-revalidate");
  response.addHeader("Cache-Control", "post-check=0, pre-check=0");
  response.setHeader("Pragma", "no-cache");
  response.setContentType("image/jpeg");
  OutputStream outsld = response.getOutputStream();
  int c;
  InputStream in = geocon.getInputStream();
  while ((c = in.read()) != -1) outsld.write(c);
  in.close();
  outsld.close();

} catch (IOException e) {
  e.printStackTrace();
} catch (Exception e) {
  System.out.println("WMSFeature: "+e.toString());
}

Here is another example sld for filtering by bounding box and parameter
value:
<?xml version="1.0" encoding="UTF-8"?>
<ogc:GetMap
xmlns:ogc="http://www.opengis.net/ows&quot;
xmlns:gml="http://www.opengis.net/gml&quot;
version="1.1.1" service="WMS">
  <StyledLayerDescriptor version="1.0.0">
<NamedLayer>
  <Name>geo:USGS_Quat_Faults</Name>
  <UserStyle>
  <Name>geothermalgeo:USGS_Quat_Faults</Name>
  <Title>Geothermal</Title>
  <Abstract>Geothermal filters</Abstract>
    <FeatureTypeStyle>
      <Rule>
             <!-- Theme 1 -->
              <ogc:Filter xmlns:gml="http://www.opengis.net/gml&quot;&gt;
                <ogc:PropertyIsBetween>
                  <ogc:PropertyName>SLIPRATE</ogc:PropertyName>
                  <ogc:LowerBoundary>
                    <ogc:Literal>0.001</ogc:Literal>
                  </ogc:LowerBoundary>
                  <ogc:UpperBoundary>
                    <ogc:Literal>17.5005</ogc:Literal>
                  </ogc:UpperBoundary>
                </ogc:PropertyIsBetween>
              </ogc:Filter>
        <LineSymbolizer>
          <Stroke>
            <CssParameter name="stroke">
              <ogc:Literal>#0000FF</ogc:Literal>
            </CssParameter>
            <CssParameter name="stroke-width">
              <ogc:Literal>2</ogc:Literal>
            </CssParameter>
          </Stroke>
        </LineSymbolizer>
      </Rule>
      <Rule>
             <!-- Theme 2 -->
              <ogc:Filter xmlns:gml="http://www.opengis.net/gml&quot;&gt;
                <ogc:PropertyIsBetween>
                  <ogc:PropertyName>SLIPRATE</ogc:PropertyName>
                  <ogc:LowerBoundary>
                    <ogc:Literal>17.5005</ogc:Literal>
                  </ogc:LowerBoundary>
                  <ogc:UpperBoundary>
                    <ogc:Literal>35</ogc:Literal>
                  </ogc:UpperBoundary>
                </ogc:PropertyIsBetween>
              </ogc:Filter>
        <LineSymbolizer>
          <Stroke>
            <CssParameter name="stroke">
              <ogc:Literal>#FF0000</ogc:Literal>
            </CssParameter>
            <CssParameter name="stroke-width">
              <ogc:Literal>2</ogc:Literal>
            </CssParameter>
          </Stroke>
        </LineSymbolizer>
      </Rule>
  </FeatureTypeStyle>
  </UserStyle>
</NamedLayer>
</StyledLayerDescriptor>
   <BoundingBox srsName="http://www.opengis.net/gml/srs/epsg.xml#4326&quot;&gt;
    <gml:coord>
     <gml:X>-116.01796340942383</gml:X>
     <gml:Y>36.40119743347168</gml:Y>
    </gml:coord>
    <gml:coord>
     <gml:X>-114.8682632446289</gml:X>
     <gml:Y>37.33532905578613</gml:Y>
    </gml:coord>
   </BoundingBox>
   <Output><Format>image/jpeg</Format>
    <Size>
     <Width>1000</Width>
     <Height>813</Height>
    </Size>
   </Output>
   <Exceptions>application/vnd.ogc.se+xml</Exceptions>
  </ogc:GetMap>

Hope this helps
Rkgeorge

-----Original Message-----
From: geoserver-users-admin@lists.sourceforge.net
[mailto:geoserver-users-admin@lists.sourceforge.net] On Behalf Of Lee Wai
See
Sent: Friday, February 24, 2006 12:35 AM
To: 'Brent Owens'
Cc: geoserver-users@lists.sourceforge.net
Subject: RE: [Geoserver-users] RE: Adding the SLD body dynamically

Hi Brent,

Thank you for your reply. Pardon me, but the SLD-POST link under the URL
you
have given to me does not contain any information. Could you please point
out to me where I can get relevant information to help in the
implementation
of my desired feature as described? Thank you.

Regards,
Lee Wai See
ST Electronics (Info-Software Systems) Pte Ltd

-----Original Message-----
From: geoserver-users-admin@lists.sourceforge.net
[mailto:geoserver-users-admin@lists.sourceforge.net] On Behalf Of Brent
Owens
Sent: Friday, February 24, 2006 3:24 PM
To: Lee Wai See
Cc: geoserver-users@lists.sourceforge.net
Subject: Re: [Geoserver-users] RE: Adding the SLD body dynamically

You should be able to do something like that using SLD-POST. There is
some information on SLDs here:

http://docs.codehaus.org/display/GEOSDOC/SLD%20Explanations%20and%20Samples

It is a good starting point.

Brent Owens
(The Open Planning Project)

Lee Wai See wrote:

Hi,

I want to add the SLD body of the map dynamically rather than
statically through the context.xml file. That is, I want to display
not all, but only some of the features, of a map layer depending on
the input from the user. Can anyone be kind enough to give advice on
how this can be done in GeoServer ands MapBuilder?

Hope I am clear in my question. Thanks.

Regards,
Lee Wai See
ST Electronics (Info-Software Systems) Pte Ltd

[This e-mail is confidential and may be priviledged. If you are not the
intended recipient, please kindly notify us immediately and delete the

message

from your system; please do not copy or use it for any purpose, nor

disclose

its contents to any other person. Thank you.]
---ST Electronics Group---

-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting
language
that extends applications into web and mobile media. Attend the live
webcast
and join the prime developer group breaking into this new coding
territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
_______________________________________________
Geoserver-users mailing list
Geoserver-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-users

-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting
language
that extends applications into web and mobile media. Attend the live
webcast
and join the prime developer group breaking into this new coding
territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
_______________________________________________
Geoserver-users mailing list
Geoserver-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-users

-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting
language
that extends applications into web and mobile media. Attend the live
webcast
and join the prime developer group breaking into this new coding
territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
_______________________________________________
Geoserver-users mailing list
Geoserver-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-users

-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
_______________________________________________
Geoserver-users mailing list
Geoserver-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-users

Mind if I put your guy's conversation into the FAQ? There is some really good information here that I'm sure lots of people would love to have.

I will clean it all up and just take out the important points.

Brent Owens
(The Open Planning Project)

randy wrote:

Hi Lee Wai See,

2. The sld can be declared in a number of ways. In my case the
BoundingBox element is created dynamically from servlet input parameters so
I just build it in the simplest possible manner as a new StringBuffer
instance:
  StringBuffer sld = new StringBuffer();
  sld.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n");
  sld.append("<ogc:GetMap\n");
  sld.append(" xmlns:ogc=\"http://www.opengis.net/ows\\&quot;\\n&quot;\);
  sld.append(" xmlns:gml=\"http://www.opengis.net/gml\\&quot;\\n&quot;\);
  sld.append(" version=\"1.1.1\" service=\"WMS\">\n");
  sld.append(" <StyledLayerDescriptor version=\"1.0.0\">\n");
. .
  A more sophisticated approach would be to create the xml using
perhaps Xerces or Jdom before writing it to the geocon connection.
  In some cases it might be useful to read the sld from the
filesystem. In other cases it is useful to load an sld file as a xml
template and change specific elements as needed. The sld example I indicated
is just a specific instance for a client selected bounding box.

1. The display image/jpeg can be returned directly as the servlet response
output stream.

If you are just using html or jsp you could call the servlet to build your
WMS image from an img src:
<html>
<body>
<img height="100%" width="100%"
src="http://ims.cr.usgs.gov/servlet19/com.esri.wms.Esrimap/USGS_EDC_National
_Atlas?Service=WMS&Version=1.1.1&request=GetMap&layers=ATLAS_ROADS_INTERSTAT
E&format=image/png&transparent=TRUE&srs=EPSG:4326&bbox=-109.59893035888672,3
6.71657752990723,-101.73796844482422,41.28876972198486&WIDTH=1000&HEIGHT=582
"/>
</html>
</body>

Or

If the calling servlet is from svg, as in my case, I simply call the servlet
from the image element xlink:href using multiple overlapping png image
elements with transparent set to true. (With many thanks to a hint from
cholmes)

<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20001102//EN"
  "http://www.w3.org/TR/SVG/DTD/svg10.dtd&quot; >
<svg preserveAspectRatio="xMinYMin" viewBox="-109.59893035888672 -41.28876972198486 7.8609619140625
4.572192192077637"
  xmlns:xlink="http://www.w3.org/1999/xlink&quot;
  xmlns="http://www.w3.org/2000/svg&quot;
  zoomAndPan="magnify">

<g id="canvas">
<rect x="-113.52941131591797" y="-45.21925067901611" width="31.44384765625"
height="31.44384765625" style="fill:none"/>
    <g id="WMSGeothermal">
      <image id="img" x="-109.59893035888672" y="-41.28876972198486"
width="7.8609619140625" height="4.572192192077637"
xlink:href="http://localhost/geoserver/wms?request=GetMap&amp;layers=geo:cou
nty&amp;styles=county&amp;format=image/png&amp;transparent=TRUE&amp;srs=EPSG
:4326&amp;bbox=-109.59893035888672,36.71657752990723,-101.73796844482422,41.
28876972198486&amp;WIDTH=1000&amp;HEIGHT=582">
      </image>
    </g>
    <g id="WMSUSGS_Atlas">
      <image id="img" x="-109.59893035888672" y="-41.28876972198486"
width="7.8609619140625" height="4.572192192077637"
xlink:href="http://ims.cr.usgs.gov/servlet19/com.esri.wms.Esrimap/USGS_EDC_N
ational_Atlas?Service=WMS&amp;Version=1.1.1&amp;request=GetMap&amp;layers=AT
LAS_ROADS_INTERSTATE&amp;format=image/png&amp;transparent=TRUE&amp;srs=EPSG:
4326&amp;bbox=-109.59893035888672,36.71657752990723,-101.73796844482422,41.2
8876972198486&amp;WIDTH=1000&amp;HEIGHT=582">
      </image>
    </g>
  </g><!-- canvas -->
</svg>

Hopefully I'm answering the right questions.

rkgeorge

-----Original Message-----
From: geoserver-users-admin@lists.sourceforge.net
[mailto:geoserver-users-admin@lists.sourceforge.net] On Behalf Of
leewse@anonymised.com
Sent: Sunday, February 26, 2006 2:16 AM
To: Randy George
Cc: geoserver-users@lists.sourceforge.net
Subject: RE: [Geoserver-users] RE: Adding the SLD body dynamically

Hi Randy George,

Thanks for the information given. They should be useful for me. However, I
still have some doubts, which I hope you can clear them for me:

1. With respect to the java code snippet to feed a custom SLD to a
wms/GetMap post, after getting back the response as an image file, how do
i display this image on my jsp page?

2. Again, with respect to the java code snippet, what is the sld declared?

Thank you.

Regards,
Lee Wai See

Hi Lee Wai See,

  I have recently been working with this as well. Alex Petkov has a
nice example: http://docs.codehaus.org/display/GEOSDOC/SLD+Snippets

Look at the bottom. If you take out the first named layer it will work
directly with the geoserver1.3.war demo/sampleRequest/ using the
TestWfsPost

Also add the topp: prefix to states => topp:states

url:
http://localhost:8080/geoserver/wms/GetNap

body:
<?xml version="1.0" encoding="UTF-8"?>
<ogc:GetMap
xmlns:ogc="http://www.opengis.net/ows&quot;
xmlns:gml="http://www.opengis.net/gml&quot;
version="1.1.1" service="WMS">
  <StyledLayerDescriptor version="1.0.0">
   <NamedLayer>
    <Name>topp:states</Name>
     <NamedStyle>
      <Name>population</Name>
     </NamedStyle>
    </NamedLayer>
   </StyledLayerDescriptor>
   <BoundingBox srsName="http://www.opengis.net/gml/srs/epsg.xml#4326&quot;&gt;
    <gml:coord>
     <gml:X>-130.0</gml:X>
     <gml:Y>24.0</gml:Y>
    </gml:coord>
    <gml:coord>
     <gml:X>-66.0</gml:X>
     <gml:Y>50.0</gml:Y>
    </gml:coord>
   </BoundingBox>
   <Output><Format>image/png</Format>
    <Size>
     <Width>600</Width>
     <Height>320</Height>
    </Size>
   </Output>
   <Exceptions>application/vnd.ogc.se+xml</Exceptions>
  </ogc:GetMap>

I don't know the way mapbuilder works but here is a sample code for using
java to feed a custom sld to a wms/GetMap Post

Snippet:
try {
  URL u = new URL("http://www.web-demographics.com/geoserver/wms/GetMap&quot;\);
  HttpURLConnection geocon = (HttpURLConnection)u.openConnection();
  geocon.setAllowUserInteraction(false);
  geocon.setRequestMethod("POST");
  geocon.setRequestProperty("Content-Type", "application/xml");
  geocon.setDoOutput(true);
  geocon.setDoInput(true);
  geocon.setUseCaches(false);
  System.out.println("GetImage\n"+sld.toString());
  xmlOut = new PrintWriter(new BufferedWriter(new
           OutputStreamWriter(geocon.getOutputStream())));
  xmlOut.write(sld.toString());
  xmlOut.flush();
  xmlOut.close();
  response.setHeader("Cache-Control", "no-store, no-cache,
                      must-revalidate");
  response.addHeader("Cache-Control", "post-check=0, pre-check=0");
  response.setHeader("Pragma", "no-cache");
  response.setContentType("image/jpeg");
  OutputStream outsld = response.getOutputStream();
  int c;
  InputStream in = geocon.getInputStream();
  while ((c = in.read()) != -1) outsld.write(c);
  in.close();
  outsld.close();

} catch (IOException e) {
  e.printStackTrace();
} catch (Exception e) {
  System.out.println("WMSFeature: "+e.toString());
}

Here is another example sld for filtering by bounding box and parameter
value:
<?xml version="1.0" encoding="UTF-8"?>
<ogc:GetMap
xmlns:ogc="http://www.opengis.net/ows&quot;
xmlns:gml="http://www.opengis.net/gml&quot;
version="1.1.1" service="WMS">
  <StyledLayerDescriptor version="1.0.0">
<NamedLayer>
  <Name>geo:USGS_Quat_Faults</Name>
  <UserStyle>
  <Name>geothermalgeo:USGS_Quat_Faults</Name>
  <Title>Geothermal</Title>
  <Abstract>Geothermal filters</Abstract>
    <FeatureTypeStyle>
      <Rule>
             <!-- Theme 1 -->
              <ogc:Filter xmlns:gml="http://www.opengis.net/gml&quot;&gt;
                <ogc:PropertyIsBetween>
                  <ogc:PropertyName>SLIPRATE</ogc:PropertyName>
                  <ogc:LowerBoundary>
                    <ogc:Literal>0.001</ogc:Literal>
                  </ogc:LowerBoundary>
                  <ogc:UpperBoundary>
                    <ogc:Literal>17.5005</ogc:Literal>
                  </ogc:UpperBoundary>
                </ogc:PropertyIsBetween>
              </ogc:Filter>
        <LineSymbolizer>
          <Stroke>
            <CssParameter name="stroke">
              <ogc:Literal>#0000FF</ogc:Literal>
            </CssParameter>
            <CssParameter name="stroke-width">
              <ogc:Literal>2</ogc:Literal>
            </CssParameter>
          </Stroke>
        </LineSymbolizer>
      </Rule>
      <Rule>
             <!-- Theme 2 -->
              <ogc:Filter xmlns:gml="http://www.opengis.net/gml&quot;&gt;
                <ogc:PropertyIsBetween>
                  <ogc:PropertyName>SLIPRATE</ogc:PropertyName>
                  <ogc:LowerBoundary>
                    <ogc:Literal>17.5005</ogc:Literal>
                  </ogc:LowerBoundary>
                  <ogc:UpperBoundary>
                    <ogc:Literal>35</ogc:Literal>
                  </ogc:UpperBoundary>
                </ogc:PropertyIsBetween>
              </ogc:Filter>
        <LineSymbolizer>
          <Stroke>
            <CssParameter name="stroke">
              <ogc:Literal>#FF0000</ogc:Literal>
            </CssParameter>
            <CssParameter name="stroke-width">
              <ogc:Literal>2</ogc:Literal>
            </CssParameter>
          </Stroke>
        </LineSymbolizer>
      </Rule>
  </FeatureTypeStyle>
  </UserStyle>
</NamedLayer>
</StyledLayerDescriptor>
   <BoundingBox srsName="http://www.opengis.net/gml/srs/epsg.xml#4326&quot;&gt;
    <gml:coord>
     <gml:X>-116.01796340942383</gml:X>
     <gml:Y>36.40119743347168</gml:Y>
    </gml:coord>
    <gml:coord>
     <gml:X>-114.8682632446289</gml:X>
     <gml:Y>37.33532905578613</gml:Y>
    </gml:coord>
   </BoundingBox>
   <Output><Format>image/jpeg</Format>
    <Size>
     <Width>1000</Width>
     <Height>813</Height>
    </Size>
   </Output>
   <Exceptions>application/vnd.ogc.se+xml</Exceptions>
  </ogc:GetMap>

Hope this helps
Rkgeorge

-----Original Message-----
From: geoserver-users-admin@lists.sourceforge.net
[mailto:geoserver-users-admin@lists.sourceforge.net] On Behalf Of Lee Wai
See
Sent: Friday, February 24, 2006 12:35 AM
To: 'Brent Owens'
Cc: geoserver-users@lists.sourceforge.net
Subject: RE: [Geoserver-users] RE: Adding the SLD body dynamically

Hi Brent,

Thank you for your reply. Pardon me, but the SLD-POST link under the URL
you
have given to me does not contain any information. Could you please point
out to me where I can get relevant information to help in the
implementation
of my desired feature as described? Thank you.

Regards,
Lee Wai See
ST Electronics (Info-Software Systems) Pte Ltd

-----Original Message-----
From: geoserver-users-admin@lists.sourceforge.net
[mailto:geoserver-users-admin@lists.sourceforge.net] On Behalf Of Brent
Owens
Sent: Friday, February 24, 2006 3:24 PM
To: Lee Wai See
Cc: geoserver-users@lists.sourceforge.net
Subject: Re: [Geoserver-users] RE: Adding the SLD body dynamically

You should be able to do something like that using SLD-POST. There is
some information on SLDs here:

http://docs.codehaus.org/display/GEOSDOC/SLD%20Explanations%20and%20Samples
  

It is a good starting point.

Brent Owens
(The Open Planning Project)

Lee Wai See wrote:
    

Hi,

I want to add the SLD body of the map dynamically rather than
statically through the context.xml file. That is, I want to display
not all, but only some of the features, of a map layer depending on
the input from the user. Can anyone be kind enough to give advice on
how this can be done in GeoServer ands MapBuilder?

Hope I am clear in my question. Thanks.

Regards,
Lee Wai See
ST Electronics (Info-Software Systems) Pte Ltd

[This e-mail is confidential and may be priviledged. If you are not the
intended recipient, please kindly notify us immediately and delete the
      

message
    

from your system; please do not copy or use it for any purpose, nor
      

disclose
    

its contents to any other person. Thank you.]
---ST Electronics Group---

-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting
language
that extends applications into web and mobile media. Attend the live
webcast
and join the prime developer group breaking into this new coding
territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
_______________________________________________
Geoserver-users mailing list
Geoserver-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-users

-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting
language
that extends applications into web and mobile media. Attend the live
webcast
and join the prime developer group breaking into this new coding
territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
_______________________________________________
Geoserver-users mailing list
Geoserver-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-users

-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting
language
that extends applications into web and mobile media. Attend the live
webcast
and join the prime developer group breaking into this new coding
territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
_______________________________________________
Geoserver-users mailing list
Geoserver-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-users

-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
_______________________________________________
Geoserver-users mailing list
Geoserver-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-users

-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
_______________________________________________
Geoserver-users mailing list
Geoserver-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-users

You are most welcomed to do so :slight_smile:

Regards,
Lee Wai See
ST Electronics (Info-Software Systems) Pte Ltd

-----Original Message-----
From: geoserver-users-admin@lists.sourceforge.net
[mailto:geoserver-users-admin@lists.sourceforge.net] On Behalf Of Brent
Owens
Sent: Tuesday, February 28, 2006 9:23 AM
To: randy; leewse@anonymised.com
Cc: geoserver-users@lists.sourceforge.net
Subject: Re: [Geoserver-users] RE: Adding the SLD body dynamically

Mind if I put your guy's conversation into the FAQ? There is some really
good information here that I'm sure lots of people would love to have.

I will clean it all up and just take out the important points.

Brent Owens
(The Open Planning Project)

randy wrote:

Hi Lee Wai See,

2. The sld can be declared in a number of ways. In my case the
BoundingBox element is created dynamically from servlet input parameters

so

I just build it in the simplest possible manner as a new StringBuffer
instance:
  StringBuffer sld = new StringBuffer();
  sld.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n");
  sld.append("<ogc:GetMap\n");
  sld.append(" xmlns:ogc=\"http://www.opengis.net/ows\\&quot;\\n&quot;\);
  sld.append(" xmlns:gml=\"http://www.opengis.net/gml\\&quot;\\n&quot;\);
  sld.append(" version=\"1.1.1\" service=\"WMS\">\n");
  sld.append(" <StyledLayerDescriptor version=\"1.0.0\">\n");
.
      .
  A more sophisticated approach would be to create the xml using
perhaps Xerces or Jdom before writing it to the geocon connection.
  In some cases it might be useful to read the sld from the
filesystem. In other cases it is useful to load an sld file as a xml
template and change specific elements as needed. The sld example I

indicated

is just a specific instance for a client selected bounding box.

1. The display image/jpeg can be returned directly as the servlet response
output stream.

If you are just using html or jsp you could call the servlet to build your
WMS image from an img src:
<html>
<body>
<img height="100%" width="100%"

src="http://ims.cr.usgs.gov/servlet19/com.esri.wms.Esrimap/USGS_EDC_National

_Atlas?Service=WMS&Version=1.1.1&request=GetMap&layers=ATLAS_ROADS_INTERSTAT

E&format=image/png&transparent=TRUE&srs=EPSG:4326&bbox=-109.59893035888672,3

6.71657752990723,-101.73796844482422,41.28876972198486&WIDTH=1000&HEIGHT=582

"/>
</html>
</body>

Or

If the calling servlet is from svg, as in my case, I simply call the

servlet

from the image element xlink:href using multiple overlapping png image
elements with transparent set to true. (With many thanks to a hint from
cholmes)

<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20001102//EN"
  "http://www.w3.org/TR/SVG/DTD/svg10.dtd&quot; >
<svg preserveAspectRatio="xMinYMin"
  viewBox="-109.59893035888672 -41.28876972198486 7.8609619140625
4.572192192077637"
  xmlns:xlink="http://www.w3.org/1999/xlink&quot;
  xmlns="http://www.w3.org/2000/svg&quot;
  zoomAndPan="magnify">

<g id="canvas">
<rect x="-113.52941131591797" y="-45.21925067901611"

width="31.44384765625"

height="31.44384765625" style="fill:none"/>
    <g id="WMSGeothermal">
      <image id="img" x="-109.59893035888672" y="-41.28876972198486"
width="7.8609619140625" height="4.572192192077637"

xlink:href="http://localhost/geoserver/wms?request=GetMap&amp;layers=geo:cou

nty&amp;styles=county&amp;format=image/png&amp;transparent=TRUE&amp;srs=EPSG

:4326&amp;bbox=-109.59893035888672,36.71657752990723,-101.73796844482422,41.

28876972198486&amp;WIDTH=1000&amp;HEIGHT=582">
      </image>
    </g>
    <g id="WMSUSGS_Atlas">
      <image id="img" x="-109.59893035888672" y="-41.28876972198486"
width="7.8609619140625" height="4.572192192077637"

xlink:href="http://ims.cr.usgs.gov/servlet19/com.esri.wms.Esrimap/USGS_EDC_N

ational_Atlas?Service=WMS&amp;Version=1.1.1&amp;request=GetMap&amp;layers=AT

LAS_ROADS_INTERSTATE&amp;format=image/png&amp;transparent=TRUE&amp;srs=EPSG:

4326&amp;bbox=-109.59893035888672,36.71657752990723,-101.73796844482422,41.2

8876972198486&amp;WIDTH=1000&amp;HEIGHT=582">
      </image>
    </g>
  </g><!-- canvas -->
</svg>

Hopefully I'm answering the right questions.

rkgeorge

-----Original Message-----
From: geoserver-users-admin@lists.sourceforge.net
[mailto:geoserver-users-admin@lists.sourceforge.net] On Behalf Of
leewse@anonymised.com
Sent: Sunday, February 26, 2006 2:16 AM
To: Randy George
Cc: geoserver-users@lists.sourceforge.net
Subject: RE: [Geoserver-users] RE: Adding the SLD body dynamically

Hi Randy George,

Thanks for the information given. They should be useful for me. However, I
still have some doubts, which I hope you can clear them for me:

1. With respect to the java code snippet to feed a custom SLD to a
wms/GetMap post, after getting back the response as an image file, how do
i display this image on my jsp page?

2. Again, with respect to the java code snippet, what is the sld declared?

Thank you.

Regards,
Lee Wai See

Hi Lee Wai See,

  I have recently been working with this as well. Alex Petkov has a
nice example: http://docs.codehaus.org/display/GEOSDOC/SLD+Snippets

Look at the bottom. If you take out the first named layer it will work
directly with the geoserver1.3.war demo/sampleRequest/ using the
TestWfsPost

Also add the topp: prefix to states => topp:states

url:
http://localhost:8080/geoserver/wms/GetNap

body:
<?xml version="1.0" encoding="UTF-8"?>
<ogc:GetMap
xmlns:ogc="http://www.opengis.net/ows&quot;
xmlns:gml="http://www.opengis.net/gml&quot;
version="1.1.1" service="WMS">
  <StyledLayerDescriptor version="1.0.0">
   <NamedLayer>
    <Name>topp:states</Name>
     <NamedStyle>
      <Name>population</Name>
     </NamedStyle>
    </NamedLayer>
   </StyledLayerDescriptor>
   <BoundingBox srsName="http://www.opengis.net/gml/srs/epsg.xml#4326&quot;&gt;
    <gml:coord>
     <gml:X>-130.0</gml:X>
     <gml:Y>24.0</gml:Y>
    </gml:coord>
    <gml:coord>
     <gml:X>-66.0</gml:X>
     <gml:Y>50.0</gml:Y>
    </gml:coord>
   </BoundingBox>
   <Output><Format>image/png</Format>
    <Size>
     <Width>600</Width>
     <Height>320</Height>
    </Size>
   </Output>
   <Exceptions>application/vnd.ogc.se+xml</Exceptions>
  </ogc:GetMap>

I don't know the way mapbuilder works but here is a sample code for using
java to feed a custom sld to a wms/GetMap Post

Snippet:
try {
  URL u = new

URL("http://www.web-demographics.com/geoserver/wms/GetMap&quot;\);

  HttpURLConnection geocon = (HttpURLConnection)u.openConnection();
  geocon.setAllowUserInteraction(false);
  geocon.setRequestMethod("POST");
  geocon.setRequestProperty("Content-Type", "application/xml");
  geocon.setDoOutput(true);
  geocon.setDoInput(true);
  geocon.setUseCaches(false);
  System.out.println("GetImage\n"+sld.toString());
  xmlOut = new PrintWriter(new BufferedWriter(new
           OutputStreamWriter(geocon.getOutputStream())));
  xmlOut.write(sld.toString());
  xmlOut.flush();
  xmlOut.close();
  response.setHeader("Cache-Control", "no-store, no-cache,
                      must-revalidate");
  response.addHeader("Cache-Control", "post-check=0, pre-check=0");
  response.setHeader("Pragma", "no-cache");
  response.setContentType("image/jpeg");
  OutputStream outsld = response.getOutputStream();
  int c;
  InputStream in = geocon.getInputStream();
  while ((c = in.read()) != -1) outsld.write(c);
  in.close();
  outsld.close();

} catch (IOException e) {
  e.printStackTrace();
} catch (Exception e) {
  System.out.println("WMSFeature: "+e.toString());
}

Here is another example sld for filtering by bounding box and parameter
value:
<?xml version="1.0" encoding="UTF-8"?>
<ogc:GetMap
xmlns:ogc="http://www.opengis.net/ows&quot;
xmlns:gml="http://www.opengis.net/gml&quot;
version="1.1.1" service="WMS">
  <StyledLayerDescriptor version="1.0.0">
<NamedLayer>
  <Name>geo:USGS_Quat_Faults</Name>
  <UserStyle>
  <Name>geothermalgeo:USGS_Quat_Faults</Name>
  <Title>Geothermal</Title>
  <Abstract>Geothermal filters</Abstract>
    <FeatureTypeStyle>
      <Rule>
             <!-- Theme 1 -->
              <ogc:Filter xmlns:gml="http://www.opengis.net/gml&quot;&gt;
                <ogc:PropertyIsBetween>
                  <ogc:PropertyName>SLIPRATE</ogc:PropertyName>
                  <ogc:LowerBoundary>
                    <ogc:Literal>0.001</ogc:Literal>
                  </ogc:LowerBoundary>
                  <ogc:UpperBoundary>
                    <ogc:Literal>17.5005</ogc:Literal>
                  </ogc:UpperBoundary>
                </ogc:PropertyIsBetween>
              </ogc:Filter>
        <LineSymbolizer>
          <Stroke>
            <CssParameter name="stroke">
              <ogc:Literal>#0000FF</ogc:Literal>
            </CssParameter>
            <CssParameter name="stroke-width">
              <ogc:Literal>2</ogc:Literal>
            </CssParameter>
          </Stroke>
        </LineSymbolizer>
      </Rule>
      <Rule>
             <!-- Theme 2 -->
              <ogc:Filter xmlns:gml="http://www.opengis.net/gml&quot;&gt;
                <ogc:PropertyIsBetween>
                  <ogc:PropertyName>SLIPRATE</ogc:PropertyName>
                  <ogc:LowerBoundary>
                    <ogc:Literal>17.5005</ogc:Literal>
                  </ogc:LowerBoundary>
                  <ogc:UpperBoundary>
                    <ogc:Literal>35</ogc:Literal>
                  </ogc:UpperBoundary>
                </ogc:PropertyIsBetween>
              </ogc:Filter>
        <LineSymbolizer>
          <Stroke>
            <CssParameter name="stroke">
              <ogc:Literal>#FF0000</ogc:Literal>
            </CssParameter>
            <CssParameter name="stroke-width">
              <ogc:Literal>2</ogc:Literal>
            </CssParameter>
          </Stroke>
        </LineSymbolizer>
      </Rule>
  </FeatureTypeStyle>
  </UserStyle>
</NamedLayer>
</StyledLayerDescriptor>
   <BoundingBox srsName="http://www.opengis.net/gml/srs/epsg.xml#4326&quot;&gt;
    <gml:coord>
     <gml:X>-116.01796340942383</gml:X>
     <gml:Y>36.40119743347168</gml:Y>
    </gml:coord>
    <gml:coord>
     <gml:X>-114.8682632446289</gml:X>
     <gml:Y>37.33532905578613</gml:Y>
    </gml:coord>
   </BoundingBox>
   <Output><Format>image/jpeg</Format>
    <Size>
     <Width>1000</Width>
     <Height>813</Height>
    </Size>
   </Output>
   <Exceptions>application/vnd.ogc.se+xml</Exceptions>
  </ogc:GetMap>

Hope this helps
Rkgeorge

-----Original Message-----
From: geoserver-users-admin@lists.sourceforge.net
[mailto:geoserver-users-admin@lists.sourceforge.net] On Behalf Of Lee Wai
See
Sent: Friday, February 24, 2006 12:35 AM
To: 'Brent Owens'
Cc: geoserver-users@lists.sourceforge.net
Subject: RE: [Geoserver-users] RE: Adding the SLD body dynamically

Hi Brent,

Thank you for your reply. Pardon me, but the SLD-POST link under the URL
you
have given to me does not contain any information. Could you please point
out to me where I can get relevant information to help in the
implementation
of my desired feature as described? Thank you.

Regards,
Lee Wai See
ST Electronics (Info-Software Systems) Pte Ltd

-----Original Message-----
From: geoserver-users-admin@lists.sourceforge.net
[mailto:geoserver-users-admin@lists.sourceforge.net] On Behalf Of Brent
Owens
Sent: Friday, February 24, 2006 3:24 PM
To: Lee Wai See
Cc: geoserver-users@lists.sourceforge.net
Subject: Re: [Geoserver-users] RE: Adding the SLD body dynamically

You should be able to do something like that using SLD-POST. There is
some information on SLDs here:

http://docs.codehaus.org/display/GEOSDOC/SLD%20Explanations%20and%20Samples

  

It is a good starting point.

Brent Owens
(The Open Planning Project)

Lee Wai See wrote:
    

Hi,

I want to add the SLD body of the map dynamically rather than
statically through the context.xml file. That is, I want to display
not all, but only some of the features, of a map layer depending on
the input from the user. Can anyone be kind enough to give advice on
how this can be done in GeoServer ands MapBuilder?

Hope I am clear in my question. Thanks.

Regards,
Lee Wai See
ST Electronics (Info-Software Systems) Pte Ltd

[This e-mail is confidential and may be priviledged. If you are not the
intended recipient, please kindly notify us immediately and delete the
      

message
    

from your system; please do not copy or use it for any purpose, nor
      

disclose
    

its contents to any other person. Thank you.]
---ST Electronics Group---

-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting
language
that extends applications into web and mobile media. Attend the live
webcast
and join the prime developer group breaking into this new coding
territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
_______________________________________________
Geoserver-users mailing list
Geoserver-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-users

-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting
language
that extends applications into web and mobile media. Attend the live
webcast
and join the prime developer group breaking into this new coding
territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
_______________________________________________
Geoserver-users mailing list
Geoserver-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-users

-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting
language
that extends applications into web and mobile media. Attend the live
webcast
and join the prime developer group breaking into this new coding
territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
_______________________________________________
Geoserver-users mailing list
Geoserver-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-users

-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting

language

that extends applications into web and mobile media. Attend the live

webcast

and join the prime developer group breaking into this new coding

territory!

http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
_______________________________________________
Geoserver-users mailing list
Geoserver-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-users

-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting

language

that extends applications into web and mobile media. Attend the live

webcast

and join the prime developer group breaking into this new coding

territory!

http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
_______________________________________________
Geoserver-users mailing list
Geoserver-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-users

-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
_______________________________________________
Geoserver-users mailing list
Geoserver-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-users

I am having trouble running geoserver through Tomcat 5.0. I am getting a “null error:Translator error”. I have tried removing xalan.jar from geoserver and placing the latest in tomcat/common/endorsed but no luck. Here is the actual error from the geoserver log.

INFO: handling request:
Request: null
output format:GML2
max features:2147483647
version:
queries:
Query
feature type: opentms:dms_sign
filter: [ null intersects POLYGON ((-92.196275 34.8243, -92.196275 35.18605, -91.82202500000001 35.18605, -91.82202500000001 34.8243, -92.196275 34.8243)) ]
[properties: ALL ]

Query
feature type: opentms:ess_station
filter: [ null intersects POLYGON ((-92.196275 34.8243, -92.196275 35.18605, -91.82202500000001 35.18605, -91.82202500000001 34.8243, -92.196275 34.8243)) ]
[properties: ALL ]

Mar 7, 2006 9:26:15 AM org.vfny.geoserver.servlets.PartialBufferStrategy abort
INFO: OutputStream was successfully aborted.
Mar 7, 2006 9:26:15 AM org.vfny.geoserver.ServiceException getXmlResponse
WARNING: encountered error: null error:Translator error
StackTrace: javax.xml.transform.TransformerException: Translator error
at org.geotools.xml.transform.TransformerBase.transform(TransformerBase.java:122)
at org.geotools.xml.transform.TransformerBase.transform(TransformerBase.java:97)
at org.vfny.geoserver.wfs.responses.GML2FeatureResponseDelegate.encode(GML2FeatureResponseDelegate.java:225)
at org.vfny.geoserver.wfs.responses.FeatureResponse.writeTo(FeatureResponse.java:131)
at org.vfny.geoserver.servlets.AbstractService.doService(AbstractService.java:510)
at org.vfny.geoserver.servlets.AbstractService.doGet(AbstractService.java:276)
at org.vfny.geoserver.wfs.servlets.WfsDispatcher.doResponse(WfsDispatcher.java:284)
at org.vfny.geoserver.wfs.servlets.WfsDispatcher.doGet(WfsDispatcher.java:213)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.vfny.geoserver.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:122)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Thread.java:534)
Caused by: org.apache.xml.utils.WrappedRuntimeException: The output format must have a ‘{http://xml.apache.org/xalan}content-handler’ property!
at org.apache.xalan.serialize.SerializerFactory.getSerializer(SerializerFactory.java:142)
at org.apache.xalan)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Thread.java:534)

java.lang.IllegalArgumentException: The output format must have a ‘{http://xml.apache.org/xalan}content-handler’ property!
at org.apache.xalan.serialize.SerializerFactory.getSerializer(SerializerFactory.java:126)
at org.apache.xalan.transformer.TransformerIdentityImpl.createResultContentHandler(TransformerIdentityImpl.java:232)
at org.apache.xalan.transformer.TransformerIdentityImpl.transform(TransformerIdentityImpl.java:296)
at org.geotools.xml.transform.TransformerBase$Task.run(TransformerBase.java:285)
at org.geotools.xml.transform.TransformerBase.transform(TransformerBase.java:118)
at org.geotools.xml.transform.TransformerBase.transform(TransformerBase.java:97)
at org.vfny.geoserver.wfs.responses.GML2FeatureResponseDelegate.encode(GML2FeatureResponseDelegate.java:225)
at org.vfny.geoserver.wfs.responses.FeatureResponse.writeTo(FeatureResponse.java:131)
at org.vfny.geoserver.servlets.AbstractService.doService(AbstractService.java:510)
at org.vfny.geoserver.servlets.AbstractService.doGet(AbstractService.java:276)
at org.vfny.geoserver.wfs.servlets.WfsDispatcher.doResponse(WfsDispatcher.java:284)
at org.vfny.geoserver.wfs.servlets.WfsDispatcher.doGet(WfsDispatcher.java:213)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.vfny.geoserver.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:122)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Thread.java:534)

.transformer.TransformerIdentityImpl.createResultContentHandler(TransformerIdentityImpl.java:232)
at org.apache.xalan.transformer.TransformerIdentityImpl.transform(TransformerIdentityImpl.java:296)
at org.geotools.xml.transform.TransformerBase$Task.run(TransformerBase.java:285)
at org.geotools.xml.transform.TransformerBase.transform(TransformerBase.java:118)
… 36 more

org.apache.xml.utils.WrappedRuntimeException: The output format must have a ‘{http://xml.apache.org/xalan}content-handler’ property!
at org.apache.xalan.serialize.SerializerFactory.getSerializer(SerializerFactory.java:142)
at org.apache.xalan.transformer.TransformerIdentityImpl.createResultContentHandler(TransformerIdentityImpl.java:232)
at org.apache.xalan.transformer.TransformerIdentityImpl.transform(TransformerIdentityImpl.java:296)
at org.geotools.xml.transform.TransformerBase$Task.run(TransformerBase.java:285)
at org.geotools.xml.transform.TransformerBase.transform(TransformerBase.java:118)
at org.geotools.xml.transform.TransformerBase.transform(TransformerBase.java:97)
at org.vfny.geoserver.wfs.responses.GML2FeatureResponseDelegate.encode(GML2FeatureResponseDelegate.java:225)
at org.vfny.geoserver.wfs.responses.FeatureResponse.writeTo(FeatureResponse.java:131)
at org.vfny.geoserver.servlets.AbstractService.doService(AbstractService.java:510)
at org.vfny.geoserver.servlets.AbstractService.doGet(AbstractService.java:276)
at org.vfny.geoserver.wfs.servlets.WfsDispatcher.doResponse(WfsDispatcher.java:284)
at org.vfny.geoserver.wfs.servlets.WfsDispatcher.doGet(WfsDispatcher.java:213)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.vfny.geoserver.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:122)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Thread.java:534)

java.lang.IllegalArgumentException: The output format must have a ‘{http://xml.apache.org/xalan}content-handler’ property!
at org.apache.xalan.serialize.SerializerFactory.getSerializer(SerializerFactory.java:126)
at org.apache.xalan.transformer.TransformerIdentityImpl.createResultContentHandler(TransformerIdentityImpl.java:232)
at org.apache.xalan.transformer.TransformerIdentityImpl.transform(TransformerIdentityImpl.java:296)
at org.geotools.xml.transform.TransformerBase$Task.run(TransformerBase.java:285)
at org.geotools.xml.transform.TransformerBase.transform(TransformerBase.java:118)
at org.geotools.xml.transform.TransformerBase.transform(TransformerBase.java:97)
at org.vfny.geoserver.wfs.responses.GML2FeatureResponseDelegate.encode(GML2FeatureResponseDelegate.java:225)
at org.vfny.geoserver.wfs.responses.FeatureResponse.writeTo(FeatureResponse.java:131)
at org.vfny.geoserver.servlets.AbstractService.doService(AbstractService.java:510)
at org.vfny.geoserver.servlets.AbstractService.doGet(AbstractService.java:276)
at org.vfny.geoserver.wfs.servlets.WfsDispatcher.doResponse(WfsDispatcher.java:284)
at org.vfny.geoserver.wfs.servlets.WfsDispatcher.doGet(WfsDispatcher.java:213)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.vfny.geoserver.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:122)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Thread.java:534)

Any thoughts? Thanks, David

Ps. I have seen this work with Jetty…

Hmmm... googling for that error leads to a lot of empty pages.

There is this:
'I have found the solution myself.
http://wiki.cocoondev.org/Wiki.jsp?page=EndorsedLibsProblem
Which I have to delete the xalan.jar (from JSTL) and replace with the latest
one from Cocoon. It works fine afterwards. '

But that page isn't there. I found another reference to that page as well.

Another suggestion seemed to be to put the xalan jar in common/lib of tomcat, or in %JAVA_HOME%\jre\lib\endorsed

Perhaps you have an older version of xalan somewhere on your classpath?

Chris

David Robison wrote:

I am having trouble running geoserver through Tomcat 5.0. I am getting a "null error:Translator error". I have tried removing xalan.jar from geoserver and placing the latest in tomcat/common/endorsed but no luck. Here is the actual error from the geoserver log.

INFO: handling request: Request: null
output format:GML2
max features:2147483647
version:
queries: Query
   feature type: opentms:dms_sign
   filter: [ null intersects POLYGON ((-92.196275 34.8243, -92.196275 35.18605, -91.82202500000001 35.18605, -91.82202500000001 34.8243, -92.196275 34.8243)) ]
   [properties: ALL ]

  Query
   feature type: opentms:ess_station
   filter: [ null intersects POLYGON ((-92.196275 34.8243, -92.196275 35.18605, -91.82202500000001 35.18605, -91.82202500000001 34.8243, -92.196275 34.8243)) ]
   [properties: ALL ]

Mar 7, 2006 9:26:15 AM org.vfny.geoserver.servlets.PartialBufferStrategy abort
INFO: OutputStream was successfully aborted.
Mar 7, 2006 9:26:15 AM org.vfny.geoserver.ServiceException getXmlResponse
WARNING: encountered error: null error:Translator error
StackTrace: javax.xml.transform.TransformerException: Translator error
    at org.geotools.xml.transform.TransformerBase.transform(TransformerBase.java:122)
    at org.geotools.xml.transform.TransformerBase.transform(TransformerBase.java:97)
    at org.vfny.geoserver.wfs.responses.GML2FeatureResponseDelegate.encode(GML2FeatureResponseDelegate.java:225)
    at org.vfny.geoserver.wfs.responses.FeatureResponse.writeTo(FeatureResponse.java:131)
    at org.vfny.geoserver.servlets.AbstractService.doService(AbstractService.java:510)
    at org.vfny.geoserver.servlets.AbstractService.doGet(AbstractService.java:276)
    at org.vfny.geoserver.wfs.servlets.WfsDispatcher.doResponse(WfsDispatcher.java:284)
    at org.vfny.geoserver.wfs.servlets.WfsDispatcher.doGet(WfsDispatcher.java:213)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
    at org.vfny.geoserver.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:122)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
    at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
    at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
    at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
    at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
    at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
    at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
    at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
    at java.lang.Thread.run(Thread.java:534)
Caused by: org.apache.xml.utils.WrappedRuntimeException: The output format must have a '{http://xml.apache.org/xalan\}content-handler' property!
    at org.apache.xalan.serialize.SerializerFactory.getSerializer(SerializerFactory.java:142)
    at org.apache.xalan)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
    at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
    at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
    at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
    at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
    at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
    at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
    at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
    at java.lang.Thread.run(Thread.java:534)
---------
java.lang.IllegalArgumentException: The output format must have a '{http://xml.apache.org/xalan\}content-handler' property!
    at org.apache.xalan.serialize.SerializerFactory.getSerializer(SerializerFactory.java:126)
    at org.apache.xalan.transformer.TransformerIdentityImpl.createResultContentHandler(TransformerIdentityImpl.java:232)
    at org.apache.xalan.transformer.TransformerIdentityImpl.transform(TransformerIdentityImpl.java:296)
    at org.geotools.xml.transform.TransformerBase$Task.run(TransformerBase.java:285)
    at org.geotools.xml.transform.TransformerBase.transform(TransformerBase.java:118)
    at org.geotools.xml.transform.TransformerBase.transform(TransformerBase.java:97)
    at org.vfny.geoserver.wfs.responses.GML2FeatureResponseDelegate.encode(GML2FeatureResponseDelegate.java:225)
    at org.vfny.geoserver.wfs.responses.FeatureResponse.writeTo(FeatureResponse.java:131)
    at org.vfny.geoserver.servlets.AbstractService.doService(AbstractService.java:510)
    at org.vfny.geoserver.servlets.AbstractService.doGet(AbstractService.java:276)
    at org.vfny.geoserver.wfs.servlets.WfsDispatcher.doResponse(WfsDispatcher.java:284)
    at org.vfny.geoserver.wfs.servlets.WfsDispatcher.doGet(WfsDispatcher.java:213)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
    at org.vfny.geoserver.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:122)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
    at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
    at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
    at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
    at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
    at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
    at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
    at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
    at java.lang.Thread.run(Thread.java:534)

.transformer.TransformerIdentityImpl.createResultContentHandler(TransformerIdentityImpl.java:232)
    at org.apache.xalan.transformer.TransformerIdentityImpl.transform(TransformerIdentityImpl.java:296)
    at org.geotools.xml.transform.TransformerBase$Task.run(TransformerBase.java:285)
    at org.geotools.xml.transform.TransformerBase.transform(TransformerBase.java:118)
    ... 36 more
---------
org.apache.xml.utils.WrappedRuntimeException: The output format must have a '{http://xml.apache.org/xalan\}content-handler' property!
    at org.apache.xalan.serialize.SerializerFactory.getSerializer(SerializerFactory.java:142)
    at org.apache.xalan.transformer.TransformerIdentityImpl.createResultContentHandler(TransformerIdentityImpl.java:232)
    at org.apache.xalan.transformer.TransformerIdentityImpl.transform(TransformerIdentityImpl.java:296)
    at org.geotools.xml.transform.TransformerBase$Task.run(TransformerBase.java:285)
    at org.geotools.xml.transform.TransformerBase.transform(TransformerBase.java:118)
    at org.geotools.xml.transform.TransformerBase.transform(TransformerBase.java:97)
    at org.vfny.geoserver.wfs.responses.GML2FeatureResponseDelegate.encode(GML2FeatureResponseDelegate.java:225)
    at org.vfny.geoserver.wfs.responses.FeatureResponse.writeTo(FeatureResponse.java:131)
    at org.vfny.geoserver.servlets.AbstractService.doService(AbstractService.java:510)
    at org.vfny.geoserver.servlets.AbstractService.doGet(AbstractService.java:276)
    at org.vfny.geoserver.wfs.servlets.WfsDispatcher.doResponse(WfsDispatcher.java:284)
    at org.vfny.geoserver.wfs.servlets.WfsDispatcher.doGet(WfsDispatcher.java:213)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
    at org.vfny.geoserver.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:122)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
    at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
    at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
    at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
    at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
    at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
    at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
    at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
    at java.lang.Thread.run(Thread.java:534)
---------
java.lang.IllegalArgumentException: The output format must have a '{http://xml.apache.org/xalan\}content-handler' property!
    at org.apache.xalan.serialize.SerializerFactory.getSerializer(SerializerFactory.java:126)
    at org.apache.xalan.transformer.TransformerIdentityImpl.createResultContentHandler(TransformerIdentityImpl.java:232)
    at org.apache.xalan.transformer.TransformerIdentityImpl.transform(TransformerIdentityImpl.java:296)
    at org.geotools.xml.transform.TransformerBase$Task.run(TransformerBase.java:285)
    at org.geotools.xml.transform.TransformerBase.transform(TransformerBase.java:118)
    at org.geotools.xml.transform.TransformerBase.transform(TransformerBase.java:97)
    at org.vfny.geoserver.wfs.responses.GML2FeatureResponseDelegate.encode(GML2FeatureResponseDelegate.java:225)
    at org.vfny.geoserver.wfs.responses.FeatureResponse.writeTo(FeatureResponse.java:131)
    at org.vfny.geoserver.servlets.AbstractService.doService(AbstractService.java:510)
    at org.vfny.geoserver.servlets.AbstractService.doGet(AbstractService.java:276)
    at org.vfny.geoserver.wfs.servlets.WfsDispatcher.doResponse(WfsDispatcher.java:284)
    at org.vfny.geoserver.wfs.servlets.WfsDispatcher.doGet(WfsDispatcher.java:213)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
    at org.vfny.geoserver.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:122)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
    at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
    at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
    at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
    at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
    at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
    at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
    at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
    at java.lang.Thread.run(Thread.java:534)

Any thoughts? Thanks, David

Ps. I have seen this work with Jetty...

--
Chris Holmes
The Open Planning Project
thoughts at: http://cholmes.wordpress.com

I tried placing a newer version of xalan in <tomcat>/lib/endorsed but that did not work, I had to place them in JAVA_HOME/jre/lib/endorsed. This seemed to work. Thanks.
David

Chris Holmes wrote:

Hmmm... googling for that error leads to a lot of empty pages.

There is this:
'I have found the solution myself.
http://wiki.cocoondev.org/Wiki.jsp?page=EndorsedLibsProblem
Which I have to delete the xalan.jar (from JSTL) and replace with the latest
one from Cocoon. It works fine afterwards. '

But that page isn't there. I found another reference to that page as well.

Another suggestion seemed to be to put the xalan jar in common/lib of tomcat, or in %JAVA_HOME%\jre\lib\endorsed

Perhaps you have an older version of xalan somewhere on your classpath?

Chris

David Robison wrote:

I am having trouble running geoserver through Tomcat 5.0. I am getting a "null error:Translator error". I have tried removing xalan.jar from geoserver and placing the latest in tomcat/common/endorsed but no luck. Here is the actual error from the geoserver log.

INFO: handling request: Request: null
output format:GML2
max features:2147483647
version:
queries: Query
   feature type: opentms:dms_sign
   filter: [ null intersects POLYGON ((-92.196275 34.8243, -92.196275 35.18605, -91.82202500000001 35.18605, -91.82202500000001 34.8243, -92.196275 34.8243)) ]
   [properties: ALL ]
  Query
   feature type: opentms:ess_station
   filter: [ null intersects POLYGON ((-92.196275 34.8243, -92.196275 35.18605, -91.82202500000001 35.18605, -91.82202500000001 34.8243, -92.196275 34.8243)) ]
   [properties: ALL ]
Mar 7, 2006 9:26:15 AM org.vfny.geoserver.servlets.PartialBufferStrategy abort
INFO: OutputStream was successfully aborted.
Mar 7, 2006 9:26:15 AM org.vfny.geoserver.ServiceException getXmlResponse
WARNING: encountered error: null error:Translator error
StackTrace: javax.xml.transform.TransformerException: Translator error
    at org.geotools.xml.transform.TransformerBase.transform(TransformerBase.java:122)

    at org.geotools.xml.transform.TransformerBase.transform(TransformerBase.java:97)

    at org.vfny.geoserver.wfs.responses.GML2FeatureResponseDelegate.encode(GML2FeatureResponseDelegate.java:225)

    at org.vfny.geoserver.wfs.responses.FeatureResponse.writeTo(FeatureResponse.java:131)

    at org.vfny.geoserver.servlets.AbstractService.doService(AbstractService.java:510)

    at org.vfny.geoserver.servlets.AbstractService.doGet(AbstractService.java:276)

    at org.vfny.geoserver.wfs.servlets.WfsDispatcher.doResponse(WfsDispatcher.java:284)

    at org.vfny.geoserver.wfs.servlets.WfsDispatcher.doGet(WfsDispatcher.java:213)

    at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)

    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)

    at org.vfny.geoserver.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:122)

    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)

    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)

    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)

    at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)

    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)

    at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)

    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)

    at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)

    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)

    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)

    at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)

    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)

    at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)

    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)

    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)

    at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)

    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)

    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
    at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)

    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)

    at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)

    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)

    at java.lang.Thread.run(Thread.java:534)
Caused by: org.apache.xml.utils.WrappedRuntimeException: The output format must have a '{http://xml.apache.org/xalan\}content-handler' property!
    at org.apache.xalan.serialize.SerializerFactory.getSerializer(SerializerFactory.java:142)

    at org.apache.xalan)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)

    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)

    at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)

    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)

    at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)

    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)

    at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)

    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)

    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)

    at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)

    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)

    at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)

    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)

    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)

    at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)

    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)

    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
    at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)

    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)

    at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)

    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)

    at java.lang.Thread.run(Thread.java:534)
---------
java.lang.IllegalArgumentException: The output format must have a '{http://xml.apache.org/xalan\}content-handler' property!
    at org.apache.xalan.serialize.SerializerFactory.getSerializer(SerializerFactory.java:126)

    at org.apache.xalan.transformer.TransformerIdentityImpl.createResultContentHandler(TransformerIdentityImpl.java:232)

    at org.apache.xalan.transformer.TransformerIdentityImpl.transform(TransformerIdentityImpl.java:296)

    at org.geotools.xml.transform.TransformerBase$Task.run(TransformerBase.java:285)

    at org.geotools.xml.transform.TransformerBase.transform(TransformerBase.java:118)

    at org.geotools.xml.transform.TransformerBase.transform(TransformerBase.java:97)

    at org.vfny.geoserver.wfs.responses.GML2FeatureResponseDelegate.encode(GML2FeatureResponseDelegate.java:225)

    at org.vfny.geoserver.wfs.responses.FeatureResponse.writeTo(FeatureResponse.java:131)

    at org.vfny.geoserver.servlets.AbstractService.doService(AbstractService.java:510)

    at org.vfny.geoserver.servlets.AbstractService.doGet(AbstractService.java:276)

    at org.vfny.geoserver.wfs.servlets.WfsDispatcher.doResponse(WfsDispatcher.java:284)

    at org.vfny.geoserver.wfs.servlets.WfsDispatcher.doGet(WfsDispatcher.java:213)

    at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)

    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)

    at org.vfny.geoserver.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:122)

    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)

    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)

    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)

    at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)

    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)

    at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)

    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)

    at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)

    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)

    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)

    at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)

    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)

    at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)

    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)

    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)

    at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)

    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)

    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
    at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)

    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)

    at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)

    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)

    at java.lang.Thread.run(Thread.java:534)

.transformer.TransformerIdentityImpl.createResultContentHandler(TransformerIdentityImpl.java:232)

    at org.apache.xalan.transformer.TransformerIdentityImpl.transform(TransformerIdentityImpl.java:296)

    at org.geotools.xml.transform.TransformerBase$Task.run(TransformerBase.java:285)

    at org.geotools.xml.transform.TransformerBase.transform(TransformerBase.java:118)

    ... 36 more
---------
org.apache.xml.utils.WrappedRuntimeException: The output format must have a '{http://xml.apache.org/xalan\}content-handler' property!
    at org.apache.xalan.serialize.SerializerFactory.getSerializer(SerializerFactory.java:142)

    at org.apache.xalan.transformer.TransformerIdentityImpl.createResultContentHandler(TransformerIdentityImpl.java:232)

    at org.apache.xalan.transformer.TransformerIdentityImpl.transform(TransformerIdentityImpl.java:296)

    at org.geotools.xml.transform.TransformerBase$Task.run(TransformerBase.java:285)

    at org.geotools.xml.transform.TransformerBase.transform(TransformerBase.java:118)

    at org.geotools.xml.transform.TransformerBase.transform(TransformerBase.java:97)

    at org.vfny.geoserver.wfs.responses.GML2FeatureResponseDelegate.encode(GML2FeatureResponseDelegate.java:225)

    at org.vfny.geoserver.wfs.responses.FeatureResponse.writeTo(FeatureResponse.java:131)

    at org.vfny.geoserver.servlets.AbstractService.doService(AbstractService.java:510)

    at org.vfny.geoserver.servlets.AbstractService.doGet(AbstractService.java:276)

    at org.vfny.geoserver.wfs.servlets.WfsDispatcher.doResponse(WfsDispatcher.java:284)

    at org.vfny.geoserver.wfs.servlets.WfsDispatcher.doGet(WfsDispatcher.java:213)

    at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)

    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)

    at org.vfny.geoserver.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:122)

    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)

    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)

    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)

    at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)

    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)

    at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)

    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)

    at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)

    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)

    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)

    at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)

    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)

    at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)

    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)

    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)

    at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)

    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)

    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
    at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)

    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)

    at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)

    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)

    at java.lang.Thread.run(Thread.java:534)
---------
java.lang.IllegalArgumentException: The output format must have a '{http://xml.apache.org/xalan\}content-handler' property!
    at org.apache.xalan.serialize.SerializerFactory.getSerializer(SerializerFactory.java:126)

    at org.apache.xalan.transformer.TransformerIdentityImpl.createResultContentHandler(TransformerIdentityImpl.java:232)

    at org.apache.xalan.transformer.TransformerIdentityImpl.transform(TransformerIdentityImpl.java:296)

    at org.geotools.xml.transform.TransformerBase$Task.run(TransformerBase.java:285)

    at org.geotools.xml.transform.TransformerBase.transform(TransformerBase.java:118)

    at org.geotools.xml.transform.TransformerBase.transform(TransformerBase.java:97)

    at org.vfny.geoserver.wfs.responses.GML2FeatureResponseDelegate.encode(GML2FeatureResponseDelegate.java:225)

    at org.vfny.geoserver.wfs.responses.FeatureResponse.writeTo(FeatureResponse.java:131)

    at org.vfny.geoserver.servlets.AbstractService.doService(AbstractService.java:510)

    at org.vfny.geoserver.servlets.AbstractService.doGet(AbstractService.java:276)

    at org.vfny.geoserver.wfs.servlets.WfsDispatcher.doResponse(WfsDispatcher.java:284)

    at org.vfny.geoserver.wfs.servlets.WfsDispatcher.doGet(WfsDispatcher.java:213)

    at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)

    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)

    at org.vfny.geoserver.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:122)

    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)

    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)

    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)

    at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)

    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)

    at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)

    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)

    at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)

    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)

    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)

    at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)

    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)

    at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)

    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)

    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)

    at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)

    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)

    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
    at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)

    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)

    at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)

    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)

    at java.lang.Thread.run(Thread.java:534)

Any thoughts? Thanks, David

Ps. I have seen this work with Jetty...

--

David R Robison
Open Roads Consulting, Inc.
708 S. Battlefield Blvd., Chesapeake, VA 23322
phone: (757) 546-3401
e-mail: drrobison@anonymised.com
web: http://openroadsconsulting.com
blog: http://therobe.blogspot.com
book: http://www.xulonpress.com/bookstore/titles/1597816523.htm

I have a reference to an external graphics in a SLD file referenced within geoserver:

        <PointSymbolizer>
          <Graphic>
            <ExternalGraphic>
              <OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink&quot; xlink:type="simple" xlink:href="http://localhost:8080/geoserver/images/On.gif&quot;/&gt;
              <Format>image/gif</Format>
            </ExternalGraphic>
            <Opacity><ogc:Literal>1.0</ogc:Literal></Opacity>
            <Size><ogc:Literal>12</ogc:Literal></Size>
          </Graphic>
        </PointSymbolizer>

The problem is that the reference takes a full http address. I have tried to specify a relative address, such as:

              <OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink&quot; xlink:type="simple" xlink:href="/geoserver/images/On.gif"/>

but it does not seem to display the graphic. Is there a way to specify a relative address in the SLD?

Thanks, David

--

David R Robison
Open Roads Consulting, Inc.
708 S. Battlefield Blvd., Chesapeake, VA 23322
phone: (757) 546-3401
e-mail: drrobison@anonymised.com
web: http://openroadsconsulting.com
blog: http://therobe.blogspot.com
book: http://www.xulonpress.com/bookstore/titles/1597816523.htm

Yep, you can reference them relatively.
You just need to place the image in the styles/ folder of your geoserver install. Here is a snippit from our external graphic sld example:

<PolygonSymbolizer>
                        <Fill>
                            <GraphicFill>
                                <Graphic>
                                    <ExternalGraphic>
                                        <OnlineResource xlink:type="simple" xlink:href="grass_fill.png"/>
                                        <Format>image/png</Format>
                                    </ExternalGraphic>
                                    <Opacity>
                                        <ogc:Literal>1.0</ogc:Literal>
                                    </Opacity>
                                    <Size>
                                        <ogc:Literal>30</ogc:Literal>
                                    </Size>
                                    <Rotation>
                                        <ogc:Literal>0.5</ogc:Literal>
                                    </Rotation>
                                </Graphic>
                            </GraphicFill>
                        </Fill>

Brent Owens
(The Open Planning Project)

David R Robison wrote:

I have a reference to an external graphics in a SLD file referenced within geoserver:

        <PointSymbolizer>
          <Graphic>
            <ExternalGraphic>
              <OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink&quot; xlink:type="simple" xlink:href="http://localhost:8080/geoserver/images/On.gif&quot;/&gt;
              <Format>image/gif</Format>
            </ExternalGraphic>
            <Opacity><ogc:Literal>1.0</ogc:Literal></Opacity>
            <Size><ogc:Literal>12</ogc:Literal></Size>
          </Graphic>
        </PointSymbolizer>

The problem is that the reference takes a full http address. I have tried to specify a relative address, such as:

              <OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink&quot; xlink:type="simple" xlink:href="/geoserver/images/On.gif"/>

but it does not seem to display the graphic. Is there a way to specify a relative address in the SLD?

Thanks, David