jackrabbit-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Felix Meschberger <Felix.Meschber...@day.com>
Subject Re: [jira] Erledigt: (JCR-291) jcr-server-webapp: RMI Registration unstable
Date Wed, 14 Dec 2005 10:01:41 GMT
Hi Doug,

Thanks for the additional info.

Given the name of the file your are trying to upload - mp3/u2-jesus.nzb 
- I assume you are trying to upload a big file, right ? Could this be 
the result of an issue with outdated jcr-rmi stream transmission from 
client to server ? Are you testing with the most recent checkout of the 
jcr-rmi project on both (client and server) sides ?

FYI: The last change to transmission of binary streams from client to 
server included reducing the memory footprint - formerly the whole 
stream was read into memory and then send to the client, while now the 
stream is sent in segments of at most 4K.

Regards
Felix

Duke Fong schrieb:
> Felix.
>
> Here is my configuration:
>
> Server (embedded within Tomcat, via the JCR-RMI from the contrib).
>
> I am attaching my sample client code and the exception.
>
>
> -Duke
>
> ------
>
>
>
> package com.idc;
>
> import javax.jcr.*;
>
> public class RepoClient {
>
>     private static org.apache.log4j.Logger logger =
>             org.apache.log4j.Logger.getLogger(RepoClient.class);
>
>     public static final String rmiURI =
>             "//IDC19:1099/jackrabbit.repository";
>
>     protected static javax.jcr.Repository r =         null;
>     protected static Session s  = null;
>
>     static{
>         try{
>
>             System.setProperty("java.rmi.server.useCodebaseOnly", "true");
>         } catch(Exception e){
>             e.printStackTrace();
>             logger.error(e);
>         }
>
>     }
>     /**
>      *
>      */
>     private RepoClient(){}
>
>     /**
>      *
>      */
>     public static void connectRMI() {
>
>
>         try {
>
>             r =
>                     new
> org.apache.jackrabbit.rmi.client.ClientRepositoryFactory().getRepository(
>                             rmiURI);
>             if ( null!=r ){
>
>                 s = r.login(new javax.jcr.SimpleCredentials(
>                         "username", "password".toCharArray()));
>
>                 logger.info("JCR SESSION BOUNDED:   " +
> s.getRootNode().toString());
>                 //RepoTest.dump(s.getRootNode());
>
>             }
>
>
>         } catch (NoClassDefFoundError e) {
>             logger.error(e);
>         } catch (Exception e) {
>             logger.error(e);
>         }
>    }
>
>
>     /**
>      *
>      */
>     public static final void shutdownTest(){
>
>  
> ((org.apache.jackrabbit.core.RepositoryImpl)s.getRepository()).shutdown();
>
>
>     }
>
>
>     /**
>      *
>      */
>     public static final void addBinaryTest(){
>         java.io.File f =
>                 new java.io.File("C:/mp3/u2-jesus.nzb");
>         try {
>
>             com.idc.util.FSImport.importFile(s.getRootNode(), f);
>
>             s.save();
>             logger.debug("ADDED CONTENT.");
>         } catch (javax.jcr.RepositoryException e) {
>             e.printStackTrace();
>             logger.error(e);
>         } catch (java.io.IOException e) {
>             e.printStackTrace();
>             logger.error(e);
>         }
>     }
>
>
>
>     /**
>      *
>      * @param args
>      */
>     public static final void main(String args[]){
>
>         RepoClient.connectRMI();
>         RepoClient.addNodeTest();
>
>     }
>
> }
>
> EXCEPTION:
> ---------------------------------------------------------------------
>
> org.apache.jackrabbit.rmi.client.RemoteRepositoryException: error
> marshalling arguments; nested exception is: 
> 	java.net.SocketException: Software caused connection abort: socket
> write error: error marshalling arguments; nested exception is: 
> 	java.net.SocketException: Software caused connection abort: socket
> write error
> 	at
> org.apache.jackrabbit.rmi.client.ClientNode.setProperty(ClientNode.java:127)
> 	at
> org.apache.jackrabbit.rmi.client.ClientNode.setProperty(ClientNode.java:162)
> 	at com.idc.util.FSImport.importFile(FSImport.java:90)
> 	at com.idc.RepoClient.addBinaryTest(RepoClient.java:152)
> 	at com.idc.RepoClient.main(RepoClient.java:174)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39
> )
> 	at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl
> .java:25)
> 	at java.lang.reflect.Method.invoke(Method.java:585)
> 	at
> com.intellij.rt.execution.application.AppMain.main(AppMain.java:86)
> Caused by: java.rmi.MarshalException: error marshalling arguments; nested
> exception is: 
> 	java.net.SocketException: Software caused connection abort: socket
> write error
> 	at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:122)
> 	at
> org.apache.jackrabbit.rmi.server.ServerNode_Stub.setProperty(Unknown Source)
> 	at
> org.apache.jackrabbit.rmi.client.ClientNode.setProperty(ClientNode.java:123)
> 	... 9 more
> Caused by: java.net.SocketException: Software caused connection abort:
> socket write error
> 	at java.net.SocketOutputStream.socketWrite0(Native Method)
> 	at
> java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:92)
> 	at java.net.SocketOutputStream.write(SocketOutputStream.java:136)
> 	at
> java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:65)
> 	at java.io.BufferedOutputStream.write(BufferedOutputStream.java:109)
> 	at
> java.io.ObjectOutputStream$BlockDataOutputStream.drain(ObjectOutputStream.ja
> va:1676)
> 	at
> java.io.ObjectOutputStream$BlockDataOutputStream.setBlockDataMode(ObjectOutp
> utStream.java:1585)
> 	at
> java.io.ObjectOutputStream.writeFatalException(ObjectOutputStream.java:1395)
> 	at
> java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:294)
> 	at sun.rmi.server.UnicastRef.marshalValue(UnicastRef.java:258)
> 	at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:117)
> 	... 11 more
> java.rmi.MarshalException: error marshalling arguments; nested exception is:
>
> 	java.net.SocketException: Software caused connection abort: socket
> write error
> 	at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:122)
> 	at
> org.apache.jackrabbit.rmi.server.ServerNode_Stub.setProperty(Unknown Source)
> 	at
> org.apache.jackrabbit.rmi.client.ClientNode.setProperty(ClientNode.java:123)
> 	at
> org.apache.jackrabbit.rmi.client.ClientNode.setProperty(ClientNode.java:162)
> 	at com.idc.util.FSImport.importFile(FSImport.java:90)
> 	at com.idc.RepoClient.addBinaryTest(RepoClient.java:152)
> 	at com.idc.RepoClient.main(RepoClient.java:174)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39
> )
> 	at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl
> .java:25)
> 	at java.lang.reflect.Method.invoke(Method.java:585)
> 	at
> com.intellij.rt.execution.application.AppMain.main(AppMain.java:86)
> Caused by: java.net.SocketException: Software caused connection abort:
> socket write error
> 	at java.net.SocketOutputStream.socketWrite0(Native Method)
> 	at
> java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:92)
> 	at java.net.SocketOutputStream.write(SocketOutputStream.java:136)
> 	at
> java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:65)
> 	at java.io.BufferedOutputStream.write(BufferedOutputStream.java:109)
> 	at
> java.io.ObjectOutputStream$BlockDataOutputStream.drain(ObjectOutputStream.ja
> va:1676)
> 	at
> java.io.ObjectOutputStream$BlockDataOutputStream.setBlockDataMode(ObjectOutp
> utStream.java:1585)
> 	at
> java.io.ObjectOutputStream.writeFatalException(ObjectOutputStream.java:1395)
> 	at
> java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:294)
> 	at sun.rmi.server.UnicastRef.marshalValue(UnicastRef.java:258)
> 	at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:117)
> 	... 11 more
> 2005-12-13 09:57:23,622 [ERROR] [main]   (RepoClient.java:158)
> org.apache.jackrabbit.rmi.client.RemoteRepositoryException: error
> marshalling arguments; nested exception is: 
> 	java.net.SocketException: Software caused connection abort: socket
> write error: error marshalling arguments; nested exception is: 
> 	java.net.SocketException: Software caused connection abort: socket
> write error
>
>
>
>
>
> Duke K. Fong
> Integrated Data Corporation
> dfong@idc-global.com
> 310-367-8412
> 310-815-2800 ext. 215
> http://www.idc-global.com
>  
>
> -----Original Message-----
> From: Felix Meschberger [mailto:Felix.Meschberger@day.com] 
> Sent: Tuesday, December 13, 2005 2:09 AM
> To: jackrabbit-dev@incubator.apache.org
> Subject: Re: [jira] Erledigt: (JCR-291) jcr-server-webapp: RMI Registration
> unstable
>
> Hi Duke,
>
> Duke Fong schrieb:
>   
>> Hello all.
>>
>> I've been trying to work with the Jackrabbit JCR in Server/RMI mode.  
>> Read only and simple Value object insertions work fine.
>>
>> However, when I attempt to insert a file object (InputStream) via a 
>> JCR client to a JCR Server via RMI, I get a socket exception.
>>   
>>     
> Do you have sample code to reproduce and a stack trace at hand, so that we
> could find out, where the problem might be ?
>   
>> Has anyone successfully performed this on the JCR Server?  If so, I 
>> would love to share the experiences and get any input on the concept.
>>   
>>     
> I do not have any problems doing read and write from and to the server over
> RMI.
>
> Regards,
> Felix
>
>   


Mime
View raw message