Transferring object graph over RMI

Hi all,
I'm designing a client-server thingy, and am intending it to communicate over RMI. I'm currently designing a filter mechanism to let the client see a certain subset of the state (essentially an object graph), manipulate this, and transfer updates of it back to the server, which then are propagated to the other clients and so on.
Any tips and tricks to take into account when transfering interconnected objects over RMI? (They don't need remove references, apart from the state transfer process, all local references are sufficient.) Also, I'd like to not transfer the entire "graph", only updates to it as they happen.
I have a couple of ideas, I'd just like to hear your input before I dwelve more into the mechanics of them..
Thanks!
/C

Go for it.
Just think clearly about where the objects exist, and what get's transferred:
o What objects are on the clients?.
o What is a shared remote object?
o What objects get passed from client to server? What objects are returned to clients?

Similar Messages

  • Objects passed over RMI?

    When passing a serializable object over RMI (such as an ArrayList) which contains other objects, do the objects contained within this object (e.g. within the ArrayList) need to be serializable also?

    RMI server is very easy, if you want to make clear
    about this problem .
    you must read two interface . RemoteCall , RemoteRef
    Socket clientSecket = new Socket(RemoteHost ,port);
    OutputStream outputStream = clientSecket
    .getoutputStream();
    ObjectOutputStream out = new
    ObjectOutputStream(outputStream)
    out.write(Object);//
    then send a Object to server. if the object not be
    implements java.io.Serialisize , Exception will
    throw.
    are you clear ????? Sha BI ! !!!!!!Are you clear? RMI servers are much simpler than this, and you certainly don't need to know anything about either the RemoteCall or the RemoteRef interface. All this is done behind the scenes for you in RMI, just do call and return. Everyything passed or returned must be serializable, otherwise you get a NotSerializableException.

  • Domain design causing full object graph serialization

    Hello,
    I work on a project, based on 3-layer-architecture. We have rich client developed on swing, application server and we persist our domain objects in the database.
    We map the domain objects using hibernate, send the same objects (means, we use POJOs and don't use DTO) via spring from application server to the server and visa versa in case the objects are to be saved, deleted etc.
    We use an object identity store on the client side, in which all already loaded objects are stored.
    My challenge is as follows:
    - Since an object is stored in the object store, the same certain object is used in every GUI module. Imagine, we have customer, account and a list of transactions per account. In practice, let's say:
    1 customer
    2 accounts
    1000 transactions per account which ever exist
    - In one of the modules, the used loaded all list of transactions. So, at that moment, 1 customer object, 2 accounts and 2000 transaction objects are bound to each other via java references (object graph).
    - On another module, the user wants to edit a very small attribute of customer object, say he corrects his birthday date and saves it.
    - Saving operation sends the customer object to the server. But the problem is, a very big object graph hangs on this one little customer object and are serialized to the server, although the
    service.save(customer);is called, and this costs extremely much time for our application.
    boldSOLUTION:*bold* We solved the problem with a hack, as we used the serialization over XStream framework from Thoughtworks in xml-format. We could set a cut in the serialization and have serialized only the customer object for that use case.
    So the problem for the save-use case was solved. This has a disadventage: the loading time (server-client (de-)serialization) using xml is longer than the java standard, especially remarkable if you load a big number of objects.
    I've read many articles about the enterprise architectures which are related to domain objects, dto, serialization. It is not uncommon to avoid DTOs and use POJOs on the server and client as well, if the domain objects don't contain business logic. So, I just wonder, how the problem above should be solved smartly, if the non-DTO, say POJO alternative is chosen.
    I appreciate your opinions.
    I hope my question is not too long. Thanks in advance,
    A sample code:
    (The concrete case in our application requires the navigability from customer to account)
    public class Customer implements Serializable {
         private Set<Account> acounts = new HashSet<Account>();
         // Getters, setters
    public class Account implements Serializable {
         private Set<AccTransaction> acounts = new HashSet<AccTransaction>();
         // Getters, setters
    public class AccTransaction implements Serializable {
         private String operation;
         private Timestamp timestamp;
         // Getters, setters
    }Alper

    acelik wrote:
    Thanks for the quick answer.
    The numbers are just wildly guesses, in order to keep the sample simple.
    Actually we develop a system for automobile industry. So, instead of customer, you may think of a company, like Ford. Account would be then Fiesta. Instead of AccTransaction we may think a huge number of car pieces (clima, motor, radio, etc.).
    So hierarchically we have
    Company (Ford, Opel, etc)
    Model (Fiesta, Astra, etc.)
    Piece (1000 pieces per model, so Fiesta, Opel have 1000 different pieces each)
    The problem is, if I loaded the Ford->Fiesta->1000x pieces for one view and then switch to another view. In the second view, I rename Fiesta to Fiesta II, and want to save this renaming operation using:
    What exactly does that represent?
    If you want to rename an existing car then you need logic to do exactly that. You do not copy the entire tree.
    If however you do want to copy the entire tree then that is in fact what you must do. Although I seriously doubt that there is a valid business requirement for that. In terms of efficiency though you could write a proc that did that rather than propogating the tree.
    Although further if you do in fact have two cars which use the same inventory item(s) then, again, you do not copy the entire tree because you are not creating a brand new inventory item. Instead you should only be pointing to an existing item.
    I wonder how this problem is solved smartly, if you guys share domain objects between the client and server, and avoid DTO.The first step is to start with actual business requirements.

  • Connection Aborted over RMI

    Hi All,
    I am sending some data over an RMI call to store it in to a File.
    i.e client sends an objcet over RMI and server saves this object in to a File.
    but some time the this call is terminated before it reaches the server and socket conncetion is closed.
    The stack Trace of this exception is :
    at $Proxy5.storeInitialCondition(Unknown Source)
                    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
                    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
                    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
                    at java.lang.reflect.Method.invoke(Unknown Source)
                    at com.pg.orion.basic.rmiservlet.DynamicProxy.invoke(DynamicProxy.java:346)
                    at $Proxy6.storeInitialCondition(Unknown Source)
                    at com.pg.orion.basic.simulation.adapter.SimulationAdapter.saveSnapshot(SimulationAdapter.java:1054)
                    at com.pg.orion.basic.simulation.adapter.SimulationAdapter.processSimulationEvent(SimulationAdapter.java:573)
                    at com.pg.orion.basic.simulation.adapter.SimulationAdapter.access$100(SimulationAdapter.java:44)
                    at com.pg.orion.basic.simulation.adapter.SimulationAdapter$1.run(SimulationAdapter.java:192)
                    at com.pg.orion.basic.threads.DefaultLoopThread.run(DefaultLoopThread.java:206)
                    at java.lang.Thread.run(Unknown Source)
    Caused by: java.net.SocketException: Software caused connection abort: socket write error
                    at java.net.SocketOutputStream.socketWrite0(Native Method)
                    at java.net.SocketOutputStream.socketWrite(Unknown Source)
                    at java.net.SocketOutputStream.write(Unknown Source)
                    at java.io.BufferedOutputStream.flushBuffer(Unknown Source)
                    at java.io.BufferedOutputStream.write(Unknown Source)
                    at java.io.ObjectOutputStream$BlockDataOutputStream.drain(Unknown Source)
                    at java.io.ObjectOutputStream$BlockDataOutputStream.writeByte(Unknown Source)
                    at java.io.ObjectOutputStream.writeFatalException(Unknown Source)
                    at java.io.ObjectOutputStream.writeObject(Unknown Source)
                    at sun.rmi.server.UnicastRef.marshalValue(Unknown Source)
                    ... 16 moreI thought that this is because of the size of the data,but in my testing some times i am able to store big size data.
    Is there any Threshold of RMI or socket to write data?
    If any of You have any idea pls Lat me know.
    Thanks

    It is likely that the other end has closed the connection for some reason.
    I would check if the server side has thrown an exception or closed the connection.
    The main limit for RMI is the max memory the server process. Anything you send needs to fit comfortably into memory. (from all the client requests combined)

  • Object serialization over an RS232 port

    Hi
    Thanks in advance for any help!!!
    I have just started embarking on a java project that incorporates both J2SE and J2ME technologies.
    In short:
    I am developing an embedded java system using a JStamp development kit. In conjunction to this I am also developing a java pc GUI application that is used for setting up a configuration for my embedded system.
    So here�s what I want to do.
    Firstly I would like to input a configuration via my java pc GUI application, and then once this configuration is complete I would like to wrap it in an object. Once the object has been created I would like to serialize it and send it over an Rs232 port as some kind of �OutputStream�. I would expect my embedded system to be listening to its serial port for this stream and then once received reconstruct the stream into it�s original object. The embedded system would then replace its current configuration with the new object.
    Questions:
    1.What kind of data streams and filtering streams will I need on the java pc application side (or how can I program these streams myself?)?
    2.How can I reconstruct this serialized object at the embedded system side

    From the javadoc:
    Multiple references to a single object are encoded using a reference sharing mechanism so that graphs of objects can be restored to the same shape as when the original was written.
    This means ObjectOutputStream writes each Object instance once. It tracks instances which have been written and if they are written again, it only sends a "reference" to that object. This serves 2 purposes: 1) most importantly, preserves the integrity of the object graph and 2) reduces the amount of data.
    Two techniques to solve this:
    1) open a new stream each time
    2) use the reset method

  • Display Data on waveform chart or XY graph over a long period of time

    Display Data on waveform chart or XY graph over a long period of time
    Can anyone help?
    I am acquiring data from an Ni DAQ card with the following parameters - sample rate = 12800, number of samples = 4096. I want to extract order information so as to track changes in the amplitudes of certain frequency harmonics. So I use the sound and vibration toolkit to extract this information as shown in the attached Vi.  I will like to plot the resulting amplitudes against real-time starting at the time the Vi was run.  I really want the display to show these changes over long periods (eg. days, months and even years).
    Problem.
    I have tried to plot the Y component of the resulting magnitude for a given order on a waveform chart. My choice of the waveform chart is because I also want to display  alarm limits (using the mask and limit vi) (I can't have these lines displayed on an XY graph plot).  I tried adjusting the scale offset using the property node and setting the offset to current time. However, the display on the X-axis can only show a span of  2 minutes as will be seen when you run the attached vi. I want the time display on the x-axis to be over a period of  days, months  and even years.  Is there a way to set the maximum scale on the x-axis to be say a year or so in future.
    I really want the display to be like the one in in the second attachment.
    Attached is a sample VI created using an Ni USB 9234 DAQ card. Any card will do but I am only getting the signal from one channel for this example
    I will appreciate any help that can be given to me.
    Thanks
    Attachments:
    Real-Time Graph Display.vi ‏170 KB
    Sampe screen1.doc ‏37 KB

    Long term testing can be tricky- and we'l get into that later.  Lets start with the basics that you have wrong.
    The vi as you have constructed it has only one memory element, the chart history length (default is 1024.)
    You can change the number of points the Chart will remember by Right-clicking the chart an select Chart History Length from the menu.
    But for a long term test - and one where you want to REMEMBER the first value you need a memeory element that is independant of the application.  Your PC WILL loose power or need to be rebooted eventually.  Heck it might even need to be replaced! you really need to store your data in a file. Preferablly in a file that is backed-up on a regular basis so you don't lose every point of data if the PC dies.  It realy hurts when you have to restart a 2yr test because you've lost the 18months of data you collected.
    For an application like this I would seperate my "collection" and "Evaluation" operations. 
    Have one vi that takes the reading and writes it to a file at a configurable rate  You may want 1reading  per minute for seveal days then 1 per hour for a few weeks- then maybe only once or twice a week for the next couple of years since you are looking for LONG TERM stability.  having too much data to evaluate can take a lot of digging to find the few things that interest you (but always take more that you think you need)
    Have another utility that COPIES the files, reads them and displays the data you are interested in that day.  The data you want to look at won't change over time HOWEVER, you WILL want to analize it in different ways depending on what the data trends look like.  Having seperate routines for collection and display allows you to update the display style and analisys without even stopping the collection vi (much less editing the vi)
    Jeff

  • Attempting to use SSL over RMI from a web application to a RMI server

    Hi,
    I am attempting to use SSL over RMI to a server. The client is the web
    application that is hosted on WebLogic and that attempts to connect to the
    server. There is no client or server verification at either the client or
    the server end. The code works outside of WebLogic 7/8 but has the following
    issues when running the web application inside weblogic:
    java.rmi.ConnectException: Connection refused to host: gkhanna1; nested
    exception is:
    java.net.ConnectException: Connection refused: connect
    java.net.ConnectException: Connection refused: connect
    at java.net.PlainSocketImpl.socketConnect(Native Method)
    at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:350)
    at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:137)
    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:124)
    at java.net.Socket.<init>(Socket.java:268)
    at java.net.Socket.<init>(Socket.java:95)
    at
    sun.rmi.transport.proxy.RMIDirectSocketFactory.createSocket(RMIDirectSocketF
    actory.java:20)
    at
    sun.rmi.transport.proxy.RMIMasterSocketFactory.createSocket(RMIMasterSocketF
    actory.java:115)
    at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:494)
    at sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:185)
    at sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel.java:169)
    at sun.rmi.server.UnicastRef.newCall(UnicastRef.java:313)
    at sun.rmi.registry.RegistryImpl_Stub.lookup(Unknown Source)
    at java.rmi.Naming.lookup(Naming.java:79)
    at
    com.hyperion.css.spi.impl.ntlm.NTLMConnectionClient.initConnection(NTLMConne
    ctionClient.java:59)
    at
    com.hyperion.css.spi.impl.ntlm.NTLMConnectionClient.getUsers(NTLMConnectionC
    lient.java:197)
    at com.hyperion.css.CSSAPIImpl.getUsers(Unknown Source)
    at com.hyperion.css.CSSAPIImpl.initialize(Unknown Source)
    at com.hyperion.css.CSSAPIImpl.initialize(Unknown Source)
    at jsp_servlet._jsp._app1.__app1signin._jspService(__app1signin.java:133)
    at weblogic.servlet.jsp.JspBase.service(JspBase.java:27)
    at
    weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(Servle
    tStubImpl.java:1058)
    at
    weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java
    :401)
    at
    weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java
    :445)
    at
    weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java
    :306)
    at
    weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(W
    ebAppServletContext.java:5445)
    at
    weblogic.security.service.SecurityServiceManager.runAs(SecurityServiceManage
    r.java:780)
    at
    weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletCo
    ntext.java:3105)
    at
    weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java
    :2588)
    at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:213)
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:189)
    The code at the client that initiates the connection:
    socketFactory = (SSLSocketFactory) SSLSocketFactory.getDefault();
    SSLSocket socket = (SSLSocket) socketFactory.createSocket(host, port);
    socket.setEnabledCipherSuites(CIPHERS);
    socket.setEnableSessionCreation(true);
    Any ideas?
    Thanks

    I don't see anything that indicates SSL was directly a factor in the
    failure.
    From the exception stack it looks like a more basic connectivity issue,
    maybe the URL for the
    RMI server is incorrect for some reason or the server was down.
    It looks like you are doing something like this:
    SSL client -> WLS server with servletA, servletA RMI client
    (com.hyperion.css) -> RMI server
    The connection failure appears to be the connection from servletA RMI client
    to the RMI server.
    Is that a correct picture?
    Tony
    "Gaurav Khanna" <[email protected]> wrote in message
    news:[email protected]...
    Hi,
    I am attempting to use SSL over RMI to a server. The client is the web
    application that is hosted on WebLogic and that attempts to connect to the
    server. There is no client or server verification at either the client or
    the server end. The code works outside of WebLogic 7/8 but has thefollowing
    issues when running the web application inside weblogic:
    java.rmi.ConnectException: Connection refused to host: gkhanna1; nested
    exception is:
    java.net.ConnectException: Connection refused: connect
    java.net.ConnectException: Connection refused: connect
    at java.net.PlainSocketImpl.socketConnect(Native Method)
    at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:350)
    at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:137)
    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:124)
    at java.net.Socket.<init>(Socket.java:268)
    at java.net.Socket.<init>(Socket.java:95)
    at
    sun.rmi.transport.proxy.RMIDirectSocketFactory.createSocket(RMIDirectSocketF
    actory.java:20)
    at
    sun.rmi.transport.proxy.RMIMasterSocketFactory.createSocket(RMIMasterSocketF
    actory.java:115)
    at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:494)
    at sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:185)
    at sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel.java:169)
    at sun.rmi.server.UnicastRef.newCall(UnicastRef.java:313)
    at sun.rmi.registry.RegistryImpl_Stub.lookup(Unknown Source)
    at java.rmi.Naming.lookup(Naming.java:79)
    at
    com.hyperion.css.spi.impl.ntlm.NTLMConnectionClient.initConnection(NTLMConne
    ctionClient.java:59)
    at
    com.hyperion.css.spi.impl.ntlm.NTLMConnectionClient.getUsers(NTLMConnectionC
    lient.java:197)
    at com.hyperion.css.CSSAPIImpl.getUsers(Unknown Source)
    at com.hyperion.css.CSSAPIImpl.initialize(Unknown Source)
    at com.hyperion.css.CSSAPIImpl.initialize(Unknown Source)
    at jsp_servlet._jsp._app1.__app1signin._jspService(__app1signin.java:133)
    at weblogic.servlet.jsp.JspBase.service(JspBase.java:27)
    at
    weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(Servle
    tStubImpl.java:1058)
    at
    weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java
    :401)
    at
    weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java
    :445)
    at
    weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java
    :306)
    at
    weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(W
    ebAppServletContext.java:5445)
    at
    weblogic.security.service.SecurityServiceManager.runAs(SecurityServiceManage
    r.java:780)
    at
    weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletCo
    ntext.java:3105)
    at
    weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java
    :2588)
    at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:213)
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:189)
    The code at the client that initiates the connection:
    socketFactory = (SSLSocketFactory) SSLSocketFactory.getDefault();
    SSLSocket socket = (SSLSocket) socketFactory.createSocket(host, port);
    socket.setEnabledCipherSuites(CIPHERS);
    socket.setEnableSessionCreation(true);
    Any ideas?
    Thanks

  • How to draw cumulative line graph over the stacked bar chart?(SSRS)

    Hello, 
    I need your help to draw a cumulative line graph over this bar chart. 
    I need your help to draw a cumulative line graph over this bar chart in SSRS.
    The dimension (Category Group) is "Hour" in this case. and expression is sum of two distinct values like 'Y' and 'N' in Activity column(Series Groups). The sum(Activity=Y) in green color and sum(Activity='N') in Red color.
    I require to draw a cumulative line graph in this same chart, that should give the result of cumulative Sum(Activity) for each hour?? I mean sum of (Y+N) for each hour and that should be cumulative over the hour.
    I mean sum of (Y+N) for each hour and that should be cumulative over the hour.
    SSRS Version details:
    Microsoft SQL Server Reporting Services Designers 
    Version 10.50.1600.1
    --Siva

    Hi Siva,
    It seems that you need to verify your email address to post images, etc
    Besides,  Microsoft® SQL Server™ 2008 Reporting Services: Step by Step is a good choice to you. With STEP BY STEP, you work at your own pace through hands-on, learn-by-doing exercises. A companion CD includes data sets and sample code. You can download
    it from this link http://my.safaribooksonline.com/9780735626041 Click the Extras, you can get the samples and database from Supplemental Content.
    And there are vast of valuable articles and SQL Server Reporting Services Books Online in MSDN ,you can click these link to begin your learning journey, SQL Server Reporting Services 2008 Books Online:
    http://msdn.microsoft.com/en-us/library/ms159106(v=SQL.100).aspx 
    Besides these, there are still many valuable videos in Microsoft Webcast, click this link
    https://msevents.microsoft.com/cui/SearchDisplay.aspx?culture=en-US#culture=en-US;eventType=0;sortKey=;sortOrder=;pageEvent=false;hdnInitialCount=;searchcontrol=yes;kwdAny=Reporting%20service to register with a windows live ID, then download the ones you
    want.
    Hope this helps.
    Regards,
    Charlie Liao
    TechNet Community Support

  • A cycle is detected in the object graph.  This will cause an infinite loop.

    People,
    Looking for a little guidance.  Please point me in the correct direction if I am mistaken.  I am using Jersey 2.11 and generating JAXB definitions from XSD.
    I have a periodic exception that seems to be timing based.  If I change the timing of the message sent in anyway the error does not occur.  The other issue is that the cycle reported in the error changes some times, however, the cycles reported can not occur based on the XSD definition.  I have also dumped the message before sending and it definitely does not contain the cycle reported.
    In this specific scenario, I am sending a message of NotificationType which contains a list of DocumentType, however, DocumentType can never contain NotificationType so the following cycle is not possible:
    net.es.nsi.pce.discovery.jaxb.DocumentType@24d793f3 -> net.es.nsi.pce.discovery.jaxb.NotificationType@7f06bc07 -> net.es.nsi.pce.discovery.jaxb.DocumentType@24d793f3]
    I am wondering if there could be a different reason for receiving the following exception?
    Thank you for the help,
    John
    [code]
    [ERROR] [08/22/2014 11:16:22.307] [NSI-DISCOVERY-akka.actor.default-dispatcher-4] [akka://NSI-DISCOVERY/user/discovery-notificationRouter/$c] HTTP 500 Internal Server Error
    javax.ws.rs.ProcessingException: HTTP 500 Internal Server Error
            at org.glassfish.jersey.client.ClientRuntime.invoke(ClientRuntime.java:255)
            at org.glassfish.jersey.client.JerseyInvocation$1.call(JerseyInvocation.java:667)
            at org.glassfish.jersey.client.JerseyInvocation$1.call(JerseyInvocation.java:664)
            at org.glassfish.jersey.internal.Errors.process(Errors.java:315)
            at org.glassfish.jersey.internal.Errors.process(Errors.java:297)
            at org.glassfish.jersey.internal.Errors.process(Errors.java:228)        at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:424)
            at org.glassfish.jersey.client.JerseyInvocation.invoke(JerseyInvocation.java:664)
            at org.glassfish.jersey.client.JerseyInvocation$Builder.method(JerseyInvocation.java:424)
            at org.glassfish.jersey.client.JerseyInvocation$Builder.post(JerseyInvocation.java:333)
            at net.es.nsi.pce.discovery.actors.NotificationActor.onReceive(NotificationActor.java:100)
            at akka.actor.UntypedActor$$anonfun$receive$1.applyOrElse(UntypedActor.scala:167)
            at akka.actor.Actor$class.aroundReceive(Actor.scala:465)
            at akka.actor.UntypedActor.aroundReceive(UntypedActor.scala:97)        at akka.actor.ActorCell.receiveMessage(ActorCell.scala:516)
            at akka.actor.ActorCell.invoke(ActorCell.scala:487)
            at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:238)
            at akka.dispatch.Mailbox.run(Mailbox.scala:220)
            at akka.dispatch.ForkJoinExecutorConfigurator$AkkaForkJoinTask.exec(AbstractDispatcher.scala:393)
            at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)
            at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)
            at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)
            at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)
    Caused by: javax.ws.rs.InternalServerErrorException: HTTP 500 Internal Server Error
            at org.glassfish.jersey.message.internal.AbstractJaxbElementProvider.writeTo(AbstractJaxbElementProvider.java:152)
            at org.glassfish.jersey.message.internal.AbstractJaxbElementProvider.writeTo(AbstractJaxbElementProvider.java:85)
            at org.glassfish.jersey.message.internal.WriterInterceptorExecutor$TerminalWriterInterceptor.invokeWriteTo(WriterInterceptorExecutor.java:265)
            at org.glassfish.jersey.message.internal.WriterInterceptorExecutor$TerminalWriterInterceptor.aroundWriteTo(WriterInterceptorExecutor.java:250)
            at org.glassfish.jersey.message.internal.WriterInterceptorExecutor.proceed(WriterInterceptorExecutor.java:162)
            at org.glassfish.jersey.filter.LoggingFilter.aroundWriteTo(LoggingFilter.java:293)
            at org.glassfish.jersey.message.internal.WriterInterceptorExecutor.proceed(WriterInterceptorExecutor.java:162)
            at org.glassfish.jersey.message.internal.MessageBodyFactory.writeTo(MessageBodyFactory.java:1154)
            at org.glassfish.jersey.client.ClientRequest.writeEntity(ClientRequest.java:503)
            at org.glassfish.jersey.client.HttpUrlConnector._apply(HttpUrlConnector.java:315)
            at org.glassfish.jersey.client.HttpUrlConnector.apply(HttpUrlConnector.java:227)
            at org.glassfish.jersey.client.ClientRuntime.invoke(ClientRuntime.java:246)
            ... 22 more
    Caused by: javax.xml.bind.MarshalException
    - with linked exception:
    [Exception [EclipseLink-25003] (Eclipse Persistence Services - 2.5.0.v20130507-3faac2b): org.eclipse.persistence.exceptions.XMLMarshalException
    Exception Description: An error occurred marshalling the object
    Internal Exception: Exception [EclipseLink-25037] (Eclipse Persistence Services - 2.5.0.v20130507-3faac2b): org.eclipse.persistence.exceptions.XMLMarshalException
    Exception Description: A cycle is detected in the object graph.  This will cause an infinite loop: net.es.nsi.pce.discovery.jaxb.DocumentType@24d793f3 -> net.es.nsi.pce.discovery.jaxb.NotificationType@7f06bc07 -> net.es.nsi.pce.discovery.jaxb.DocumentType@24d793f3]
            at org.eclipse.persistence.jaxb.JAXBMarshaller.marshal(JAXBMarshaller.java:403)
            at org.glassfish.jersey.message.internal.XmlJaxbElementProvider.writeTo(XmlJaxbElementProvider.java:139)
            at org.glassfish.jersey.message.internal.AbstractJaxbElementProvider.writeTo(AbstractJaxbElementProvider.java:150)
            ... 33 more
    Caused by: Exception [EclipseLink-25003] (Eclipse Persistence Services - 2.5.0.v20130507-3faac2b): org.eclipse.persistence.exceptions.XMLMarshalException
    Exception Description: An error occurred marshalling the object
    Internal Exception: Exception [EclipseLink-25037] (Eclipse Persistence Services - 2.5.0.v20130507-3faac2b): org.eclipse.persistence.exceptions.XMLMarshalException
    Exception Description: A cycle is detected in the object graph.  This will cause an infinite loop: net.es.nsi.pce.discovery.jaxb.DocumentType@24d793f3 -> net.es.nsi.pce.discovery.jaxb.NotificationType@7f06bc07 -> net.es.nsi.pce.discovery.jaxb.DocumentType@24d793f3
            at org.eclipse.persistence.exceptions.XMLMarshalException.marshalException(XMLMarshalException.java:97)
            at org.eclipse.persistence.internal.oxm.XMLMarshaller.marshal(XMLMarshaller.java:911)
            at org.eclipse.persistence.internal.oxm.XMLMarshaller.marshal(XMLMarshaller.java:848)
            at org.eclipse.persistence.jaxb.JAXBMarshaller.marshal(JAXBMarshaller.java:401)
            ... 35 more
    Caused by: Exception [EclipseLink-25037] (Eclipse Persistence Services - 2.5.0.v20130507-3faac2b): org.eclipse.persistence.exceptions.XMLMarshalException
    Exception Description: A cycle is detected in the object graph.  This will cause an infinite loop: net.es.nsi.pce.discovery.jaxb.DocumentType@24d793f3 -> net.es.nsi.pce.discovery.jaxb.NotificationType@7f06bc07 -> net.es.nsi.pce.discovery.jaxb.DocumentType@24d793f3
            at org.eclipse.persistence.exceptions.XMLMarshalException.objectCycleDetected(XMLMarshalException.java:400)
            at org.eclipse.persistence.internal.oxm.XPathObjectBuilder.buildRow(XPathObjectBuilder.java:207)
            at org.eclipse.persistence.internal.oxm.TreeObjectBuilder.buildRow(TreeObjectBuilder.java:118)
            at org.eclipse.persistence.internal.oxm.TreeObjectBuilder.buildRow(TreeObjectBuilder.java:1)
            at org.eclipse.persistence.internal.oxm.XMLCompositeObjectMappingNodeValue.marshalSingleValue(XMLCompositeObjectMappingNodeValue.java:237)
            at org.eclipse.persistence.internal.oxm.XMLCompositeObjectMappingNodeValue.marshal(XMLCompositeObjectMappingNodeValue.java:149)
            at org.eclipse.persistence.internal.oxm.NodeValue.marshal(NodeValue.java:102)
            at org.eclipse.persistence.internal.oxm.record.ObjectMarshalContext.marshal(ObjectMarshalContext.java:59)
            at org.eclipse.persistence.internal.oxm.XPathNode.marshal(XPathNode.java:393)
            at org.eclipse.persistence.internal.oxm.XPathObjectBuilder.buildRow(XPathObjectBuilder.java:238)
            at org.eclipse.persistence.internal.oxm.TreeObjectBuilder.buildRow(TreeObjectBuilder.java:118)
            at org.eclipse.persistence.internal.oxm.TreeObjectBuilder.buildRow(TreeObjectBuilder.java:1)
            at org.eclipse.persistence.internal.oxm.XMLCompositeCollectionMappingNodeValue.marshalSingleValue(XMLCompositeCollectionMappingNodeValue.java:321)
            at org.eclipse.persistence.internal.oxm.XMLCompositeCollectionMappingNodeValue.marshal(XMLCompositeCollectionMappingNodeValue.java:104)
            at org.eclipse.persistence.internal.oxm.NodeValue.marshal(NodeValue.java:149)
            at org.eclipse.persistence.internal.oxm.NodeValue.marshal(NodeValue.java:102)
            at org.eclipse.persistence.internal.oxm.record.ObjectMarshalContext.marshal(ObjectMarshalContext.java:59)
            at org.eclipse.persistence.internal.oxm.XPathNode.marshal(XPathNode.java:393)
            at org.eclipse.persistence.internal.oxm.XPathObjectBuilder.buildRow(XPathObjectBuilder.java:238)
            at org.eclipse.persistence.internal.oxm.TreeObjectBuilder.buildRow(TreeObjectBuilder.java:118)
            at org.eclipse.persistence.internal.oxm.TreeObjectBuilder.buildRow(TreeObjectBuilder.java:1)
            at org.eclipse.persistence.internal.oxm.XMLMarshaller.marshal(XMLMarshaller.java:743)
            at org.eclipse.persistence.internal.oxm.XMLMarshaller.marshal(XMLMarshaller.java:901)
            ... 37 more
    [/code]

    Unfortunately, even this thread is unanswered, i am closing the thread.as it it creating problems for further posting

  • HT201269 I have upgraded to the iPhone 5s and I have transferred all information over but I do not know how to transfer the phone service. Please help

    I have upgraded to the iPhone 5s and I have transferred all information over but I do not know how to transfer the phone service. Please help

    The phone should have activated when you set the device up. If it didnt, contact your carrier

  • EJB3 Entities + Web Services: A cycle is detected in the object graph

    I have a Java EE 5 application, using Glassfish v2. My ejb project consists of a handful of entity beans, session beans, and this problem arose when I added a new web service.
    Here is a simple scenario borrowed from another forum post with a similar problem:
    Let's say I have a web service called getVehicle(int vehicleId) that returns a Vehicle object.
    Vehicle has a java.util.Set of Wheel objects.
    The Wheel object has a reference to its owner (Vehicle).
    The issue is this bi-directional relationship causes a cycle that the JAX system doesn�t like.
    Caused by: javax.xml.bind.MarshalException
    - with linked exception:
    [com.sun.istack.SAXException2: A cycle is detected in the object graph. This will cause infinitely deep XML: org.test.Vehicle at 13c6308 -> org.test.Wheel at 15880be -> org.test.Vehicle at 13c6308
                  at com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerImpl.java:282)
                  at com.sun.xml.bind.v2.runtime.BridgeImpl.marshal(BridgeImpl.java:110)
                  at com.sun.xml.bind.api.Bridge.marshal(Bridge.java:178)
                  at com.sun.xml.ws.message.jaxb.JAXBMessage.writePayloadTo(JAXBMessage.java:299)
                  ... 54 more
    The one bit of information that I found that might fix this doesn't do much for me:
    https://jaxb.dev.java.net/guide/Mapping_cyclic_references_to_XML.html
    What options do I have to make my soap method work?
    Thanks,
    Hugh                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   

    i have got the same issue�C
    how did you implement onCycleDetected method�H
    can you send your full code to my mail [email protected]
    thanks !

  • Saving object graph containing transient-new and attached objects

    Problem
    We have simple FK relationship A->B relationship and create inside the transaction (service façade method) a new instance of A:
    A a = new A().
    Later in the same transaction we read independent instance of B from DB and put it in the ralationship with A:
    a.setB(b);
    Afterthat (in the same transaction) we want to save the object graphstarting with instance ‘a’. We do it with
    pm.attachCopy(a);
    We get an Exception:
    <4|false|4.0.0EA5> kodo.util.UserException:
    The instance "mypackage.A-pypackage.A-14638" is already managed.
    FailedObject: mypackage.A - mypackage.A -14638 at kodo.jdo.PersistenceManagerImpl.processArgument(PersistenceManagerImpl.java:1259)
    Known solution
    Detach the instance ‘b’ before calling pm.attachCopy(a);
    We could achieve this for example using Autodetach=commit and puting read and save operations in separate transactional methods (façade calls).
    This solution is unsatifying, because we want to be able to manipulate object graph inside the transaction without caring explicitly about attach/detach semantic.
    Question
    We habe an heterogeneous object graph consisting of attached, detached and transient-new objects. How can we make the graph persistent with one API call on the roor object ?
    Which mapping settings have to be done ? How KODO decides which object is ‘new’ and shhould be inserted and which obejct has to be updated ?

    Denis,
    Even the makePersistent (...) call is redundant but not harmful as long
    as the instance is managed (and not detached).
    Denis Sukhoroslov wrote:
    Hi Andre,
    Not clear, why do you call pm.attachCopy(a) at all. I haven't worked with
    kodo 4.0 yet, but in 3.4.0 you just need to call pm.makePersistent(a). In
    the same way you can persist whole object graph, AFAIK.
    Denis.
    "Andre Teshler" <[email protected]> wrote in message
    news:[email protected]..
    Problem
    We have simple FK relationship A->B relationship and create inside the
    transaction (service fa??ade method) a new instance of A:
    A a = new A().
    Later in the same transaction we read independent instance of B from DB
    and put it in the ralationship with A:
    a.setB(b);
    Afterthat (in the same transaction) we want to save the object
    graphstarting with instance ???a???. We do it with
    pm.attachCopy(a);
    We get an Exception:
    <4|false|4.0.0EA5> kodo.util.UserException:
    The instance "mypackage.A-pypackage.A-14638" is already managed.
    FailedObject: mypackage.A - mypackage.A -14638 at
    kodo.jdo.PersistenceManagerImpl.processArgument(PersistenceManagerImpl.java:1259)
    Known solution
    Detach the instance ???b??? before calling pm.attachCopy(a);
    We could achieve this for example using Autodetach=commit and puting read
    and save operations in separate transactional methods (fa??ade calls).
    This solution is unsatifying, because we want to be able to manipulate
    object graph inside the transaction without caring explicitly about
    attach/detach semantic.
    Question
    We habe an heterogeneous object graph consisting of attached, detached and
    transient-new objects. How can we make the graph persistent with one API
    call on the roor object ?
    Which mapping settings have to be done ? How KODO decides which object is
    ???new??? and shhould be inserted and which obejct has to be updated ?

  • Load balancing over rmi requests

    On a cluster of ias10g (9041), Is it possible that all requests over RMI use a "virtual" hostname and port which directs them to a load balancing mechanism which then determines which of the operational OC4J instances should process this request?

    Does anyone know anything on this question?

  • JPA:A cycle is detected in the object graph

    HI Friends,
    I am facing bit too many errors while working with JPA.unfortunately we dont have proper examples which can provided  clarity.
    Here in my case : I have Two Entities
    One to One bidirectional.
      EMPLOYEE
      CUBICLE.
    Employee.java
    @Entity
    @Table(name = "CS1_EMPLOYEE")
    public class Employee {
         @Id
         private int id;
         private String name;
        @OneToOne(cascade=CascadeType.ALL)
        private Cubicle cubicle;
         public int getId() {
              return id;
         public void setId(int id) {
              this.id = id;
         public String getName() {
              return name;
         public void setName(String name) {
              this.name = name;
         public Cubicle getCubicle() {
              return cubicle;
         public void setCubicle(Cubicle assignedCubicle) {
              this.cubicle = assignedCubicle;
    Cubicle.java
    @Entity
    @Table(name = "CS1_CUBICLE")
    public class Cubicle {
         @Id
         private int id;
         private String cubeName;
         // Bidirectional
         @OneToOne(mappedBy="cubicle",cascade=CascadeType.ALL)
         private Employee employee;
         public int getId() {
              return id;
         public void setId(int id) {
              this.id = id;
         public String getCubeName() {
              return cubeName;
         public void setCubeName(String cubeName) {
              this.cubeName = cubeName;
         public Employee getEmployee() {
              return employee;
         public void setEmployee(Employee residentEmployee) {
              this.employee = residentEmployee;
    *sql file*
    CREATE TABLE "CS1_EMPLOYEE"
        "ID"           Integer    NOT NULL,
        "NAME"         Varchar (12) UNICODE,
        "CUBICLE_ID"   Integer,
        PRIMARY KEY ("ID")
    CREATE TABLE "CS1_CUBICLE"
    "ID"          Integer    NOT NULL,
        "CUBENAME"      Varchar (12) UNICODE,
        PRIMARY KEY ("ID")
    Session Bean(EJB)
    when i test this method i am gettig the error(Method In Bean)
    public Cubicle findCubicleById(int id)
         String jpql = "select c from Cubicle c where c.id = " +id;
             Query q = em.createQuery(jpql);
             Cubicle c = (Cubicle)q.getSingleResult();
             return c;
    error
    [com.sun.istack.SAXException2: A cycle is detected in the object graph. This will cause infinitely deep XML: com.sap.com.jpacasestudy1.model.Employee@1ae5bf7 -> com.sap.com.jpacasestudy1.model.Cubicle@75e38d -> com.sap.com.jpacasestudy1.model.Employee@1ae5bf7])->com.sap.engine.services.webservices.espbase.server.additions.exceptions.ProcessException: Connection IO Exception. Check nested exception for details. (Exception; nested exception is:  javax.xml.bind.MarshalException
    I am unable to trace what the error is.Any help from SDN Experts?
    Regards
    Chandra Dasari
    Edited by: chandra shekar dasari on Jul 16, 2009 1:48 PM:ver1te
    Edited by: chandra shekar dasari on Jul 16, 2009 1:49 PM:code re

    Unfortunately, even this thread is unanswered, i am closing the thread.as it it creating problems for further posting

  • Error passing a remote object in a rmi function call

    Hi,
    I've a problem passing an UnicastRemoteObject extended object in a rmi function call. I get the following error
    java.lang.IllegalArgumentException: argument type mismatch
    I've 2 Remote Objects: GalaxyRegistration and Station. I want to pass a Station Object as argument in a function from GalaxyRegistration. Does anyone know what the problem is?
    Here is the code:
    public class GalaxyRegistration
    extends UnicastRemoteObject
    implements GalaxyRegistrationInterface, Galaxy {
         public GalaxyRegistration() throws RemoteException {
         public void add(Station station) throws RemoteException {
              stations.addElement(station);
              System.out.println("Add Station " + station.getName());
    public class Station
    extends UnicastRemoteObject
    implements StationInterface {
         SystemInfo system;
         public Station(String name, String description, Coordinate position, Profile profile)
    throws RemoteException {
              system = new SystemInfo(name, description, position, profile);
    public class StationServer {
         Station station;
         public void run() {
              // create new Station
              System.out.println("Create new Station:");
              // register and bind new station
              try     {
                   station = new Station(name, descr, location, profile);
                   System.out.println("Station created ...");
                   GalaxyRegistrationInterface registry =
                             (GalaxyRegistrationInterface)
                             Naming.lookup
    ("//localhost/GalaxyRegistration");
                   System.out.println("Registry looked up ...");               
                   // >>>>>>>> NEXT LINE IS THE ERROR LINE <<<<<<<<<<<<<<     
                   registry.add(station);
              } catch(Exception e) {
                   System.out.println(e);
    }

    regardless of any other problems in your code, neither of the objects which you are subclassing from UnicastRemoteObject call the superclass constructor, which is a pretty basic flaw - in this case, it will lead to neither of these objects being exported properly.

Maybe you are looking for

  • I still can't get into my verizon

    I need to get my 5 land lines, but now my account locked me out... I haven't ever set one up. When I go to register, it says my phone is registered. When I put in my billing addy and soc it says they are incorrect??? I can't find a password. It is st

  • Mail crashes when displaying messages if GPGMail active.

    Mail crashed regularly when displaying the message content. I had to uninstall GPGTools (with GPGMail), then all was OK. I hope this can help!

  • Pdfmaker not working in word 2007

    Hi guys I'm an IT Technican in college. A guy in marketing department has problem with pdfmaker add-in in office word 2007. I logged in as administrator and there was pdfmaker button in word 2007, but when he logged in, he doesnt have the pdfmaker bu

  • How to Process SSAS measure groups individually through BIDS

    hi guys:   I know how to process measure groups individually via SSMS but I just can not find it at BIDS? Can anyone point that to me? thanks  Hui --Currently using Reporting Service 2000; Visual Studio .NET 2003; Visual Source Safe SSIS 2008 SSAS 20

  • TLS not working with Openssl Certs

    Hi I have been struggleing with a certificate problem for about two weeks now with no joy. Almost all the forums, tutorials and examples etc. I have tried are simply not working. Without fail I get the following exception or similar: [Root exception