Impossible d'instancier une classe: org.jnp.les interfaces.NamingContextFactory

Voici mon code:

SpeakerRemote.java

package test;
import javax.ejb.Remote;

@Remote
public interface SpeakerRemote {
    String sayAPhrase( String phrase );
}

SpeakerBean.java

package test;
import javax.ejb.Stateless;

@Stateless
public class SpeakerBean implements SpeakerRemote {
    @Override
    public String sayAPhrase( String phrase ){
         return "Speaker Service:\t" + phrase;
    }
}

J'ai assemblé avec maven. Ici je vous montre en invoquant partie:

Invoker.java

import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import java.util.Properties;

public class Invoker {
    public static InitialContext getContext() throws NamingException {
        final Properties properties = new Properties();
        properties.put( Context.INITIAL_CONTEXT_FACTORY,
            "org.jnp.interfaces.NamingContextFactory" );
        properties.put( Context.PROVIDER_URL, "jnp://127.0.0.1:1099" );
        return new InitialContext( properties );
    }
}

Main.java

import test.SpeakerRemote;
import javax.naming.InitialContext;
import javax.naming.NamingException;

public class Main {
    public static void main( String... args ) {
        try {
            InitialContext context = Invoker.getContext();
            SpeakerRemote speaker = ( SpeakerRemote ) context.lookup( "SpeakerBean/remote" );
            System.out.println( speaker.sayAPhrase( "Hello, World!" ) );
        }
        catch ( NamingException e ) {
            e.printStackTrace();
        }
    }
}

Avoir commencé cette application, j'ai reçu cette exception:

"Impossible d'instancier une classe: org.jnp.les interfaces.NamingContextFactory [Root exception java.lang.ClassNotFoundException: org.jnp.les interfaces.NamingContextFactory]"

Merci de m'aider, car j'ai vraiment besoin de la comprendre!

P. S.-je utiliser jboss 7.1.1 Finale + EJB 3.1 + Maven 3.1.1 + Java 1.7 + Win7

  • pas de. dites-moi comment je peux l'observer
  • Je ne comprends pas de quoi vous parlez. J'ai Jboss sur ma machine. J'ai accès à n'importe quel répertoire. Dis-moi juste ce que je ferai)
  • Le message d'exception est plutôt intéressant, je pense. "Racine exception java.lang.ClassNotFoundException: org.jnp.les interfaces.NamingContextFactory". Êtes-vous sûr que vous en avez le jar dans le classpath?
  • D'abord trouver jar la classe vient de l', puis assurez-vous que lorsque vous exécutez l'application, le pot est dans le classpath. Aussi, tout le code que vous avez posté ne sont même pas pertinentes. Vous devez vérifier votre paramètre de chemin de classe.
  • Permettez-moi de décrire ce que j'ai fait. J'ai mis SpeakerRemote.java et SpeakerBean.java dans le jar fichier à l'aide de maven montage et déployé sur Jboss. Puis j'ai fait du client-app (Main.java + Invoke.java) et ajouter le jar fichiers dans lib-dir.
  • Salut. Set nom JNDI pour vous ejb.Distance de l'objet et de déployer les dernières pkg sur le serveur. puis recherche d'ejb objet distant à l'aide que le nom JNDI.
  • Sukkoor, je suis vraiment débutant dans EJB. S'il vous plaît, dites-moi ho, je peux mettre le nom JNDI? Doit-je utiliser le "Nom" annotation à mon interface à distance?

InformationsquelleAutor nightin_gale | 2013-12-22