这里是输出日志:
23:31:31,703 INFO  [STDOUT] {java.naming.provider.url=jnp://127.0.0.1:1099, java
.naming.factory.initial=org.jnp.interfaces.NamingContextFactory}
23:31:32,531 INFO  [STDOUT] PersonBean is created by jboss
23:31:32,578 INFO  [STDOUT] unsetEnetityContext() called!
23:31:32,578 ERROR [LogInterceptor] EJBException in method: public abstract your
don.ejb.Person yourdon.ejb.PersonHome.create(java.lang.String,java.lang.String,j
ava.lang.String,java.lang.String,java.lang.String,java.lang.String) throws javax
.ejb.CreateException,java.rmi.RemoteException:
javax.ejb.EJBException: Invalid invocation, check your deployment packaging, met
hod=public abstract yourdon.ejb.Person yourdon.ejb.PersonHome.create(java.lang.S
tring,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.l
ang.String) throws javax.ejb.CreateException,java.rmi.RemoteException
        at org.jboss.ejb.EntityContainer$ContainerInterceptor.invokeHome(EntityC
ontainer.java:1106)
        at org.jboss.ejb.plugins.EntitySynchronizationInterceptor.invokeHome(Ent
itySynchronizationInterceptor.java:189)
        at org.jboss.resource.connectionmanager.CachedConnectionInterceptor.invo
keHome(CachedConnectionInterceptor.java:180)
        at org.jboss.ejb.plugins.AbstractInterceptor.invokeHome(AbstractIntercep
tor.java:90)
        at org.jboss.ejb.plugins.EntityInstanceInterceptor.invokeHome(EntityInst
anceInterceptor.java:119)
        at org.jboss.ejb.plugins.EntityLockInterceptor.invokeHome(EntityLockInte
rceptor.java:61)
        at org.jboss.ejb.plugins.EntityCreationInterceptor.invokeHome(EntityCrea
tionInterceptor.java:28)
        at org.jboss.ejb.plugins.CallValidationInterceptor.invokeHome(CallValida
tionInterceptor.java:41)
        at org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInte
rceptor.java:110)
        at org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxIntercep
torCMT.java:335)
        at org.jboss.ejb.plugins.TxInterceptorCMT.invokeHome(TxInterceptorCMT.ja
va:146)
        at org.jboss.ejb.plugins.SecurityInterceptor.invokeHome(SecurityIntercep
tor.java:130)
        at org.jboss.ejb.plugins.LogInterceptor.invokeHome(LogInterceptor.java:1
21)
        at org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invokeHome(ProxyF
actoryFinderInterceptor.java:93)
        at org.jboss.ejb.EntityContainer.internalInvokeHome(EntityContainer.java
:508)
        at org.jboss.ejb.Container.invoke(Container.java:894)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatch
er.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.invocation.local.LocalInvoker$MBeanServerAction.invoke(Loca
lInvoker.java:155)
        at org.jboss.invocation.local.LocalInvoker.invoke(LocalInvoker.java:104)        at org.jboss.invocation.InvokerInterceptor.invokeLocal(InvokerIntercepto
r.java:179)
        at org.jboss.invocation.InvokerInterceptor.invoke(InvokerInterceptor.jav
a:165)
        at org.jboss.proxy.TransactionInterceptor.invoke(TransactionInterceptor.
java:46)
        at org.jboss.proxy.SecurityInterceptor.invoke(SecurityInterceptor.java:5
5)
        at org.jboss.proxy.ejb.HomeInterceptor.invoke(HomeInterceptor.java:169)
        at org.jboss.proxy.ClientContainer.invoke(ClientContainer.java:86)
        at $Proxy63.create(Unknown Source)
        at yourdon.struts.web.action.RegistAction.execute(Unknown Source)
        at org.apache.struts.action.RequestProcessor.processActionPerform(Reques
tProcessor.java:419)
        at org.apache.struts.action.RequestProcessor.process(RequestProcessor.ja
va:224)
        at org.apache.struts.action.ActionServlet.process(ActionServlet.java:119
4)
        at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)        at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
icationFilterChain.java:252)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
ilterChain.java:173)
        at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFi
lter.java:81)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
icationFilterChain.java:202)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
ilterChain.java:173)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperV
alve.java:213)

解决方案 »

  1.   

    EJBException in method: public abstract your
    don.ejb.Person yourdon.ejb.PersonHome.create(java.lang.String,java.lang.String,j
    ava.lang.String,java.lang.String,java.lang.String,java.lang.String) throws javax
    .ejb.CreateException,java.rmi.RemoteException:
    javax.ejb.EJBException: Invalid invocation, check your deployment packaging, met
    hod=public abstract yourdon.ejb.Person yourdon.ejb.PersonHome.create(java.lang.S
    tring,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.l
    ang.String) 看起来不是你的ejbcreate错了,而是yourdon.ejb.PersonHome.create错了,提示说检查你的部署包。
    看看是不是部署包里面有什么错误,部署文件里面home的描述对不对。
      

  2.   

    我是楼主
    我检查了一下部署包里的PersonHome接口,其中create方法返回一个远程接口,它的参数也和实体bean的ejbCreate方法一致.还有那个部署文件中的相关描述是这样的
    <entity>
    <ejb-name>Person</ejb-name>
    <home>yourdon.ejb.PersonHome</home>
    <remote>yourdon.ejb.Person</remote>
    <local-home>yourdon.ejb.PersonLocalHome</local-home>
    <local>yourdon.ejb.PersonLocal</local>
    <ejb-class>yourdon.ejb.PersonBean</ejb-class>
    <persistence-type>Bean</persistence-type>
    <prim-key-class>yourdon.ejb.PersonPK</prim-key-class>
    <reentrant>False</reentrant>
    </entity>
    好象也没有问题
      

  3.   

    还需要补充的一点就是那个实体bean的构造函数和unsetEntityContext()能够正常启动,ejbCreate就启动不了!这是什么原因呢??
      

  4.   

    非常感谢网友的回复!
    这个问题经过一天的倒腾,最后我换了一个旧版本的服务器,运行一遍,那个ejbCreate正常启动,很兴奋!可是接踵而来了一个新问题,那就是在我的getConnection方法体中创建的数据库连接,当该连接返回给方法调用的时候出现了错误。其中我测试了一下那个在方法体中的数据库连接,结果很正常,也就是能操作数据库。可就是我在返回这个数据库连接时出现了异常。使我不知所挫!希望csdn的朋友给些建议!再次感谢呢!
    下面是部分出错信息:
    08:38:03,000 INFO  [STDOUT] {java.naming.provider.url=jnp://127.0.0.1:1099, java
    .naming.factory.initial=org.jnp.interfaces.NamingContextFactory}
    08:38:03,531 INFO  [STDOUT] PersonBean is created by jboss
    08:38:03,531 INFO  [STDOUT] setEntityContext called!!
    08:38:03,531 INFO  [STDOUT] ejbCreate() called!
    08:38:03,546 INFO  [STDOUT] getConnection
    08:38:04,140 INFO  [CachedConnectionManager] Closing a connection for you.  Plea
    se close them yourself: org.jboss.resource.adapter.jdbc.WrappedConnection@90fd20java.lang.Exception: STACKTRACE
            at org.jboss.resource.connectionmanager.CachedConnectionManager.register
    Connection(CachedConnectionManager.java:321)
            at org.jboss.resource.connectionmanager.BaseConnectionManager2.allocateC
    onnection(BaseConnectionManager2.java:526)
            at org.jboss.resource.connectionmanager.BaseConnectionManager2$Connectio
    nManagerProxy.allocateConnection(BaseConnectionManager2.java:888)
            at org.jboss.resource.adapter.jdbc.WrapperDataSource.getConnection(Wrapp
    erDataSource.java:102)
            at yourdon.ejb.PersonBean.getConnection(Unknown Source)
            at yourdon.ejb.PersonBean.ejbHomeGetPersonInfor(Unknown Source)
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
    java:39)
      
      

  5.   

    你的问题多半是JNDI的调用名称有问题,建议你把代码贴出来看看