Re: Class Server requests
Dan Creswell <[email protected]>
| Newsgroups | gmane.comp.java.sun.jini |
|---|---|
| Message-ID | <[email protected]> |
Dave Brosius wrote:
> *Command line:*
>
> java -classpath .;..\lib\jini-core.jar;..\lib\jini-ext.jar
> -Djava.security.policy=..\policy.all
> com.mebigfatguy.jinitest.JiniTestService
>
Hmmm, this isn't too Jini 2.1 friendly ^^^^^ .jar wise but it probably
doesn't matter for now.
> *Setting codebase*
>
> public static void main(String[] args) {
> try {
> System.setSecurityManager (new RMISecurityManager ());
>
> int port = Integer.valueOf(args[0]).intValue();
> JiniClassServer cs = new JiniClassServer(port);
> cs.start();
> InetAddress.getLocalHost();
> System.setProperty("java.rmi.server.codebase", "http://" +
> InetAddress.getLocalHost().getHostAddress() + ":" + port);
>
Hmmm, are your classes in a .jar or are they in a directory?
If they're in a directory, try adding an additional "/" to that codebase
thus:
System.setProperty("java.rmi.server.codebase", "http://" +
InetAddress.getLocalHost().getHostAddress() + ":" + port + "/");
> discovery = new LookupDiscovery(LookupDiscovery.ALL_GROUPS);
> leaseManager = new LeaseRenewalManager();
>
> discovery.addDiscoveryListener(new
> JiniTestDiscoveryListener(leaseManager));
>
> JOptionPane.showMessageDialog(null, "Shutdown service");
> } catch (Exception e) {
> e.printStackTrace();
> }
> }
>
> *Installing service*
> **
> public void discovered(DiscoveryEvent event) {
> try {
> ServiceRegistrar[] registrars = event.getRegistrars();
>
> Entry[] attr = new Entry[1];
> attr[0] = new Name("JiniTest");
>
> ServiceItem item = new ServiceItem(null, new JiniTestImpl(), attr);
> LeaseListener listener = new JiniTestLeaseListener();
>
> for (ServiceRegistrar registrar : registrars) {
> ServiceRegistration reg = registrar.register(item, Lease.FOREVER);
> leaseManager.renewUntil(reg.getLease(), Lease.FOREVER, listener);
> }
> } catch (RemoteException re) {
> re.printStackTrace();
> }
> }
>
>
> ----- Original Message -----
> From: "Dan Creswell" <[email protected]
> <mailto:[email protected]>>
> To: "Dave Brosius" <[email protected]
> <mailto:[email protected]>>
> Cc: <[email protected] <mailto:[email protected]>>
> Sent: Sunday, December 31, 2006 5:49 AM
> Subject: Re: Class Server requests
>
>> Hi Dave,
>>
>> Dave Brosius wrote:
>>> 1) I run launch-all.exe to run the environment. My service is run
>>> with -Djava.security.policy=policy.all where the policy allows all
>>>
>>
>> So you're running direct from the command-line? If so, can you post it
>> please?
>>
>>> 2) Wrote my own, that is embedded in the service 'installer' that simply
>>> does getResourceAsStream on the relevent class file and pumps it out
> as an
>>> http response. Of course it never gets that far, as i am never asked
> for a
>>> class, only '/' (i also get HEAD requests for '/' as well).
>>>
>>
>> Okay - so what did you set the service's codebase to?
>>
>>> 3) 2.1
>>>
>>> 4) Well, registration is failing as i get ClassNotFoundExceptions.
> Which is
>>> certainly understandable as my class server gets gibberish for requests.
>>>
>>
>> Which suggests a configuration issue - likely codebase.....
>>
>>> Dec 31, 2006 5:21:30 AM com.sun.jini.reggie.RegistrarProxy
> handleException
>>> INFO: unmarshalling failure
>>> java.lang.ClassNotFoundException: com.mebigfatguy.jinitest.JiniTestImpl
>>
>> Hmmm, so I could be wrong on this one but looking ahead this ^^^^^
>> classname looks a bit odd. Are you using JERI Exporters or are you
>> using standard RMI/UnicastRemoteObject? I suspect you _might_ be
>> passing the wrong thing to JoinManager in your service's init code.
>>
>> Just a note for later......
>>
>> Dan.
>>
>>> at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
>>> at java.security.AccessController.doPrivileged(Native Method)
>>> at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
>>> at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
>>> at
>>> net.jini.loader.pref.PreferredClassLoader.loadClass(PreferredClassLoa
>>> der.java:922)
>>> at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
>>> at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
>>> at java.lang.Class.forName0(Native Method)
>>> at java.lang.Class.forName(Class.java:242)
>>> at
>>> net.jini.loader.pref.PreferredClassProvider.loadClass(PreferredClassP
>>> rovider.java:613)
>>> at
> java.rmi.server.RMIClassLoader.loadClass(RMIClassLoader.java:247)
>>> at net.jini.loader.ClassLoading.loadClass(ClassLoading.java:138)
>>> at
>>> net.jini.io.MarshalInputStream.resolveClass(MarshalInputStream.java:2
>>> 96)
>>> at
>>> java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:153
>>> 8)
>>> at
>>> java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1460)
>>> at
>>> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1
>>> 693)
>>> at
>>> java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1299)
>>> at
> java.io.ObjectInputStream.readObject(ObjectInputStream.java:339)
>>> at net.jini.io.MarshalledInstance.get(MarshalledInstance.java:358)
>>> at net.jini.io.MarshalledInstance.get(MarshalledInstance.java:287)
>>> at
>>> com.sun.jini.proxy.MarshalledWrapper.get(MarshalledWrapper.java:127)
>>> at com.sun.jini.reggie.Item.get(Item.java:141)
>>> at com.sun.jini.reggie.Item.toServiceItem(Item.java:177)
>>> at com.sun.jini.reggie.Matches.get(Matches.java:62)
>>> at
>>> com.sun.jini.reggie.RegistrarProxy.lookup(RegistrarProxy.java:128)
>>> at
> com.sun.jini.example.browser.Browser.genMatches(Browser.java:535)
>>> at com.sun.jini.example.browser.Browser.genText(Browser.java:439)
>>> at com.sun.jini.example.browser.Browser.setText(Browser.java:426)
>>> at com.sun.jini.example.browser.Browser.update(Browser.java:1260)
>>> at
> com.sun.jini.example.browser.Browser.resetTmpl(Browser.java:797)
>>> at
>>> com.sun.jini.example.browser.Browser.access$3200(Browser.java:141)
>>> at
>>> com.sun.jini.example.browser.Browser$Lookup.actionPerformed(Browser.j
>>>
>>> ----- Original Message -----
>>> From: "Dan Creswell" <[email protected]
> <mailto:[email protected]>>
>>> To: "Dave Brosius" <[email protected]
> <mailto:[email protected]>>
>>> Cc: <[email protected] <mailto:[email protected]>>
>>> Sent: Sunday, December 31, 2006 4:54 AM
>>> Subject: Re: Class Server requests
>>>
>>>
>>>> Hi Dave,
>>>>
>>>> Need some more information:
>>>>
>>>> (1) How are you running your service? And can you post the relevant
>>>> configs, scripts etc.
>>>>
>>>> (2) What are you using as the class server and how are you running it?
>>>>
>>>> (3) Which version of Jini are you using?
>>>>
>>>> (4) Can you explain why you are concerned by the GET request? Is
>>>> something not working and, if so, can you provide more details?
>>>>
>>>> Happy New Year,
>>>>
>>>> Dan.
>>>>
>>>> Dave Brosius wrote:
>>>>> Howdy,
>>>>>
>>>>> New Jini dabbler, here.
>>>>>
>>>>> I was trying to get my service to run, set up a Class server, and the
>>>>> server
>>>>> is getting the request
>>>>>
>>>>> GET / HTTP/1.1
>>>>>
>>>>> What am i supposed to return for that?
>>>>>
>>>>> I was expecting the name of some class?
>>>>>
>>>>>
>>>>>
>>>>> thanks,
>>>>>
>>>>> dave
>>>>>
>>>>>
--------------------------------------------------------------------------
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]