Visualizzazione dei risultati da 1 a 5 su 5

Discussione: EJB3 e glassfish

  1. #1

    EJB3 e glassfish

    Ciao ragazzi,
    sto provando a realizzare un'applicazione banale basata su EJB3 su server GLASSFISH.

    A seguire il codice dell'EJB:

    Codice PHP:
    //Business Interface
    public interface Hello {
        public 
    String hello();

    Codice PHP:
    //Bean Class
    import javax.ejb.Remote;
    import javax.ejb.Stateless;

    @
    Stateless
    @Remote
    public class HelloBean implements Hello {
        public 
    String hello(){
            
    String value="Hello World!";
            return 
    value;
        }


  2. #2
    A seguire il codice del client:

    Codice PHP:

    // The following import should be removed.

    import java.util.Hashtable;
    import javax.naming.*;

    /**
     * This class is an example of client code which invokes
     * methods on a simple, remote stateless session bean.
     */
    public class HelloClient {

        public static 
    void main(String[] argsthrows Exception {
            
    /*
             * Obtain the JNDI initial context.
             *
             * The initial context is a starting point for
             * connecting to a JNDI tree. We choose our JNDI
             * driver, the network location of the server, etc
             * by passing in the environment properties.
             */

            
    System.out.println("about to create initialcontext");

                    
    Hashtable env = new Hashtable();
            
    env.put("java.naming.factory.initial","com.sun.enterprise.naming.SerialInitContextFactory");
            
    //env.put("java.naming.factory.url.pkgs","com.sun.enterprise.naming");
            
    env.put("java.naming.provider.url","localhost:3700");
            
    Context ctx = new InitialContext(env);

            
    //System.out.println ("Trying to get the name of this context: " + ctx.getNameInNamespace());

            
    System.out.println("Got initial context ... yeah ");

            
    /*
             * Get a reference to a bean instance, looked up by class name
             */
            
    NamingEnumeration ne ctx.list("");
            
    System.out.println("Got list... ");
                    while(
    ne.hasMore())
            {
                            
    NameClassPair nc = (NameClassPair)ne.next();
                
    System.out.println("Entry is ... "+nc.getName()+" -- "+nc.getClassName());
            }

            
    Hello hello = (Helloctx.lookup("Hello");

            
    /*
             * Call the hello() method on the bean.
             * We then print the result to the screen.
             */
            
    System.out.println(hello.hello());
        }


  3. #3
    Il problema è che lanciando il client netbeans mi restituisce:

    about to create initialcontext
    Exception in thread "main" javax.naming.NoInitialContextException: Cannot instantiate class: com.sun.enterprise.naming.SerialInitContextFactory [Root exception is java.lang.ClassNotFoundException: com.sun.enterprise.naming.SerialInitContextFactory]
    at javax.naming.spi.NamingManager.getInitialContext(N amingManager.java:657)
    at javax.naming.InitialContext.getDefaultInitCtx(Init ialContext.java:288)
    at javax.naming.InitialContext.init(InitialContext.ja va:223)
    at javax.naming.InitialContext.<init>(InitialContext. java:197)
    at HelloClient.main(HelloClient.java:29)
    Caused by: java.lang.ClassNotFoundException: com.sun.enterprise.naming.SerialInitContextFactory
    at java.net.URLClassLoader$1.run(URLClassLoader.java: 200)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.j ava:188)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:3 06)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launche r.java:276)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:2 51)
    at java.lang.ClassLoader.loadClassInternal(ClassLoade r.java:319)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:247)
    at com.sun.naming.internal.VersionHelper12.loadClass( VersionHelper12.java:46)
    at javax.naming.spi.NamingManager.getInitialContext(N amingManager.java:654)
    ... 4 more
    Java Result: 1


    Perchè?
    Credo manchi la classe com.sun.enterprise.naming.SerialInitContextFactory e su internet ho visto che dovrebbe essere presente in appserv-rt.jat
    Controllando però nel suddetto jar ( che ho aggiunto al progetto ) la classe non c'è.

    Come risolvere?

  4. #4
    Esiste una diversa possibilità di richiamare l'EJB?

  5. #5

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.