Skip to main content

[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
 
 
 
 

Back to the top