Jason Lee wrote:
> Since that original message, I did simplify the test quite a bit.
> Here's the current code:
>
> package com.iecokc.products;
>
> import javax.naming.InitialContext;
>
> public class BrandNameProductClient {
> public static void main (String args[]) {
> String jndiName =
> IBrandNameProduct.class.getName();
>
> try {
> InitialContext ic = new InitialContext();
> System.out.println ("Looking up " + jndiName);
> IBrandNameProduct bnpr = (IBrandNameProduct) ic.lookup(jndiName);
> bnpr.getBrandNameProduct("id", "nd", "FXY");
> } catch (Exception e) {
> e.printStackTrace();
> }
> }
> }
> In jndi.properties, I commented out the entries attempting to see if
> the defaults would work, but I get the same error.
Which jndi.properties are you referring to? You shouldn't have to
provide any jndi.properties yourself.
As long as appserv-rt.jar is in the classpath of the client, it will
handle the bootstrapping. The idea is to try as much as possible to
hide these kinds of details from the developer, for the very reason that
they are error-prone to configure. Can you post the command you're
using to start the client?
--ken
> For what it's worth, here's what I was setting, based on what Google
> could find for me:
>
> java.naming.factory.initial=com.sun.appserv.naming.S1ASCtxFactory
> java.naming.provider.url=iiop://localhost:3700
>
> --
> Jason Lee
> Programmer/Analyst
>
>
> ------------------------------------------------------------------------
> *From:* Kenneth.Saks_at_Sun.COM [mailto:Kenneth.Saks_at_Sun.COM]
> *Sent:* Monday, May 08, 2006 3:20 PM
> *To:* dev_at_glassfish.dev.java.net; Jason Lee
> *Cc:* users_at_glassfish.dev.java.net
> *Subject:* Re: Remote Slsb Look up Failure
>
> Jason Lee wrote:
>
>> I hate to be a bother, but does anyone have any thoughts on this?
>> I'm completely stumped. Thanks!
>
> Hi Jason,
>
> First try following the stand-alone client guidelines in
> https://glassfish.dev.java.net/javaee5/ejb/EJB_FAQ.html#StandaloneRemoteEJB.
>
> We recommend relying on the defaults to bootstrap the appserver's naming
> service rather than programmatically setting system properties. You
> can set the target host/port
> when starting the cilent JVM. If that doesn't work, you can follow-up at
> ejb_at_glassfish.dev.java.net. Thanks.
>
> --ken
>
>>
>> --
>> Jason Lee
>> Programmer/Analyst
>>
>>
>> ------------------------------------------------------------------------
>> *From:* Jason Lee
>> *Sent:* Monday, April 24, 2006 11:23 AM
>> *To:* 'users_at_glassfish.dev.java.net'
>> *Subject:* Remote Slsb Look up Failure
>>
>> When trying to get a reference to a remote session bean, I get the
>> follow stack trace from my client:
>>
>> javax.naming.NamingException: ejb ref resolution error for remote
>> business interfacecom.iecokc.products.IBrandNameProduct [Root
>> exception is java.lang.NullPointerException]
>> at com.sun.ejb.EJBUtils.lookupRemote30BusinessObject(EJBUtils.java:313)
>> at
>> com.sun.ejb.containers.RemoteBusinessObjectFactory.getObjectInstance(RemoteBusinessObjectFactory.java:61)
>> at
>> javax.naming.spi.NamingManager.getObjectInstance(NamingManager.java:304)
>> at
>> com.sun.enterprise.naming.SerialContext.lookup(SerialContext.java:314)
>> at javax.naming.InitialContext.lookup(InitialContext.java:351)
>> at
>> com.iecokc.products.BrandNameProductClient.main(BrandNameProductClient.java:20)
>> Caused by: java.lang.NullPointerException
>> 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.sun.ejb.EJBUtils.lookupRemote30BusinessObject(EJBUtils.java:305)
>> ... 5 more
>>
>> The client code looks basically like this:
>>
>> String jndiName = IBrandNameProduct.class.getName();
>> System.setProperty("org.omg.CORBA.ORBInitialHost", "localhost");
>> System.setProperty("org.omg.CORBA.ORBInitialPort", "3700");
>> System.setProperty("com.sun.appserv.iiop.endpoints", "localhost:3700");
>> System.setProperty("com.sun.CORBA.connection.ORBSocketFactory",
>> "com.sun.enterprise.iiop.IIOPSSLSocketFactory");
>> InitialContext ic = new InitialContext();
>> System.out.println ("Looking up " + jndiName);
>> IBrandNameProduct bnpr = (IBrandNameProduct)ic.lookup(jndiName);
>>
>> Glassfish shows that the bean deployed. If I view the JNDI tree, I
>> can see the names there. For the record, my interface has @Remote,
>> and the implementing class has @Stateless on it. The confusing thing
>> is that this code used to work, but, obviously, something changed. I
>> have no clue what it might be.
>>
>> Here's what my deployment archive looks like:
>>
>> BrandNameProductSessionBean.ear
>> lib/
>> <bunch of supporting jars>
>> META-INF/
>> <ant-generated manifest>
>> BrandNameProductSessionBean.jar <-- with interface and class
>>
>> Does anybody have any idea what I'm missing? I'm completely stumped. :|
>>
>> --
>> Jason Lee
>> Programmer/Analyst
>>
>
>
>