Gabriel Roldán ha scritto:
Andrea, Justin,
I'm comming to you as the creators of KMLTest cause I'm finding hard to diagnose why reenabling the remote ows tests makes it fail.
The situation is, the patch attached to <http://jira.codehaus.org/browse/GEOS-1547> enables ows remote tests and they work for the tests other than KMLTest that use it. That's only on trunk, where the WFS 1.1 datastore work has been happening.
btw, the one failing test is testVectorWithRemoteLayer().
in the patch I've changed RemoteOWSTestSupport.WFS_SERVER_URL to "http://demo.opengeo.org/geoserver/wfs?" because sigma keeps being unusable.
If some of you could take a look and see what's going wrong that'd be really cool.
Looked into it. What's going on is that the kml code is looking for the
feature heigh template for a feature type that is not local, but is
provided by a remote WFS as part of our "feature portrayal" support
which we developed in OWS5.
The exception is logged at a level lower than usual and cannot be
seen, but here it is:
java.lang.NullPointerException
at org.geoserver.template.GeoServerTemplateLoader.findTemplateSource(GeoServerTemplateLoader.java:140)
at freemarker.cache.TemplateCache.acquireTemplateSource(TemplateCache.java:600)
at freemarker.cache.TemplateCache.findTemplateSource(TemplateCache.java:576)
at freemarker.cache.TemplateCache.getTemplate(TemplateCache.java:347)
at freemarker.cache.TemplateCache.getTemplate(TemplateCache.java:235)
at freemarker.template.Configuration.getTemplate(Configuration.java:487)
at freemarker.template.Configuration.getTemplate(Configuration.java:452)
at org.vfny.geoserver.wms.responses.featureInfo.FeatureTemplate.lookupTemplate(FeatureTemplate.java:295)
at org.vfny.geoserver.wms.responses.featureInfo.FeatureTemplate.execute(FeatureTemplate.java:263)
at org.vfny.geoserver.wms.responses.featureInfo.FeatureTemplate.template(FeatureTemplate.java:214)
at org.vfny.geoserver.wms.responses.featureInfo.FeatureTemplate.template(FeatureTemplate.java:251)
at org.vfny.geoserver.wms.responses.featureInfo.FeatureHeightTemplate.execute(FeatureHeightTemplate.java:39)
at org.vfny.geoserver.wms.responses.map.kml.KMLMapTransformer$KMLMapTranslatorSupport.featureGeometry(KMLMapTransformer.java:1183)
at org.vfny.geoserver.wms.responses.map.kml.KMLMapTransformer$KMLMapTranslatorSupport.encodePlacemark(KMLMapTransformer.java:818)
at org.vfny.geoserver.wms.responses.map.kml.KMLMapTransformer$KMLMapTranslatorSupport.encodePlacemark(KMLMapTransformer.java:810)
at org.vfny.geoserver.wms.responses.map.kml.KMLVectorTransformer$KMLTranslator.encode(KMLVectorTransformer.java:223)
at org.vfny.geoserver.wms.responses.map.kml.KMLVectorTransformer$KMLTranslator.encode(KMLVectorTransformer.java:146)
at org.vfny.geoserver.wms.responses.map.kml.KMLTransformer$KMLTranslator.encodeVectorLayer(KMLTransformer.java:203)
at org.vfny.geoserver.wms.responses.map.kml.KMLTransformer$KMLTranslator.encode(KMLTransformer.java:133)
at org.geotools.xml.transform.TransformerBase$XMLReaderSupport.parse(TransformerBase.java:714)
at org.apache.xalan.transformer.TransformerIdentityImpl.transform(TransformerIdentityImpl.java:484)
at org.geotools.xml.transform.TransformerBase$Task.run(TransformerBase.java:296)
at org.geotools.xml.transform.TransformerBase.transform(TransformerBase.java:129)
at org.geotools.xml.transform.TransformerBase.transform(TransformerBase.java:108)
at org.vfny.geoserver.wms.responses.map.kml.KMLMapProducer.writeTo(KMLMapProducer.java:121)
at org.vfny.geoserver.wms.responses.GetMapResponse.writeTo(GetMapResponse.java:572)
at org.geoserver.ows.adapters.ResponseAdapter.write(ResponseAdapter.java:60)
at org.geoserver.ows.Dispatcher.response(Dispatcher.java:702)
at org.geoserver.ows.Dispatcher.handleRequestInternal(Dispatcher.java:215)
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:689)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.geoserver.test.GeoServerAbstractTestSupport.dispatch(GeoServerAbstractTestSupport.java:984)
at org.geoserver.test.GeoServerAbstractTestSupport.dispatch(GeoServerAbstractTestSupport.java:951)
at org.geoserver.test.GeoServerAbstractTestSupport.getAsServletResponse(GeoServerAbstractTestSupport.java:447)
at org.geoserver.test.GeoServerAbstractTestSupport.get(GeoServerAbstractTestSupport.java:428)
at org.geoserver.test.GeoServerAbstractTestSupport.getAsDOM(GeoServerAbstractTestSupport.java:660)
at org.geoserver.test.GeoServerAbstractTestSupport.getAsDOM(GeoServerAbstractTestSupport.java:641)
at org.vfny.geoserver.wms.responses.map.kml.KMLTest.testVectorWithRemoteLayer(KMLTest.java:61)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at junit.framework.TestCase.runTest(TestCase.java:164)
at org.geoserver.test.GeoServerAbstractTestSupport.runTest(GeoServerAbstractTestSupport.java:129)
at junit.framework.TestCase.runBare(TestCase.java:130)
at junit.framework.TestResult$1.protect(TestResult.java:106)
at junit.framework.TestResult.runProtected(TestResult.java:124)
at junit.framework.TestResult.run(TestResult.java:109)
at junit.framework.TestCase.run(TestCase.java:120)
at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:130)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
Basically the template lookup code assumes feature types can only come
from within GeoServer, but with feature portrayal that's not the case,
they can also come from a remote WFS that's provided as part of the
request parameters (as opposed to being registered as a WFS datastore).
I could fix that easily... I'm just wondering what's up about the
kml code, it seems to me the code on trunk is "old" compared
to the one on 1.7.x? Was the merge from the kml merge forward ported
to trunk?
Cheers
Andrea
--
Andrea Aime
OpenGeo - http://opengeo.org
Expert service straight from the developers.