[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
| [jetty-dev] BlazeDs3.x or 4.x are not working as excepted with Jetty 7.x or 8.x server | 
Hi,
 
I am trying access my Java POJO classes with BlazeDs deployed in Jetty server.
For small requests things are working fine. But for list(ArrayList) of java
object as response drill down to a hang in server. For detail see steps to
reproduce. 
 
*Steps to reproduce*: 
Just copying the code I used to simulate problem 
*part of MXML* 
        <mx:RemoteObject id="srv_RO" destination="product_RO"/> 
        <mx:DataGrid dataProvider="{srv_RO.getProducts.lastResult}" width="100%" height="100%" x="70" />
<mx:Button label="Get" click="srv_RO.getProducts()" /> 
==================================== 
*sumit/SumitProduct.java* 
package sumit; 
public class SumitProduct { 
    private String name; 
    private int price; 
    public String getName() { 
        return name; 
    } 
    public void setName(String name) { 
        this.name = name; 
    } 
    public int getPrice() { 
        return price; 
    } 
    public void setPrice(int price) { 
        this.price = price; 
    } 
} 
============================== 
*sumit/SumitProductService.java* 
package sumit; 
import java.util.ArrayList; 
import java.util.List; 
import java.util.Random; 
//import flex.messaging.io.ArrayCollection; 
public class SumitProductService { 
    private static final String[] MASTER_LIST = {"C", "FNM", "FRE", "F", "GOOG", 
"AIG", "CSCO", "MSFT", "AAPL", "YHOO", "BSX", "PORT","F", "TNT", "ESP", "RET", "V
BN", "EES"}; 
    public SumitProductService(){} 
    public List<SumitProduct> getProducts(){ 
        List<SumitProduct> list = new ArrayList<SumitProduct>(); 
        Random r = new Random(); 
        for (String s:MASTER_LIST){ 
            SumitProduct sq = new SumitProduct(); 
            sq.setName(s); 
            sq.setPrice(r.nextInt(50)); 
            list.add(sq); 
        } 
        return list; 
    } 
} 
  
 Actual Results: 
 Hang ... no result 
 Error is :- [BlazeDS]09:19:26.225 [ERROR] class sun.reflect.GeneratedMethodAccessor7 cannot access its superclass sun.reflect.MethodAccessorImpl
  
 Expected Results: 
 records set 
  
  
 Workaround (if any): 
 NO 
  
Stack trace after enbling debug in Jetty server: 
011-03-08 09:19:26.189:DBUG::REQUEST /samples/messagebroker/amf on org.eclipse.jetty.server.nio.SelectChannelConnector$3@16d3046
2011-03-08 09:19:26.189:DBUG::Got Session ID zq5tvow0ibsvcj2yqxgp5g2w from cookie
2011-03-08 09:19:26.190:DBUG::sessionManager=org.eclipse.jetty.server.session.HashSessionManager@1c8fb4b
2011-03-08 09:19:26.190:DBUG::session=org.eclipse.jetty.server.session.HashSessionManager$HashedSession:zq5tvow0ibsvcj2yqxgp5g2w@3695078
2011-03-08 09:19:26.190:DBUG::servlet=MessageBrokerServlet 
2011-03-08 09:19:26.190:DBUG::servlet holder= MessageBrokerServlet 
2011-03-08 09:19:26.190:DBUG::chain= null 
[BlazeDS]09:19:26.191 [INFO] Channel endpoint my-amf received request. 
2011-03-08 09:19:26.193:DBUG::loaded class flex.messaging.messages.RPCMessage from WebAppClassLoader@BlazeDS
2011-03-08 09:19:26.193:DBUG::loaded class flex.messaging.messages.RemotingMessage from WebAppClassLoader@BlazeDS
[BlazeDS]09:19:26.201 [DEBUG] Deserializing AMF/HTTP request 
Version: 3 
  (Message #0 targetURI=null, responseURI=/1) 
    (Array #0) 
      [0] = (Typed Object #0 'flex.messaging.messages.RemotingMessage') 
        operation = "getProducts" 
        source = null 
        timeToLive = 0 
        messageId = "78FF1C6C-B1BD-51DB-DEC6-93956597379A" 
        body = (Array #1) 
        timestamp = 0 
        clientId = null 
        headers = (Object #2) 
          DSId = "B64FC5E9-0B0E-2AB9-C2B5-2D74013589CB" 
          DSEndpoint = "my-amf" 
        destination = "product_RO" 
[BlazeDS]09:19:26.202 [DEBUG] Before invoke service: remoting-service 
  incomingMessage: Flex Message (flex.messaging.messages.RemotingMessage) 
    operation = getProducts 
    clientId = B64FC857-9A0A-9C00-013C-D650DB2E9BE4 
    destination = product_RO 
    messageId = 78FF1C6C-B1BD-51DB-DEC6-93956597379A 
    timestamp = 1299556166202 
    timeToLive = 0 
    body = 
    [ 
    ] 
    hdr(DSId) = B64FC5E9-0B0E-2AB9-C2B5-2D74013589CB 
    hdr(DSEndpoint) = my-amf 
2011-03-08 09:19:26.203:DBUG::loaded class flex.messaging.messages.MessagePerformanceUtils from WebAppClassLoader@BlazeDS
2011-03-08 09:19:26.204:DBUG::loaded class flex.messaging.messages.MessagePerformanceInfo from WebAppClassLoader@BlazeDS
2011-03-08 09:19:26.208:DBUG::loaded class flex.messaging.util.MethodMatcher$Match from WebAppClassLoader@BlazeDS
2011-03-08 09:19:26.209:DBUG::loaded class flex.messaging.util.MethodKey from WebAppClassLoader@BlazeDS
2011-03-08 09:19:26.210:DBUG::loaded class sumit.SumitProduct from WebAppClassLoader@BlazeDS
[BlazeDS]09:19:26.210 [DEBUG] Adapter 'java-object' called 'sumit.SumitProductService.getProducts(java.util.Arrays$ArrayList (Collection size:0)
)' 
2011-03-08 09:19:26.215:DBUG::loaded interface flex.messaging.util.PrettyPrintable from WebAppClassLoader@BlazeDS
2011-03-08 09:19:26.222:DBUG::loaded interface sun.reflect.MethodAccessor from WebAppClassLoader@BlazeDS
2011-03-08 09:19:26.223:DBUG::loaded class sun.reflect.MagicAccessorImpl from WebAppClassLoader@BlazeDS
2011-03-08 09:19:26.223:DBUG::loaded class sun.reflect.MethodAccessorImpl from WebAppClassLoader@BlazeDS
[BlazeDS]09:19:26.223 [DEBUG] Result: 'java.util.ArrayList (Collection size:18) 
  [0] = sumit.SumitProduct 
    price = 18 
    name = C 
  [1] = sumit.SumitProduct 
    price = 2 
    name = FNM 
  [2] = sumit.SumitProduct 
    price = 41 
    name = FRE 
  [3] = sumit.SumitProduct 
    price = 8 
    name = F 
  [4] = sumit.SumitProduct 
    price = 6 
    name = GOOG 
  [5] = sumit.SumitProduct 
    price = 16 
    name = AIG 
  [6] = sumit.SumitProduct 
    price = 35 
    name = CSCO 
  [7] = sumit.SumitProduct 
    price = 31 
    name = MSFT 
  [8] = sumit.SumitProduct 
    price = 3 
    name = AAPL 
  [9] = sumit.SumitProduct 
    price = 36 
    name = YHOO 
  [10] = sumit.SumitProduct 
    price = 4 
    name = BSX 
  [11] = sumit.SumitProduct 
    price = 4 
    name = PORT 
  [12] = sumit.SumitProduct 
    price = 48 
    name = F 
  [13] = sumit.SumitProduct 
    price = 32 
    name = TNT 
  [14] = sumit.SumitProduct 
    price = 21 
    name = ESP 
  [15] = sumit.SumitProduct 
    price = ' 
[BlazeDS]09:19:26.224 [DEBUG] After invoke service: remoting-service 
  reply: java.util.ArrayList (Collection size:18) 
  [0] = sumit.SumitProduct 
    price = 
[BlazeDS]09:19:26.225 [DEBUG] Serializing AMF/HTTP response 
Version: 3 
  (Message #0 targetURI=/1/onResult, responseURI=) 
    (Externalizable Object #0 'DSK') 
      (Externalizable Object #1 'flex.messaging.io.ArrayCollection') 
        (Array #2) 
          [0] = (Typed Object #3 'sumit.SumitProduct') 
2011-03-08 09:19:26.226:DBUG::loaded class flex.messaging.util.ExceptionUtil from WebAppClassLoader@BlazeDS
2011-03-08 09:19:26.226:DBUG::loaded class java.util.NoSuchElementException 
2011-03-08 09:19:26.226:DBUG::loaded class java.util.NoSuchElementException from null
[BlazeDS]09:19:26.225 [ERROR] class sun.reflect.GeneratedMethodAccessor7 cannot access its superclass sun.reflect.MethodAccessorImpl
java.lang.IllegalAccessError: class sun.reflect.GeneratedMethodAccessor7 cannot access its superclass sun.reflect.MethodAccessorImpl
        at sun.misc.Unsafe.defineClass(Native Method) 
        at sun.reflect.ClassDefiner.defineClass(ClassDefiner.java:45) 
        at sun.reflect.MethodAccessorGenerator$1.run(MethodAccessorGenerator.java:381)
        at java.security.AccessController.doPrivileged(Native Method) 
        at sun.reflect.MethodAccessorGenerator.generate(MethodAccessorGenerator.java:377)
        at sun.reflect.MethodAccessorGenerator.generateMethod(MethodAccessorGenerator.java:59)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:28)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597) 
        at flex.messaging.io.BeanProxy$BeanProperty.get(BeanProxy.java:825) 
        at flex.messaging.io.BeanProxy.getBeanValue(BeanProxy.java:199) 
        at flex.messaging.io.BeanProxy.getValue(BeanProxy.java:173) 
        at flex.messaging.io.amf.Amf3Output.writePropertyProxy(Amf3Output.java:601)
        at flex.messaging.io.amf.Amf3Output.writeCustomObject(Amf3Output.java:532)
        at flex.messaging.io.amf.Amf3Output.writeObject(Amf3Output.java:207) 
        at flex.messaging.io.amf.Amf3Output.writeObjectArray(Amf3Output.java:854)
        at flex.messaging.io.amf.Amf3Output.writeAMFArray(Amf3Output.java:445) 
        at flex.messaging.io.amf.Amf3Output.writeObject(Amf3Output.java:193) 
        at flex.messaging.io.ArrayCollection.writeExternal(ArrayCollection.java:97)
        at flex.messaging.io.amf.Amf3Output.writePropertyProxy(Amf3Output.java:594)
        at flex.messaging.io.amf.Amf3Output.writeArrayCollection(Amf3Output.java:476)
        at flex.messaging.io.amf.Amf3Output.writeObject(Amf3Output.java:189) 
        at flex.messaging.messages.AbstractMessage.writeExternalBody(AbstractMessage.java:705)
        at flex.messaging.messages.AbstractMessage.writeExternal(AbstractMessage.java:435)
        at flex.messaging.messages.AsyncMessage.writeExternal(AsyncMessage.java:140)
        at flex.messaging.messages.AcknowledgeMessage.writeExternal(AcknowledgeMessage.java:94)
        at flex.messaging.messages.AcknowledgeMessageExt.writeExternal(AcknowledgeMessageExt.java:55)
        at flex.messaging.io.amf.Amf3Output.writePropertyProxy(Amf3Output.java:594)
        at flex.messaging.io.amf.Amf3Output.writeCustomObject(Amf3Output.java:532)
        at flex.messaging.io.amf.Amf3Output.writeObject(Amf3Output.java:112) 
        at flex.messaging.io.amf.Amf0Output.writeObject(Amf0Output.java:206) 
        at flex.messaging.io.amf.AmfMessageSerializer.writeObject(AmfMessageSerializer.java:196)
        at flex.messaging.io.amf.AmfMessageSerializer.writeBody(AmfMessageSerializer.java:186)
        at flex.messaging.io.amf.AmfMessageSerializer.writeMessage(AmfMessageSerializer.java:142)
        at flex.messaging.endpoints.amf.SerializationFilter.invoke(SerializationFilter.java:198)
        at flex.messaging.endpoints.BaseHTTPEndpoint.service(BaseHTTPEndpoint.java:291)
        at flex.messaging.MessageBrokerServlet.service(MessageBrokerServlet.java:353)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:847) 
        at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:546)
        at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:483)
        at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:119)
        at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:479)
        at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:230)
        at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:956)
        at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:411)
        at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:188)
        at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:891)
        at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117)
        at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:247)
        at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:151)
        at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:114)
        at org.eclipse.jetty.server.Server.handle(Server.java:349) 
        at org.eclipse.jetty.server.HttpConnection.handleRequest(HttpConnection.java:598)
        at org.eclipse.jetty.server.HttpConnection$RequestHandler.content(HttpConnection.java:1076)
        at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:805) 
        at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:212) 
        at org.eclipse.jetty.server.HttpConnection.handle(HttpConnection.java:427)
        at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:510)
        at org.eclipse.jetty.io.nio.SelectChannelEndPoint.access$000(SelectChannelEndPoint.java:34)
        at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:40)
        at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:450)
        at java.lang.Thread.run(Thread.java:662) 
2011-03-08 09:19:26.228:DBUG::RESPONSE /samples/messagebroker/amf 200 
2011-03-08 09:19:26.235:DBUG::EOF org.eclipse.jetty.io.EofException 
2011-03-08 09:20:26.242:DBUG::EXCEPTION 
 
Sumit
+91 80 25168745
STSD