I've just thought - could it be that Jetty is not loading up properly
in time for my request?  Is there any way to get it to load before the
first request is made?

Cheers,

Jon

On Mar 31, 11:16 am, Jon Britton <[email protected]>
wrote:
> Hi,
>
> I've got a servlet which uses the GeoTools library to contact a remote
> server and parse the XML, it then returns the results to the browser
> client.
>
> I've got a button on the client side which initiates the call to the
> servlet.  When I click this button the first time, I get an
> ClassCastException. However, when I click it a second time everything
> works fine!
>
> I don't think this is a problem with GeoTools as it works perfectly
> fine when I do a similar thing locally.  My first assumption was that
> GWT wasn't finding the necessary classes the first time around, but
> had them ready for the second time.  However I've added all the
> required jars to my WEB-INF/lib folder and I still get the same
> problem.
>
> Something must be happening between the first and second server call
> to make it work, but I don't know what it could be.  Maybe GWT is
> loading some required class or jar and not telling me about it?
>
> I've included my stack trace and servlet code snippet below, although
> I don't know how much use they'll be...
>
> Any help would be appreciated.
>
> Thanks,
>
> Jon
>
> STACK TRACE:
>
> Starting Jetty on port 8888
>    [WARN] Exception while dispatching incoming RPC call
> com.google.gwt.user.server.rpc.UnexpectedException: Service method
> 'public abstract java.util.ArrayList
> uk.ac.glam.wps.gwtwps.client.OWSRequestService.wpsGetCapabilities(java.lang 
> .String)'
> threw an unexpected exception: java.lang.RuntimeException: Parsing
> failed for ProviderSite: java.lang.RuntimeException: Unable to set
> property: href for eobject: {http://www.opengis.net/ows/1.1}
> OnlineResourceType
>         at
> com.google.gwt.user.server.rpc.RPC.encodeResponseForFailure(RPC.java:
> 378)
>         at
> com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:
> 581)
>         at
> com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServi 
> ceServlet.java:
> 188)
>         at
> com.google.gwt.user.server.rpc.RemoteServiceServlet.processPost(RemoteServi 
> ceServlet.java:
> 224)
>         at
> com.google.gwt.user.server.rpc.AbstractRemoteServiceServlet.doPost(Abstract 
> RemoteServiceServlet.java:
> 62)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:713)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:806)
>         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:
> 396)
>         at org.mortbay.thread.QueuedThreadPool
> $PoolThread.run(QueuedThreadPool.java:488)
> Caused by: java.lang.RuntimeException: Parsing failed for
> ProviderSite: java.lang.RuntimeException: Unable to set property: href
> for eobject: {http://www.opengis.net/ows/1.1}OnlineResourceType
>         at org.geotools.xml.impl.ParseExecutor.visit(ParseExecutor.java:158)
>         at org.geotools.xml.impl.BindingWalker
> $BindingExecutionChain.execute(BindingWalker.java:212)
>         at org.geotools.xml.impl.BindingWalker.walk(BindingWalker.java:178)
>         at
> org.geotools.xml.impl.ElementHandlerImpl.endElement(ElementHandlerImpl.java :
> 222)
>         at org.geotools.xml.impl.ParserHandler.endElement(ParserHandler.java:
> 607)
>         at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown
> Source)
>         at
> org.apache.xerces.parsers.AbstractXMLDocumentParser.emptyElement(Unknown
> Source)
>         at
> org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown
> Source)
>         at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl
> $FragmentContentDispatcher.dispatch(Unknown Source)
>         at
> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown
> Source)
>         at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
>         at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
>         at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
>         at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
>         at org.geotools.xml.Parser.parse(Parser.java:223)
>         at org.geotools.xml.Parser.parse(Parser.java:151)
>         at
> org.geotools.data.wps.response.WPSGetCapabilitiesResponse.<init>(WPSGetCapa 
> bilitiesResponse.java:
> 59)
>         at
> org.geotools.data.wps.WPS1_0_0$GetCapsRequest.createResponse(WPS1_0_0.java:
> 110)
>         at
> org.geotools.data.ows.AbstractWPS.internalIssueRequest(AbstractWPS.java:
> 419)
>         at
> org.geotools.data.wps.WebProcessingService.issueRequest(WebProcessingServic 
> e.java:
> 231)
>         at
> org.geotools.data.ows.AbstractWPS.negotiateVersion(AbstractWPS.java:
> 219)
>         at org.geotools.data.ows.AbstractWPS.<init>(AbstractWPS.java:86)
>         at
> org.geotools.data.wps.WebProcessingService.<init>(WebProcessingService.java :
> 174)
>         at
> uk.ac.glam.wps.gwtwps.server.OWSRequestServiceImpl.wpsGetCapabilities(OWSRe 
> questServiceImpl.java:
> 33)
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:
> 39)
>         at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImp 
> l.java:
> 25)
>         at java.lang.reflect.Method.invoke(Method.java:597)
>         at
> com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:
> 562)
>         ... 22 more
> Caused by: java.lang.RuntimeException: Unable to set property: href
> for eobject: {http://www.opengis.net/ows/1.1}OnlineResourceType
>         at
> org.geotools.xml.AbstractComplexEMFBinding.setProperty(AbstractComplexEMFBi 
> nding.java:
> 286)
>         at
> org.geotools.xml.AbstractComplexEMFBinding.setProperties(AbstractComplexEMF 
> Binding.java:
> 211)
>         at
> org.geotools.xml.AbstractComplexEMFBinding.parse(AbstractComplexEMFBinding. 
> java:
> 145)
>         at org.geotools.xml.impl.ParseExecutor.visit(ParseExecutor.java:149)
>         ... 50 more
> Caused by: java.lang.ClassCastException: class
> org.geotools.util.CommonsConverterFactory
>         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.ja 
> va:
> 195)
>         at org.geotools.util.Converters.getConverterFactories(Converters.java:
> 86)
>         at org.geotools.util.Converters.factories(Converters.java:184)
>         at org.geotools.util.Converters.convert(Converters.java:154)
>         at org.geotools.util.Converters.convert(Converters.java:123)
>         at
> org.geotools.xml.AbstractComplexEMFBinding.convert(AbstractComplexEMFBindin 
> g.java:
> 300)
>         at
> org.geotools.xml.AbstractComplexEMFBinding.setProperty(AbstractComplexEMFBi 
> nding.java:
> 241)
>         ... 53 more
> [ERROR] 500 - POST /gwtwps/ows (127.0.0.1) 57 bytes
>    Request headers
>       Host: 127.0.0.1:8888
>       Connection: keep-alive
>       User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US)
> AppleWebKit/533.2 (KHTML, like Gecko) Chrome/5.0.342.8 Safari/533.2
>       Referer:http://127.0.0.1:8888/gwtwps/hosted.html?gwtwps
>       Accept: */*
>       Accept-Encoding: gzip,deflate,sdch
>       Accept-Language: en-GB,en-US;q=0.8,en;q=0.6
>       Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
>       Content-Length: 260
>       Origin:http://127.0.0.1:8888
>       X-GWT-Module-Base:http://127.0.0.1:8888/gwtwps/
>       Content-Type: text/x-gwt-rpc; charset=utf-8
>       X-GWT-Permutation: HostedMode
>    Response headers
>       Content-Type: text/plain
> com.google.gwt.user.client.rpc.StatusCodeException: The call failed on
> the server; see server log for details
>         at
> com.google.gwt.user.client.rpc.impl.RequestCallbackAdapter.onResponseReceiv 
> ed(RequestCallbackAdapter.java:
> 192)
>         at
> com.google.gwt.http.client.Request.fireOnResponseReceived(Request.java:
> 287)
>         at com.google.gwt.http.client.RequestBuilder
> $1.onReadyStateChange(RequestBuilder.java:393)
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:
> 39)
>         at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImp 
> l.java:
> 25)
>         at java.lang.reflect.Method.invoke(Method.java:597)
>         at com.google.gwt.dev.shell.MethodAdaptor.invoke(MethodAdaptor.java:
> 103)
>         at com.google.gwt.dev.shell.MethodDispatch.invoke(MethodDispatch.java:
> 71)
>         at
> com.google.gwt.dev.shell.OophmSessionHandler.invoke(OophmSessionHandler.jav a:
> 157)
>         at
> com.google.gwt.dev.shell.BrowserChannel.reactToMessagesWhileWaitingForRetur 
> n(BrowserChannel.java:
> 1713)
>         at
> com.google.gwt.dev.shell.BrowserChannelServer.invokeJavascript(BrowserChann 
> elServer.java:
> 165)
>         at
> com.google.gwt.dev.shell.ModuleSpaceOOPHM.doInvoke(ModuleSpaceOOPHM.java:
> 120)
>         at com.google.gwt.dev.shell.ModuleSpace.invokeNative(ModuleSpace.java:
> 507)
>         at
> com.google.gwt.dev.shell.ModuleSpace.invokeNativeObject(ModuleSpace.java:
> 264)
>         at
> com.google.gwt.dev.shell.JavaScriptHost.invokeNativeObject(JavaScriptHost.j 
> ava:
> 91)
>         at com.google.gwt.core.client.impl.Impl.apply(Impl.java)
>         at com.google.gwt.core.client.impl.Impl.entry0(Impl.java:188)
>         at sun.reflect.GeneratedMethodAccessor10.invoke(Unknown Source)
>         at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImp 
> l.java:
> 25)
>         at java.lang.reflect.Method.invoke(Method.java:597)
>         at com.google.gwt.dev.shell.MethodAdaptor.invoke(MethodAdaptor.java:
> 103)
>         at com.google.gwt.dev.shell.MethodDispatch.invoke(MethodDispatch.java:
> 71)
>         at
> com.google.gwt.dev.shell.OophmSessionHandler.invoke(OophmSessionHandler.jav a:
> 157)
>         at
> com.google.gwt.dev.shell.BrowserChannel.reactToMessages(BrowserChannel.java :
> 1668)
>         at
> com.google.gwt.dev.shell.BrowserChannelServer.processConnection(BrowserChan 
> nelServer.java:
> 401)
>         at
> com.google.gwt.dev.shell.BrowserChannelServer.run(BrowserChannelServer.java :
> 222)
>         at java.lang.Thread.run(Thread.java:619)
>
> SERVLET CODE:
>
> public ArrayList<ProcessDescriptor> wpsGetCapabilities(final String
> url) {
>         System.out.println("In wpsGetCapabilities with url " + url);
>
>         ArrayList<ProcessDescriptor> processDescriptors = new
> ArrayList<ProcessDescriptor>();
>
>         WebProcessingService wps;
>         try {
>                 wps = new WebProcessingService(new 
> URL("http://localhost:8080/wps/
> WebProcessingService?Service=WPS&Request=GetCapabilities"));
>                 WPSCapabilitiesType capabilities = wps.getCapabilities();
>
>                 EList processes = 
> capabilities.getProcessOfferings().getProcess();
>                 for (Iterator<ProcessBriefType> iterator = 
> processes.iterator();
> iterator.hasNext();) {
>                         ProcessBriefType object = (ProcessBriefType) 
> iterator.next();
>                         
> processDescriptors.add(WPSAdapter.processBriefAdapter(object));
>                         System.out.println(object.getIdentifier().getValue());
>                 }
>         } catch (ServiceException e) {
>                 // TODO Auto-generated catch block
>                 e.printStackTrace();
>         } catch (MalformedURLException e) {
>                 // TODO Auto-generated catch block
>                 e.printStackTrace();
>         } catch (IOException e) {
>                 // TODO Auto-generated catch block
>                 e.printStackTrace();
>         }
>
>         return processDescriptors;
>
>
>
> }

-- 
You received this message because you are subscribed to the Google Groups 
"Google Web Toolkit" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/google-web-toolkit?hl=en.

Reply via email to