Jbuider2006 作EJB使用Entity Bean时,数据源连接出问题
使用jbuilder 按照建工程,建Ejb module,建CMP及web module,使用默认值,不改变设置和方法,不增加任何代码,完全是自动生成,可是调试时,提示说数据源未连接...(见messenge,附后),但是我用data source时,检测并载入了数据库,这是什么原因呢?请大家帮忙!!!!
Jbuilder的Messages 窗口信息:
08:43:56,328 WARN [HANamingService] Failed to start AutomaticDiscovery
java.net.SocketException: error setting options
at java.net.PlainDatagramSocketImpl.join(Native Method)
at java.net.PlainDatagramSocketImpl.join(PlainDatagramSocketImpl.java:172)
at java.net.MulticastSocket.joinGroup(MulticastSocket.java:276)
at org.jboss.ha.jndi.DetachedHANamingService$AutomaticDiscovery.start(DetachedHANamingService.java: 495)
at org.jboss.ha.jndi.DetachedHANamingService.startService(DetachedHANamingService.java:332)
at org.jboss.system.ServiceMBeanSupport.jbossInternalStart(ServiceMBeanSupport.java:274)
at org.jboss.system.ServiceMBeanSupport.jbossInternalLifecycle(ServiceMBeanSupport.java:230)
at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:141)
at org.jboss.mx.server.Invocation.dispatch(Invocation.java:80)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:72)
at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:245)
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:644)
at org.jboss.system.ServiceController$ServiceProxy.invoke(ServiceController.java:943)
at $Proxy0.start(Unknown Source)
……………
at org.jboss.Main$1.run(Main.java:438)
at java.lang.Thread.run(Thread.java:595)
Caused by: javax.naming.NameNotFoundException: DataSource not bound
at org.jnp.server.NamingServer.getBinding(NamingServer.java:514)
at org.jnp.server.NamingServer.getBinding(NamingServer.java:522)
…………
08:44:08,937 INFO [ProxyFactory] Bound EJB Home 'AccountSessionFacade' to jndi 'AccountSessionFacade'
08:44:08,937 INFO [EJBDeployer] Deployed: file:/C:/Program Files/jboss-4.0.3SP1/server/default/deploy/EJBModule.jar
08:44:09,078 INFO [EjbModule] Deploying Account
08:44:09,093 INFO [EjbModule] Deploying AccountSessionFacade
08:44:09,093 INFO [EntityContainer] Registration is not done -> stop
08:44:09,109WARN [ServiceController] Problem creating service
jboss.j2ee:service=EjbModule,module=EJBModule1.jar
javax.management.InstanceAlreadyExistsException: jboss.j2ee:jndiName=Account,service=EJB already registered.
………
--- MBeans waiting for other MBeans ---
ObjectName: jboss.j2ee:jndiName=Account,service=EJB
State: FAILED
Reason: org.jboss.deployment.DeploymentException: Error: can't find data source: DataSource; - nested throwable: (javax.naming.NameNotFoundException: DataSource not bound)
ObjectName: jboss.j2ee:service=EjbModule,module=EJBModule1.jar
State: FAILED
Reason: javax.management.InstanceAlreadyExistsException: jboss.j2ee:jndiName=Account,service=EJB already registered.
--- MBEANS THAT ARE THE ROOT CAUSE OF THE PROBLEM ---
ObjectName: jboss.j2ee:jndiName=Account,service=EJB
State: FAILED
Reason: org.jboss.deployment.DeploymentException: Error: can't find data source: DataSource; - nested throwable: (javax.naming.NameNotFoundException: DataSource not bound)
ObjectName: jboss.j2ee:service=EjbModule,module=EJBModule1.jar
State: FAILED
Reason: javax.management.InstanceAlreadyExistsException: jboss.j2ee:jndiName=Account,service=EJB already registered.
操作步骤:
数据库驱动:sun.jdbc.odbc.JdbcOdbcDriver; url为jdbc:odbc:jspTest
1. 在JBuilder2006中配置Jboss4.x+后,新建一个项目,名称为EjbTest,目录为EjbTest,点击Finish完成。
2. 在左边的导航中,选中EjbTest项目,点击鼠标右键,选择属性。在EjbTest属性对话框中,选择Server标签,选择Single server for all services in project,然后在下拉列表中选择Jboss4.x+,确定。
3. 在JBuilder的菜单中选择File | New,在Object Gallery对话框中选中Enterprise标签,并选中EJB Module,确认。
4. 在EJB Module Wizard对话框中,一切默认,确定。数据源设定如下:
5. 创建EJB Module后,创建CMP2.x Entity Bean
6. 创建会话代理,参数选择默认,其中创建Webmodule
7. 完成,编译,调试
8. 启动Jboss,运行客户端
问题点数:20、回复次数:0Top




