当前位置: 技术问答>java相关
我要崩溃了(EJB请进)
来源: 互联网 发布时间:2015-02-27
本文导语: 这两天看着www.chinajavaworld.com上的《一步一步用JBuilder5开发EJB》教程,尝试着用刚整合的 jb5+bas+wlg练习EJB的使用,sessionBean还好,在配置运行entityBean时候遇到了解决不了的问题。我创建项 目的步骤如下: 1.new->project 2...
这两天看着www.chinajavaworld.com上的《一步一步用JBuilder5开发EJB》教程,尝试着用刚整合的
jb5+bas+wlg练习EJB的使用,sessionBean还好,在配置运行entityBean时候遇到了解决不了的问题。我创建项
目的步骤如下:
1.new->project
2.new->empty EJB group
3.new->EJB modeler,数据库connection是jdbc-odbc连接SQL Server,已配置好(connection test通过)。
选好了表->BMP+EJB 2.0 code style
4.new->EJB test client
5.build
6.project properties中的Enterprise项,已经把刚才生成的ear包选中,“add project classpath”选中
7.run server,weblogic server启动正常
8.run client,错误输出如下:
G:jbuilder5jdk1.3binjavaw -classpath
"G:tempjbprojectentityTestjbproject;G:beawlserver6.1libweblogic_sp.jar;G:beawlserver6.1
libweblogic.jar;G:jbuilder5jdk1.3demojfcJava2DJava2Demo.jar;G:jbuilder5jdk1.3jrelibi
18n.jar;G:jbuilder5jdk1.3jrelibjaws.jar;G:jbuilder5jdk1.3jrelibrt.jar;G:jbuilder5jdk1
.3jrelibsunrsasign.jar;G:jbuilder5jdk1.3libdt.jar;G:jbuilder5jdk1.3libtools.jar"
entitytest.AccountTestClient1
javax.naming.NameNotFoundException: Unable to resolve Account. Resolved: '' Unresolved:'Account'
; remaining name '' at
weblogic.rmi.internal.BasicOutboundRequest.sendReceive(BasicOutboundRequest.java:85) at
weblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke(ReplicaAwareRemoteRef.java:253) at
weblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke(ReplicaAwareRemoteRef.java:220) at
weblogic.rmi.internal.ProxyStub.invoke(ProxyStub.java:35) at $Proxy0.lookup(Unknown Source)
at weblogic.jndi.internal.WLContextImpl.lookup(WLContextImpl.java:323) at
javax.naming.InitialContext.lookup(InitialContext.java:350) at
entitytest.AccountTestClient1.(AccountTestClient1.java:17) at
entitytest.AccountTestClient1.main(AccountTestClient1.java:60)
我分析错误原因是在context中按Account EJB的Home Interface的JNDI "Account"查找,没有发现相应的Home
Object。
奇怪就奇怪在,如果我在一个已经运行通过的sessionEJB project中按上述3-8步添加、运行entity bean,就
能够通过(按默认的entity bean test client,查询到home object就结束,没有exception)
我ejb刚摸了没多长时间,大部分时间都花在各种配置、调试上,到现在连个sample还没有运行起来,更谈不上
去思考分析什么ejb设计了,挺受打击。各位过来人,忙我一把!!!
jb5+bas+wlg练习EJB的使用,sessionBean还好,在配置运行entityBean时候遇到了解决不了的问题。我创建项
目的步骤如下:
1.new->project
2.new->empty EJB group
3.new->EJB modeler,数据库connection是jdbc-odbc连接SQL Server,已配置好(connection test通过)。
选好了表->BMP+EJB 2.0 code style
4.new->EJB test client
5.build
6.project properties中的Enterprise项,已经把刚才生成的ear包选中,“add project classpath”选中
7.run server,weblogic server启动正常
8.run client,错误输出如下:
G:jbuilder5jdk1.3binjavaw -classpath
"G:tempjbprojectentityTestjbproject;G:beawlserver6.1libweblogic_sp.jar;G:beawlserver6.1
libweblogic.jar;G:jbuilder5jdk1.3demojfcJava2DJava2Demo.jar;G:jbuilder5jdk1.3jrelibi
18n.jar;G:jbuilder5jdk1.3jrelibjaws.jar;G:jbuilder5jdk1.3jrelibrt.jar;G:jbuilder5jdk1
.3jrelibsunrsasign.jar;G:jbuilder5jdk1.3libdt.jar;G:jbuilder5jdk1.3libtools.jar"
entitytest.AccountTestClient1
javax.naming.NameNotFoundException: Unable to resolve Account. Resolved: '' Unresolved:'Account'
; remaining name '' at
weblogic.rmi.internal.BasicOutboundRequest.sendReceive(BasicOutboundRequest.java:85) at
weblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke(ReplicaAwareRemoteRef.java:253) at
weblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke(ReplicaAwareRemoteRef.java:220) at
weblogic.rmi.internal.ProxyStub.invoke(ProxyStub.java:35) at $Proxy0.lookup(Unknown Source)
at weblogic.jndi.internal.WLContextImpl.lookup(WLContextImpl.java:323) at
javax.naming.InitialContext.lookup(InitialContext.java:350) at
entitytest.AccountTestClient1.(AccountTestClient1.java:17) at
entitytest.AccountTestClient1.main(AccountTestClient1.java:60)
我分析错误原因是在context中按Account EJB的Home Interface的JNDI "Account"查找,没有发现相应的Home
Object。
奇怪就奇怪在,如果我在一个已经运行通过的sessionEJB project中按上述3-8步添加、运行entity bean,就
能够通过(按默认的entity bean test client,查询到home object就结束,没有exception)
我ejb刚摸了没多长时间,大部分时间都花在各种配置、调试上,到现在连个sample还没有运行起来,更谈不上
去思考分析什么ejb设计了,挺受打击。各位过来人,忙我一把!!!
|
这种错误通常是EJB部署失败造成的,你可以在管理页面的右侧选一下你的服务器,点右键,选"view jndi tree",里面如果没有你部署的EJB的Jndi名字,那么没办法,重新部署吧(删除applications里的.jar文件,在config.xml里如果有关于这个文件的内容也要去处,然后再部署),weblogic6.0就是这么烂,6.1好一点。
|
你最好用6.1
在console里建立一个DataSource,Account EJB的JNDI名称使用建立DataSource的JNDI名,
这种问题应该可以解决!
在console里建立一个DataSource,Account EJB的JNDI名称使用建立DataSource的JNDI名,
这种问题应该可以解决!