2010-01-04 11 views
9

Quando si esegue un'applicazione correlata a JMS, sto riscontrando il seguente errore di eccezione.Eccezione: è necessario specificare il nome della classe nell'ambiente o nella proprietà di sistema: java.naming.factory.initial

javax.naming.NoInitialContextException: è necessario specificare il nome della classe nella proprietà di ambiente o di un sistema, o come parametro applet, o in un file di risorse dell'applicazione: java.naming.factory.initial

Stiamo usando Sun Application Server 9.1

Qualche idea di cosa ci manca?

ho già provato ad aggiungere il seguente risultato, ma ancora lo stesso

Properties env = new Properties(); 
    env.put("java.naming.factory.initial","com.sun.jndi.cosnaming.CNCtxFactory"); 

    Context ctx = new InitialContext(env); 
+2

Non un duplicato completo: le specifiche di quali proprietà impostare per questo server di app non sono fornite qui. A prima vista l'intervistatore sta facendo ciò che è raccomandato ed è coerente con i documenti Sun. – djna

+0

Non è un duplicato completo. È necessario inserire il file jndi.properties in classpath. Per ulteriori informazioni utilizzare il seguente link. https://cwiki.apache.org/confluence/display/qpid/How+to+Use+JNDI Specificare la fabbrica di denominazione e il nome della coda. Dovrebbe funzionare bene. –

risposta

3

Mi trovavo di fronte allo stesso problema mentre lavoravo con la molla & weblogic. L'ho risolto impostando due proprietà

System.getProperties(). Put ("java.naming.factory.initial", "weblogic.jndi.WLInitialContextFactory"); . System.getProperties() ha messo ("java.naming.provider.url", "t3: // localhost: 80")

6

un errore molto comune può essere che non hai aggiunto il jboss-client.jar ! o jar alternativo se si utilizza weblogic.

Problemi correlati