Re: java.rmi.UnmarshalException

liang li <[email protected]> Thu, 15 May 2008 13:50:55 +0800
Newsgroups gmane.comp.java.sun.jini
Message-ID <[email protected]>
hi, all

when i export an service  i only see Proxy$XX in service browser?  not a
meaning
service name, for example:Log4JiniImpl.
could anybody tell me how to do?

best regards
byron lee


2008/5/15, liang li <[email protected]>:
>
> thanks Gregg,
> i succeed to export my service . before i saw many examples which
> only show how to provide services with the thing the proxy is the server
>
> thank you again.
>
> best regards
>
> byron lee
>
> 2008/5/14, Gregg Wonderly <[email protected]>:
>>
>> liang li wrote:
>>
>>> thanks gregg.
>>>     i will show your more detail:
>>>
>>
>>    private void initializeJoinManager()
>>>    {
>>>        try
>>>        {
>>>            Log4JiniImpl impl = new Log4JiniImpl();
>>>
>>>            LookupDiscoveryManager manager = new LookupDiscoveryManager(
>>>                    initialMemberGroups, null, null);
>>>
>>>
>>>            JoinManager joinManager = new JoinManager(impl, null,
>>>                    (Log4JiniImpl) impl, manager, null);
>>>
>>
>> Here you are passing the join manager a non-exported object that is
>> serializable.  So, that class must be present in the -dl.jar that you have
>> specified in your codebase.  I am not sure, but I believe that you actually
>> want to use an Exporter here, and if you do that, and use the
>> BasicJeriExporter, you do not need to perform any RMIC operations because
>> the _stub equivalent information is automatically generated by the exporter
>> and provided to the remote client.
>>
>> So, my recommendation is to remove the Serializable declaration from
>> Log4JiniImpl, and then replace your initializeJoinManager() method with the
>> following code.
>>
>>    private volatile Exporter exp;
>>    private volatile Remote svcObj;
>>    private volatile Log4JiniImpl impl;
>>    private void initializeJoinManager() {
>>        try {
>>            impl = new Log4JiniImpl();
>>
>>            LookupDiscoveryManager manager = new LookupDiscoveryManager(
>>            initialMemberGroups, null, null);
>>
>>            // Get the exporter from config, but provide a default
>>            exp = config.getEntry( COMPONENT, "exporter",
>>                Exporter.class, new BasicJeriExporter(
>>                TcpServerEndpoint.getInstance(0),
>>                new BasicILFactory() ) );
>>
>>            // export the service
>>            svcObj = exp.export( impl );
>>
>>            JoinManager joinManager = new JoinManager( svcObj, null,
>>                (Log4JiniImpl) impl, manager, null);
>>        } catch ( IOException ex ) {
>>            log.log( Level.SEVERE, ex.toString(), ex );
>>        }
>>    }
>>
>> That will get you an exported service who's remote clients will only
>> depend on the interface, and the types specified by the methods in that
>> interface's declaration.
>>
>> All of these things are in the Jini documentation, and through Dan's
>> plethora of information linked to from his website and from the
>> http://jini.dev.java.net web site as well as http://www.jini.org.
>>
>> Gregg Wonderly
>>
>
>

--------------------------------------------------------------------------
Getting Started:     http://www.jini.org/wiki/Category:Getting_Started
Community Web Site:  http://jini.org
jini-users Archive:  http://archives.java.sun.com/archives/jini-users.html
Unsubscribing:       email "signoff JINI-USERS"  to [email protected]