Stop your debugger right at the error; and look at the class of each object; go
up through the hierarchy and if you have *two* DataStoreFactorySpi classes
(with different pointer ids); look at those two and check which classloader
they came from; and hopefully they will be from different jars or contexts or
something?
You may be able to force things at the start of your application by quickly
creating an instance of several of these classes (while you are in one class
loader). I do that at the start of uDig to ensure that things are actually
loaded for speed ...
Other than that talk to the geomajas guys; they are working in GWT with a great
deal of success.
--
Jody Garnett
On Wednesday, 27 April 2011 at 1:36 AM, Jon Britton wrote:
> Hi again,
>
> I've finally got around to debugging this, but it doesn't make a lot of sense
> to me. From what I can tell, it's finding the WFS plugin fine, but fails with
> the ShapefileDataStoreFactory. The problem seems to be the following line in
> FactoryRegistry:
>
> final Class<? extends T> factoryClass =
> factory.getClass().asSubclass(category);
>
> So, it thinks DataStoreFactorySpi is NOT a superclass of
> ShapefileDataStoreFactory. I assume this is a version problem as you
> suggested before...
>
> Any ideas?
>
> Thanks,
>
> Jon
>
> On 19 April 2011 23:20, Jody Garnett <[email protected]> wrote:
> > Yeah; looks okay to me as well. Next step would be to step through with a
> > debugger and watch the failure occur.
> > --
> > Jody Garnett
> >
> > On Wednesday, 20 April 2011 at 2:07 AM, Jody Garnett wrote:
> > > It still looks like you are in version hell; check out this line:
> > > > Caused by: java.lang.ClassCastException: class
> > > > org.geotools.data.shapefile.ShapefileDataStoreFactory
> > > > at java.lang.Class.asSubclass(Class.java:3018)
> > > > at
> > > > org.geotools.factory.FactoryRegistry.register(FactoryRegistry.java:866)
> > > > at
> > > > org.geotools.factory.FactoryRegistry.scanForPlugins(FactoryRegistry.java:773)
> > > > at
> > > > org.geotools.factory.FactoryRegistry.scanForPluginsIfNeeded(FactoryRegistry.java:808)
> > > > at
> > > > org.geotools.factory.FactoryRegistry.getServiceProviders(FactoryRegistry.java:195)
> > > > at
> > > > org.geotools.data.DataAccessFinder.getAvailableDataStores(DataAccessFinder.java:206)
> > > > at
> > > > org.geotools.data.DataStoreFinder.getAvailableDataStores(DataStoreFinder.java:114)
> > > > at
> > > > org.geotools.data.DataStoreFinder.getDataStore(DataStoreFinder.java:85)
> > > > at
> > > > uk.ac.glam.smartwps.server.OWSRequestServiceImpl.wfsGetCapabilities(OWSRequestServiceImpl.java:580)
> > > >
> > > >
> > > >
> > > >
> > >
> > >
> > > That is an error coming right out of a class loader check; as the
> > > factoryregistry is loading a class from a jar. Can you check your
> > > classpath again please?
> > >
> > > Jody
> > > On Tuesday, 19 April 2011 at 11:32 PM, Jon Britton wrote:
> > > > Hi Jody, thanks for the reply.
> > > >
> > > > I upgraded to 52n wps 2.0-RC7 which uses Geotools 2.6.1, and now use
> > > > the same version for the WFS module. However, I'm still getting a
> > > > ClassCastException (although it's slightly different). I assume this
> > > > means it's not finding the WFS plugin?
> > > >
> > > > Cheers,
> > > >
> > > > Jon
> > > >
> > > > com.google.gwt.user.server.rpc.UnexpectedException: Service method
> > > > 'public abstract
> > > > uk.ac.glam.smartwps.client.net.WFSGetCapabilitiesResponse
> > > > uk.ac.glam.smartwps.client.net.OWSRequestService.wfsGetCapabilities(java.lang.String)'
> > > > threw an unexpected exception: java.lang.ClassCastException: class
> > > > org.geotools.data.shapefile.ShapefileDataStoreFactory
> > > > at
> > > > com.google.gwt.user.server.rpc.RPC.encodeResponseForFailure(RPC.java:385)
> > > > at
> > > > com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:588)
> > > > at
> > > > com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:208)
> > > > at
> > > > com.google.gwt.user.server.rpc.RemoteServiceServlet.processPost(RemoteServiceServlet.java:248)
> > > > at
> > > > com.google.gwt.user.server.rpc.AbstractRemoteServiceServlet.doPost(AbstractRemoteServiceServlet.java:62)
> > > > at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
> > > > at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
> > > > at
> > > > org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
> > > > at
> > > > org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:362)
> > > > at
> > > > org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
> > > > at
> > > > org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
> > > > at
> > > > org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:729)
> > > > at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
> > > > at
> > > > org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
> > > > at
> > > > org.mortbay.jetty.handler.RequestLogHandler.handle(RequestLogHandler.java:49)
> > > > at
> > > > org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
> > > > at org.mortbay.jetty.Server.handle(Server.java:324)
> > > > at
> > > > org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505)
> > > > at
> > > > org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:843)
> > > > at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:647)
> > > > at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
> > > > at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380)
> > > > at
> > > > org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:395)
> > > > at
> > > > org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:488)
> > > > Caused by: java.lang.ClassCastException: class
> > > > org.geotools.data.shapefile.ShapefileDataStoreFactory
> > > > at java.lang.Class.asSubclass(Class.java:3018)
> > > > at
> > > > org.geotools.factory.FactoryRegistry.register(FactoryRegistry.java:866)
> > > > at
> > > > org.geotools.factory.FactoryRegistry.scanForPlugins(FactoryRegistry.java:773)
> > > > at
> > > > org.geotools.factory.FactoryRegistry.scanForPluginsIfNeeded(FactoryRegistry.java:808)
> > > > at
> > > > org.geotools.factory.FactoryRegistry.getServiceProviders(FactoryRegistry.java:195)
> > > > at
> > > > org.geotools.data.DataAccessFinder.getAvailableDataStores(DataAccessFinder.java:206)
> > > > at
> > > > org.geotools.data.DataStoreFinder.getAvailableDataStores(DataStoreFinder.java:114)
> > > > at
> > > > org.geotools.data.DataStoreFinder.getDataStore(DataStoreFinder.java:85)
> > > > at
> > > > uk.ac.glam.smartwps.server.OWSRequestServiceImpl.wfsGetCapabilities(OWSRequestServiceImpl.java:580)
> > > > 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:597)
> > > > at
> > > > com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:569)
> > > > ... 22 more
> > > >
> > > > On 19 April 2011 12:43, Jody Garnett <[email protected]> wrote:
> > > > > The two will conflict; GeoTools tries to find its plugins on the
> > > > > CLASSPATH; so if GeoTools 2.4.2 is around it will serve to confuse
> > > > > things for 2.7.0.
> > > > >
> > > > > There is a copy of 52N that uses a modern version of GeoTools; I
> > > > > recommend you upgrade!
> > > > >
> > > > > Jody
> > > > >
> > > > > On Tue, Apr 19, 2011 at 9:28 PM, Jon Britton
> > > > > <[email protected]> wrote:
> > > > > Hi,
> > > > > >
> > > > > > I'm trying to use the Geotools WFS module in my Google Web Toolkit
> > > > > > project. Unfortunately, when I try and create my WFSDataStore I get
> > > > > > a ClassCastException. Any idea what might cause this?
> > > > > >
> > > > > > My project uses Maven and Geotools 2.7.0. However, another of my
> > > > > > dependencies (52 North WPS client) uses Geotools 2.4.2 so there are
> > > > > > some of those jars there too... could this cause problems?
> > > > > >
> > > > > > My code and the exception are show below. Any help would be greatly
> > > > > > appreciated.
> > > > > >
> > > > > > Thanks!
> > > > > >
> > > > > > Jon
> > > > > >
> > > > > > CODE:
> > > > > >
> > > > > > String url1 =
> > > > > > "http://li199-25.members.linode.com:8080/geoserver/ows?service=wfs&version=1.1.0&request=GetCapabilities";
> > > > > >
> > > > > > Map<String, String> connectionParameters = new HashMap<String,
> > > > > > String>();
> > > > > > connectionParameters.put("WFSDataStoreFactory:GET_CAPABILITIES_URL",
> > > > > > url1);
> > > > > >
> > > > > > try {
> > > > > > //WFSDataStoreFactory fact;
> > > > > > WFSDataStore data = (WFSDataStore)
> > > > > > DataStoreFinder.getDataStore(connectionParameters);
> > > > > > String[] typeNames = data.getTypeNames();
> > > > > > ArrayList<WFSFeatureType> wfsLayers = new
> > > > > > ArrayList<WFSFeatureType>();
> > > > > > for (int i = 0; i < typeNames.length; i++) {
> > > > > > String typeName = typeNames[i];
> > > > > >
> > > > > > WFSFeatureType newLayer = new WFSFeatureType();
> > > > > > newLayer.setName(typeName);
> > > > > > newLayer.setTitle(data.getFeatureTypeTitle(typeName));
> > > > > > newLayer.setAbstract(data.getFeatureTypeAbstract(typeName));
> > > > > >
> > > > > > wfsLayers.add(newLayer);
> > > > > > }
> > > > > > response.setWFSLayers(wfsLayers);
> > > > > > } catch (IOException e) {
> > > > > > // TODO Auto-generated catch block
> > > > > > e.printStackTrace();
> > > > > > }
> > > > > >
> > > > > >
> > > > > >
> > > > > > EXCEPTION:
> > > > > >
> > > > > > [WARN] Exception while dispatching incoming RPC call
> > > > > > com.google.gwt.user.server.rpc.UnexpectedException: Service method
> > > > > > 'public abstract
> > > > > > uk.ac.glam.smartwps.client.net.WFSGetCapabilitiesResponse
> > > > > > uk.ac.glam.smartwps.client.net.OWSRequestService.wfsGetCapabilities(java.lang.String)'
> > > > > > threw an unexpected exception: java.lang.ClassCastException
> > > > > > at
> > > > > > com.google.gwt.user.server.rpc.RPC.encodeResponseForFailure(RPC.java:385)
> > > > > > at
> > > > > > com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:588)
> > > > > > at
> > > > > > com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:208)
> > > > > > at
> > > > > > com.google.gwt.user.server.rpc.RemoteServiceServlet.processPost(RemoteServiceServlet.java:248)
> > > > > > at
> > > > > > com.google.gwt.user.server.rpc.AbstractRemoteServiceServlet.doPost(AbstractRemoteServiceServlet.java:62)
> > > > > > at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
> > > > > > at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
> > > > > > at
> > > > > > org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
> > > > > > at
> > > > > > org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:362)
> > > > > > at
> > > > > > org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
> > > > > > at
> > > > > > org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
> > > > > > at
> > > > > > org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:729)
> > > > > > at
> > > > > > org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
> > > > > > at
> > > > > > org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
> > > > > > at
> > > > > > org.mortbay.jetty.handler.RequestLogHandler.handle(RequestLogHandler.java:49)
> > > > > > at
> > > > > > org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
> > > > > > at org.mortbay.jetty.Server.handle(Server.java:324)
> > > > > > at
> > > > > > org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505)
> > > > > > at
> > > > > > org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:843)
> > > > > > at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:647)
> > > > > > at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
> > > > > > at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380)
> > > > > > at
> > > > > > org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:395)
> > > > > > at
> > > > > > org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:488)
> > > > > > Caused by: java.lang.ClassCastException
> > > > > > at
> > > > > > javax.imageio.spi.ServiceRegistry.registerServiceProvider(ServiceRegistry.java:254)
> > > > > > at
> > > > > > org.geotools.factory.FactoryRegistry.register(FactoryRegistry.java:876)
> > > > > > at
> > > > > > org.geotools.factory.FactoryRegistry.scanForPlugins(FactoryRegistry.java:786)
> > > > > > at
> > > > > > org.geotools.factory.FactoryRegistry.getServiceProviders(FactoryRegistry.java:196)
> > > > > > at
> > > > > > org.geotools.factory.FactoryRegistry.getServiceProviders(FactoryRegistry.java:160)
> > > > > > at
> > > > > > org.geotools.data.DataStoreFinder.getAvailableDataStores(DataStoreFinder.java:115)
> > > > > > at
> > > > > > org.geotools.data.DataStoreFinder.getDataStore(DataStoreFinder.java:84)
> > > > > > at
> > > > > > uk.ac.glam.smartwps.server.OWSRequestServiceImpl.wfsGetCapabilities(OWSRequestServiceImpl.java:581)
> > > > > > 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:597)
> > > > > > at
> > > > > > com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:569)
> > > > > > ... 22 more
> > > > > >
> > > > > >
> > > > > > ------------------------------------------------------------------------------
> > > > > > Benefiting from Server Virtualization: Beyond Initial Workload
> > > > > > Consolidation -- Increasing the use of server virtualization is a
> > > > > > top
> > > > > > priority.Virtualization can reduce costs, simplify management, and
> > > > > > improve
> > > > > > application availability and disaster protection. Learn more about
> > > > > > boosting
> > > > > > the value of server virtualization.
> > > > > > http://p.sf.net/sfu/vmware-sfdev2dev
> > > > > > _______________________________________________
> > > > > > Geotools-gt2-users mailing list
> > > > > > [email protected]
> > > > > > https://lists.sourceforge.net/lists/listinfo/geotools-gt2-users
> > > > > >
> > > > >
> > > > >
> > > > > ------------------------------------------------------------------------------
> > > > > Benefiting from Server Virtualization: Beyond Initial Workload
> > > > > Consolidation -- Increasing the use of server virtualization is a top
> > > > > priority.Virtualization can reduce costs, simplify management, and
> > > > > improve
> > > > > application availability and disaster protection. Learn more about
> > > > > boosting
> > > > > the value of server virtualization.
> > > > > http://p.sf.net/sfu/vmware-sfdev2dev
> > > > > _______________________________________________
> > > > > Geotools-gt2-users mailing list
> > > > > [email protected]
> > > > > https://lists.sourceforge.net/lists/listinfo/geotools-gt2-users
> > > > >
> > > >
> > > >
> > >
> >
> > ------------------------------------------------------------------------------
> > Benefiting from Server Virtualization: Beyond Initial Workload
> > Consolidation -- Increasing the use of server virtualization is a top
> > priority.Virtualization can reduce costs, simplify management, and improve
> > application availability and disaster protection. Learn more about boosting
> > the value of server virtualization. http://p.sf.net/sfu/vmware-sfdev2dev
> > _______________________________________________
> > Geotools-gt2-users mailing list
> > [email protected]
> > https://lists.sourceforge.net/lists/listinfo/geotools-gt2-users
> >
>
>
------------------------------------------------------------------------------
WhatsUp Gold - Download Free Network Management Software
The most intuitive, comprehensive, and cost-effective network
management toolset available today. Delivers lowest initial
acquisition cost and overall TCO of any competing solution.
http://p.sf.net/sfu/whatsupgold-sd
_______________________________________________
Geotools-gt2-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/geotools-gt2-users