groovy.lang.MissingPropertyException

204 views
Skip to first unread message

Selcuk OZTURK

unread,
Sep 23, 2013, 10:19:20 AM9/23/13
to ve...@googlegroups.com
Hi all,
I am trying the websocket example

Server.groovy
def server = vertx.createHttpServer()

server
.websocketHandler{ ws ->
   
Pump.createPump(ws, ws).start()
}.listen(9090, "localhost")

Client side
<script type="text/javascript">
 
       
var socket = new WebSocket("ws://localhost:9090");
 
        socket
.onmessage = function(event) {
            console
.log("Received data from websocket: ", event.data);
       
}
 
        socket
.onopen = function(event) {
            console
.log("Web Socket opened");
            socket
.send("Hello World");
       
};
 
        socket
.onclose = function(event) {
            console
.log("Web Socket closed");
       
};
 
   
</script>

When I connect to server. Websocket responds but I get the following error. Is there something that I am doing wrong?

$ vertx run Server.groovy

Exception in Groovy verticle
groovy.lang.MissingPropertyException: No such property: Pump for class: Server
    at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:50)
    at org.codehaus.groovy.runtime.callsite.PogoGetPropertySite.getProperty(PogoGetPropertySite.java:49)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callGroovyObjectGetProperty(AbstractCallSite.java:231)
    at Server$_run_closure1.doCall(Server.groovy:4)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
    at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
    at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:272)
    at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:909)
    at groovy.lang.Closure.call(Closure.java:411)
    at groovy.lang.Closure.call(Closure.java:427)
    at org.vertx.groovy.core.http.impl.DefaultHttpServer$_websocketHandler_closure3.doCall(DefaultHttpServer.groovy:54)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
    at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
    at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:272)
    at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:909)
    at groovy.lang.Closure.call(Closure.java:411)
    at org.codehaus.groovy.runtime.ConvertedClosure.invokeCustom(ConvertedClosure.java:51)
    at org.codehaus.groovy.runtime.ConversionHandler.invoke(ConversionHandler.java:81)
    at com.sun.proxy.$Proxy9.handle(Unknown Source)
    at org.vertx.java.core.http.impl.ServerConnection.handleWebsocketConnect(ServerConnection.java:233)
    at org.vertx.java.core.http.impl.DefaultHttpServer$ServerHandler.handshake(DefaultHttpServer.java:708)
    at org.vertx.java.core.http.impl.DefaultHttpServer$ServerHandler.doMessageReceived(DefaultHttpServer.java:646)
    at org.vertx.java.core.http.impl.DefaultHttpServer$ServerHandler.doMessageReceived(DefaultHttpServer.java:542)
    at org.vertx.java.core.http.impl.VertxHttpHandler.channelRead(VertxHttpHandler.java:79)
    at org.vertx.java.core.net.impl.VertxHandler.channelRead(VertxHandler.java:156)
    at io.netty.channel.DefaultChannelHandlerContext.invokeChannelRead(DefaultChannelHandlerContext.java:334)
    at io.netty.channel.DefaultChannelHandlerContext.fireChannelRead(DefaultChannelHandlerContext.java:320)
    at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:173)
    at io.netty.channel.DefaultChannelHandlerContext.invokeChannelRead(DefaultChannelHandlerContext.java:334)
    at io.netty.channel.DefaultChannelHandlerContext.fireChannelRead(DefaultChannelHandlerContext.java:320)
    at io.netty.handler.codec.ByteToMessageDecoder.handlerRemoved(ByteToMessageDecoder.java:109)
    at io.netty.channel.DefaultChannelPipeline.callHandlerRemoved0(DefaultChannelPipeline.java:524)
    at io.netty.channel.DefaultChannelPipeline.callHandlerRemoved(DefaultChannelPipeline.java:518)
    at io.netty.channel.DefaultChannelPipeline.remove0(DefaultChannelPipeline.java:348)
    at io.netty.channel.DefaultChannelPipeline.remove(DefaultChannelPipeline.java:319)
    at io.netty.channel.DefaultChannelPipeline.remove(DefaultChannelPipeline.java:296)
    at org.vertx.java.core.http.impl.cgbystrom.FlashPolicyHandler.decode(FlashPolicyHandler.java:77)
    at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:231)
    at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:131)
    at io.netty.channel.DefaultChannelHandlerContext.invokeChannelRead(DefaultChannelHandlerContext.java:334)
    at io.netty.channel.DefaultChannelHandlerContext.fireChannelRead(DefaultChannelHandlerContext.java:320)
    at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:785)
    at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:100)
    at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:497)
    at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:465)
    at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:359)
    at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:101)
    at java.lang.Thread.run(Thread.java:724)

Tim Yates

unread,
Sep 23, 2013, 10:22:38 AM9/23/13
to ve...@googlegroups.com
Tried:

import org.vertx.groovy.core.streams.Pump

At the top of your Server.groovy?

Tim

--
You received this message because you are subscribed to the Google Groups "vert.x" group.
To unsubscribe from this group and stop receiving emails from it, send an email to vertx+un...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Selcuk OZTURK

unread,
Sep 23, 2013, 11:31:19 AM9/23/13
to ve...@googlegroups.com
Oh sorry my bad.
I didn't realize that I import org.vertx.java.core.streams.Pump instead of groovy
Thanks

Tim Fox

unread,
Sep 23, 2013, 1:01:24 PM9/23/13
to ve...@googlegroups.com
It's a groovy verticle so you should use the groovy pump class as Tim
explained

On 23/09/13 16:31, Selcuk OZTURK wrote:
> Oh sorry my bad.
> I didn't realize that I import org.vertx.*java*.core.streams.Pump instead
> of groovy
> Thanks
>
>
> On Monday, September 23, 2013 5:22:38 PM UTC+3, Tim Yates wrote:
>> Tried:
>>
>> import org.vertx.groovy.core.streams.Pump
>>
>> At the top of your Server.groovy?
>>
>> Tim
>>
>> On 23 September 2013 15:19, Selcuk OZTURK <selcu...@gmail.com<javascript:>
>>> wrote:
>>> Hi all,
>>> I am trying the websocket example
>>>
>>> *Server.groovy*
>>> email to vertx+un...@googlegroups.com <javascript:>.

Jez P

unread,
Sep 24, 2013, 7:32:23 AM9/24/13
to ve...@googlegroups.com
Sometimes IDE "error assist", especially in IntelliJ catches us out (can't always see the fully qualified package when selecting which class to import), suspect this may have been the case here. I've been burned by that a few times, eventually you get used to recognising the errors and going straight to the packages on the imports as likely culprits. 
Reply all
Reply to author
Forward
0 new messages