Dear All,

I have a few question regarding GeoExt ux: SimplePrint.
1. My original configuration applied TMS layers (MapProxy), and by default it generates the following error:
Error while generating PDF:
java.lang.StringIndexOutOfBoundsException: String index out of range: -1
    at java.lang.String.substring(String.java:1937)
at org.mapfish.print.map.readers.TmsMapReader.<init>(TmsMapReader.java:48) at org.mapfish.print.map.readers.TmsMapReader.create(TmsMapReader.java:86)
    at org.mapfish.print.map.readers.MapReader.create(MapReader.java:58)
at org.mapfish.print.map.MapChunkDrawer.renderImpl(MapChunkDrawer.java:98)
    at org.mapfish.print.ChunkDrawer.render(ChunkDrawer.java:55)
    at org.mapfish.print.config.layout.MapBlock$1.render(MapBlock.java:62)
at org.mapfish.print.PDFCustomBlocks.addAbsoluteDrawer(PDFCustomBlocks.java:169)
    at org.mapfish.print.config.layout.MapBlock.render(MapBlock.java:58)
    at org.mapfish.print.config.layout.Page.render(Page.java:65)
    at org.mapfish.print.config.layout.MainPage.render(MainPage.java:62)
    at org.mapfish.print.config.layout.Layout.render(Layout.java:59)
    at org.mapfish.print.MapPrinter.print(MapPrinter.java:144)
at org.mapfish.print.servlet.MapPrinterServlet.doCreatePDFFile(MapPrinterServlet.java:275) at org.mapfish.print.servlet.MapPrinterServlet.createAndGetPDF(MapPrinterServlet.java:130) at org.mapfish.print.servlet.MapPrinterServlet.doGet(MapPrinterServlet.java:68)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:627)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at org.springframework.web.servlet.mvc.ServletWrappingController.handleRequestInternal(ServletWrappingController.java:158) at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153) at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:875) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:809) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:571) at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:501)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:627)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at org.vfny.geoserver.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:108) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:265) at org.acegisecurity.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:107) at org.acegisecurity.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:72) at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275) at org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:124) at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275) at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125) at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275) at org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter(RememberMeProcessingFilter.java:135) at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275) at org.acegisecurity.wrapper.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:81) at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275) at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:271) at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275) at org.acegisecurity.ui.logout.LogoutFilter.doFilter(LogoutFilter.java:110) at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275) at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249) at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275) at org.acegisecurity.util.FilterChainProxy.doFilter(FilterChainProxy.java:149) at org.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:98) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
    at org.geoserver.filters.LoggingFilter.doFilter(LoggingFilter.java:73)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at org.geoserver.filters.ReverseProxyFilter.doFilter(ReverseProxyFilter.java:183) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
    at org.geoserver.filters.GZIPFilter.doFilter(GZIPFilter.java:41)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:581) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:879) at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665) at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528) at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
    at java.lang.Thread.run(Thread.java:662)

I've tried to reconfigure it using override object, but neither the type:'WMS' (#1), nor the duplicated layer definition (#2, defining a 'hidden' WMS layer with the same content) helped. The overrides parameters seems to be ignored.

var TMSlayer = new OpenLayers.Layer.TMS('TMSLayerName', TMSService, {
    layername: 'TMSLayerName',
    type: 'png',
    tileSize: new OpenLayers.Size(512, 512)
});

var WMSLayer = new OpenLayers.Layer.WMS('WMSLayerName', WMSService, {
    layers: 'WMSLayerName',
    format: 'image/png'
}, {
    singleTile: true,
    ratio: 1
}, {
    isBaseLayer: false,
    visibility: false,
    displayInLayerSwitcher: false
});

#1
var overrides = {
    'TMSLayerName': {
        baseURL: WMSService,
        type: 'WMS',
        layers: 'WMSLayerName'
    }
};

#2
var overrides = {
    'WMSLayerName': {
        visibility: true
    },
    'TMSLayerName': {
        visibility: false
    },
};

var printForm = new GeoExt.ux.SimplePrint({
    ...
    overrides: overrides,
    ...
});

TileCache layer works out of the box (override object is not required, but a new virtual directory is needed). var TCLayer = new OpenLayers.Layer.TileCache('TCLayerName', TCService, 'TCLayerName', {
    isBaseLayer: true,
    ...
});

Can I use override parameter or it is not implemented yet?

2. It is possible to print Google layers? I've set my config.yaml according to the sample here: http://trac.mapfish.org/trac/mapfish/browser/print/trunk/samples/configNonPremiumGoogle.yaml, but the result is still a blank white page.
I'm using Google API v3, if it counts.

3. I wasn't able to use the POST method in the printprovider, the request does not contain POST parameters, however GET works just fine.
var printProvider = new GeoExt.data.PrintProvider({
    //method: "POST",
    method: "GET",
    url: "proxy.cgi?url=http://localhost:8080/geoserver/pdf";,
    autoLoad: true
});

Cheers,
Attila
_______________________________________________
Users mailing list
[email protected]
http://www.geoext.org/cgi-bin/mailman/listinfo/users

Reply via email to