我正在学习教程javarevoltions JSF 2 + PrimeFaces 5 + 4 + Spring Hibernate 4。
Essse教程基于weblogic服务器和Oracle数据库。
我的问题是我想使用带有MySQL的glassfish。
有一个名为utilidades.java的文件,其中包含webologic属性。
import java.util.Properties;
import javax.naming.Context;
import javax.naming.InitialContext;
public class Utilities {
public static Object getEJBRemote (nameEJB String, String iface) throws Exception {
Context context;
Properties props = new Properties ();
props.put (Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory");
props.put (Context.PROVIDER_URL, "http: // localhost: 7001");
try {
context = new InitialContext (props);
String lookup nameEJB + = "#" + iface;
System.out.println ("Lookup" + lookup);
return context.lookup (lookup);
} Catch (Exception ex) {
throw new Exception ("There is EJB: '" + nameEJB + "'.");
}
}
}
我已改为:
props.put (Context.INITIAL_CONTEXT_FACTORY, "org.springframework.jndi.JndiObjectFactoryBean");
props.put (Context.PROVIDER_URL, "http: // localhost: 4848");
我在互联网上看到了使用glassfish和mysql的教程。我在glassfish中创建了ping成功数据源。
当我做一个debbug时,它出现了:
ex =(javax.naming.NoInitialContextException) javax.naming.NoInitialContextException:无法实例化类: org.springframework.jndi.JndiObjectFactoryBean [根异常是 java.lang.ClassCastException: org.springframework.jndi.JndiObjectFactoryBean无法强制转换为 javax.naming .spi.InitialContextFactory]
我做错了什么?
答案 0 :(得分:0)
您的问题是weblogic.jndi.WLInitialContextFactory
不是InitialContextFactory
。我认为Glassfish的价值是com.sun.enterprise.naming.SerialInitContextFactory
:
Properties props = new Properties ();
props.put (Context.INITIAL_CONTEXT_FACTORY, "com.sun.enterprise.naming.SerialInitContextFactory");
props.put (Context.PROVIDER_URL, "http: // localhost: 7001");
This answer有更详细的信息。