persisitence.xml有问题
如果你有多个持久性单元
申明em的时候一定要加上 @PersistenceContext (unitName = yourPUname)标注
不然em不知道该连接哪个PU
如果你有多个持久性单元
申明em的时候一定要加上 @PersistenceContext (unitName = yourPUname)标注
不然em不知道该连接哪个PU
解决方案 »
- SessionFactory是线程安全的,Session是非线程安全的,如何正确理解?
- Java操作底层磁盘的类
- UPDATE D SET a = ? WHERE ID = ?
- 简单的weblogic问题
- Validator框架验证两密码相等 找了好多都用不了
- 小弟初学框架:不知<html:html locale="true">什么意思?请大家告诉我,谢谢了
- tomcat
- 高分求struts书 每本50分 决不失言,谢谢
- 我就盛下20分,但是请大家给我建议,
- 求助:insert插入时,保报错,原因是在同一列中插入了2个相同的值并且用逗号隔开了
- 卖身跪求(急):一个JDBC连接池的问题,找不到配置文件,"火大"
- 关于spring的配置
是没必要的
只要用标注声明PU名就可以了
加了@PersistenceContext(unitName ="MiddleWareWebService-ejbPU")
仍然是这个错误
Exception in thread "main" java.lang.NullPointerException
at SessionBean.BookInfoFacade.create(BookInfoFacade.java:43)
at middlewarewebservice.NewClass.main(NewClass.java:42)
Java Result: 1
final EntityManagerFactory emf=Persistence.createEntityManagerFactory("MiddleWareWebService-ejbPU");
final EntityManager em=emf.createEntityManager();
em.persist(book);
出现的好像是jndi的问题
2008-12-9 11:57:17 com.sun.corba.ee.impl.transport.SocketOrChannelConnectionImpl <init>
警告: "IOP00410201: (COMM_FAILURE) 连接失败: 套接字类型: IIOP_CLEAR_TEXT;主机名: localhost;端口: 3700"
org.omg.CORBA.COMM_FAILURE: vmcid: SUN minor code: 201 completed: No
at com.sun.corba.ee.impl.logging.ORBUtilSystemException.connectFailure(ORBUtilSystemException.java:2690)
at com.sun.corba.ee.impl.logging.ORBUtilSystemException.connectFailure(ORBUtilSystemException.java:2711)
at com.sun.corba.ee.impl.transport.SocketOrChannelConnectionImpl.<init>(SocketOrChannelConnectionImpl.java:261)
at com.sun.corba.ee.impl.transport.SocketOrChannelConnectionImpl.<init>(SocketOrChannelConnectionImpl.java:274)
at com.sun.corba.ee.impl.transport.SocketOrChannelContactInfoImpl.createConnection(SocketOrChannelContactInfoImpl.java:130)
at com.sun.corba.ee.impl.protocol.CorbaClientRequestDispatcherImpl.beginRequest(CorbaClientRequestDispatcherImpl.java:192)
at com.sun.corba.ee.impl.protocol.CorbaClientDelegateImpl.request(CorbaClientDelegateImpl.java:181)
at com.sun.corba.ee.impl.protocol.CorbaClientDelegateImpl.is_a(CorbaClientDelegateImpl.java:325)
at org.omg.CORBA.portable.ObjectImpl._is_a(ObjectImpl.java:112)
at org.omg.CosNaming.NamingContextHelper.narrow(NamingContextHelper.java:69)
at com.sun.enterprise.naming.SerialContext.narrowProvider(SerialContext.java:131)
at com.sun.enterprise.naming.SerialContext.getCachedProvider(SerialContext.java:247)
at com.sun.enterprise.naming.SerialContext.getRemoteProvider(SerialContext.java:205)
at com.sun.enterprise.naming.SerialContext.getProvider(SerialContext.java:160)
at com.sun.enterprise.naming.SerialContext.lookup(SerialContext.java:398)
at com.sun.enterprise.naming.SerialContext.lookup(SerialContext.java:445)
at javax.naming.InitialContext.lookup(InitialContext.java:396)
at oracle.toplink.essentials.jndi.JNDIConnector.connect(JNDIConnector.java:129)
at oracle.toplink.essentials.sessions.DatasourceLogin.connectToDatasource(DatasourceLogin.java:184)
at oracle.toplink.essentials.internal.sessions.DatabaseSessionImpl.loginAndDetectDatasource(DatabaseSessionImpl.java:582)
at oracle.toplink.essentials.ejb.cmp3.EntityManagerFactoryProvider.login(EntityManagerFactoryProvider.java:280)
at oracle.toplink.essentials.internal.ejb.cmp3.EntityManagerSetupImpl.deploy(EntityManagerSetupImpl.java:229)
at oracle.toplink.essentials.internal.ejb.cmp3.base.EntityManagerFactoryImpl.getServerSession(EntityManagerFactoryImpl.java:93)
at oracle.toplink.essentials.internal.ejb.cmp3.base.EntityManagerFactoryImpl.createEntityManagerImpl(EntityManagerFactoryImpl.java:126)
at oracle.toplink.essentials.internal.ejb.cmp3.base.EntityManagerFactoryImpl.createEntityManagerImpl(EntityManagerFactoryImpl.java:120)
at oracle.toplink.essentials.internal.ejb.cmp3.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:91)
远程调用EJB时 必须用lookup方法查找接口如下代码:
EJB:
@Stateless (mappedName = "CB")
public class ConfigBean implements ConfigRemote, ConfigLocal
{
@PersistenceContext (unitName = "xxxPU")
private EntityManager em;
...
CLIENT:
ConfigRemote cr = null;
try
{
Context c = new InitialContext();
cr = (ConfigRemote) c.lookup("CB");
System.out.println("link success!");
}
catch (Exception ne)
{
System.out.println("link error!");
return;
}
请问lookup查找的是什么?
我用你的方法,异常显示cb not found
是必须通过这个映射吗?
@Stateless (mappedName = "CB")
部署错误:
尚未部署该模块。
有关详细信息,请参见服务器日志。
at org.netbeans.modules.j2ee.deployment.devmodules.api.Deployment.deploy(Deployment.java:166)
at org.netbeans.modules.j2ee.ant.Deploy.execute(Deploy.java:104)
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
at sun.reflect.GeneratedMethodAccessor342.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:105)
at org.apache.tools.ant.Task.perform(Task.java:348)
at org.apache.tools.ant.Target.execute(Target.java:357)
at org.apache.tools.ant.Target.performTasks(Target.java:385)
at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1329)
at org.apache.tools.ant.Project.executeTarget(Project.java:1298)
at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
at org.apache.tools.ant.Project.executeTargets(Project.java:1181)
at org.apache.tools.ant.module.bridge.impl.BridgeImpl.run(BridgeImpl.java:277)
at org.apache.tools.ant.module.run.TargetExecutor.run(TargetExecutor.java:460)
at org.netbeans.core.execution.RunClassThread.run(RunClassThread.java:151)
Caused by: 尚未部署该模块。
at org.netbeans.modules.j2ee.deployment.devmodules.api.Deployment.deploy(Deployment.java:160)
... 16 more
com.sun.gjc.spi.jdbc40.DataSource40 cannot be cast to SessionBean.BookInfoFacade
private static BookInfoFacadeRemote bookInfoFacade=new BookInfoFacade();; |
|
|
|
|
好像这个new就不应该有了吧。