【问题标题】:Newly added methods throw exception in session bean新添加的方法在会话 bean 中抛出异常
【发布时间】:2015-01-14 15:55:40
【问题描述】:

这是我制作的会话 bean 类。 我在这个类中添加了一些方法,它之前工作得很好。现在,当我添加一个新方法时,当我通过客户端应用程序调用该方法时,它会给出一条错误消息。

@Stateless(mappedName="ejb/funwayFacadeRemote")
public class funwayFacade implements funwayFacadeRemote {

@PersistenceContext
private EntityManager em;

       public int getName(){
           return 1;
     }

}

这是我的客户端应用程序

public class Main {
    @EJB(mappedName= "ejb/funwayFacadeRemote")
    private static funwayFacadeRemote funwayFacade;
public static void main(String[] args) throws funwayException {

  System.out.println(funwayFacade.getName());

}

当我实现一个新方法时,我之前实现的所有方法仍然有效,它给出 java.lang.reflect.InvocationTargetException getName() 方法是一个新实现的方法 这是行不通的。

java.lang.reflect.InvocationTargetException 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java.lang.reflect.Method.invoke(Method.java:606) 在 org.glassfish.appclient.client.acc.AppClientContainer.launch(AppClientContainer.java:446) 在 org.glassfish.appclient.client.AppClientFacade.main(AppClientFacade.java:166) 引起:javax.ejb.EJBException:java.rmi.RemoteException:CORBA BAD_OPERATION 1330446368 否;嵌套异常是: org.omg.CORBA.BAD_OPERATION: ----------开始服务器端堆栈跟踪---------- org.omg.CORBA.BAD_OPERATION: FINE: 01210032: 无法在反射 Tie vmcid 的类 com.sun.proxy.$Proxy282 中找到名为 getNum 的方法:OMG 次要代码:32 已完成:否 在 com.sun.proxy.$Proxy148.methodNotFoundInTie(未知来源) 在 com.sun.corba.ee.impl.presentation.rmi.ReflectiveTie._invoke(ReflectiveTie.java:166) 在 com.sun.corba.ee.impl.protocol.ServerRequestDispatcherImpl.dispatchToServant(ServerRequestDispatcherImpl.java:528) 在 com.sun.corba.ee.impl.protocol.ServerRequestDispatcherImpl.dispatch(ServerRequestDispatcherImpl.java:199) 在 com.sun.corba.ee.impl.protocol.MessageMediatorImpl.handleRequestRequest(MessageMediatorImpl.java:1549) 在 com.sun.corba.ee.impl.protocol.MessageMediatorImpl.handleRequest(MessageMediatorImpl.java:1425) 在 com.sun.corba.ee.impl.protocol.MessageMediatorImpl.handleInput(MessageMediatorImpl.java:930) 在 com.sun.corba.ee.impl.protocol.giopmsgheaders.RequestMessage_1_2.callback(RequestMessage_1_2.java:213) 在 com.sun.corba.ee.impl.protocol.MessageMediatorImpl.handleRequest(MessageMediatorImpl.java:694) 在 com.sun.corba.ee.impl.protocol.MessageMediatorImpl.dispatch(MessageMediatorImpl.java:496) 在 com.sun.corba.ee.impl.protocol.MessageMediatorImpl.doWork(MessageMediatorImpl.java:2222) 在 com.sun.corba.ee.impl.threadpool.ThreadPoolImpl$WorkerThread.performWork(ThreadPoolImpl.java:497) 在 com.sun.corba.ee.impl.threadpool.ThreadPoolImpl$WorkerThread.run(ThreadPoolImpl.java:540) ----------END 服务器端堆栈跟踪---------- vmcid:OMG 次要代码:32 已完成:否 在 funway._funwayFacadeRemote_Wrapper.getNum(funway/_funwayFacadeRemote_Wrapper.java) 在 funwayclient.Main.main(Main.java:32) ... 6 更多 引起:java.rmi.RemoteException: CORBA BAD_OPERATION 1330446368 否;嵌套异常是: org.omg.CORBA.BAD_OPERATION: ----------开始服务器端堆栈跟踪---------- org.omg.CORBA.BAD_OPERATION: FINE: 01210032: 无法在反射 Tie vmcid 的类 com.sun.proxy.$Proxy282 中找到名为 getNum 的方法:OMG 次要代码:32 已完成:否 在 com.sun.proxy.$Proxy148.methodNotFoundInTie(未知来源) 在 com.sun.corba.ee.impl.presentation.rmi.ReflectiveTie._invoke(ReflectiveTie.java:166) 在 com.sun.corba.ee.impl.protocol.ServerRequestDispatcherImpl.dispatchToServant(ServerRequestDispatcherImpl.java:528) 在 com.sun.corba.ee.impl.protocol.ServerRequestDispatcherImpl.dispatch(ServerRequestDispatcherImpl.java:199) 在 com.sun.corba.ee.impl.protocol.MessageMediatorImpl.handleRequestRequest(MessageMediatorImpl.java:1549) 在 com.sun.corba.ee.impl.protocol.MessageMediatorImpl.handleRequest(MessageMediatorImpl.java:1425) 在 com.sun.corba.ee.impl.protocol.MessageMediatorImpl.handleInput(MessageMediatorImpl.java:930) 在 com.sun.corba.ee.impl.protocol.giopmsgheaders.RequestMessage_1_2.callback(RequestMessage_1_2.java:213) 在 com.sun.corba.ee.impl.protocol.MessageMediatorImpl.handleRequest(MessageMediatorImpl.java:694) 在 com.sun.corba.ee.impl.protocol.MessageMediatorImpl.dispatch(MessageMediatorImpl.java:496) 在 com.sun.corba.ee.impl.protocol.MessageMediatorImpl.doWork(MessageMediatorImpl.java:2222) 在 com.sun.corba.ee.impl.threadpool.ThreadPoolImpl$WorkerThread.performWork(ThreadPoolImpl.java:497) 在 com.sun.corba.ee.impl.threadpool.ThreadPoolImpl$WorkerThread.run(ThreadPoolImpl.java:540)

---------END 服务器端堆栈跟踪---------- vmcid:OMG 次要代码:32 已完成:否 在 com.sun.corba.ee.impl.javax.rmi.CORBA.Util.mapSystemException(Util.java:310) 在 com.sun.corba.ee.impl.presentation.rmi.StubInvocationHandlerImpl.privateInvoke(StubInvocationHandlerImpl.java:211) 在 com.sun.corba.ee.impl.presentation.rmi.StubInvocationHandlerImpl.invoke(StubInvocationHandlerImpl.java:150) 在 com.sun.corba.ee.impl.presentation.rmi.codegen.CodegenStubBase.invoke(CodegenStubBase.java:226) 在 funway.__funwayFacadeRemote_Remote_DynamicStub.getNum(funway/__funwayFacadeRemote_Remote_DynamicStub.java) ... 8 更多 引起:org.omg.CORBA.BAD_OPERATION: ----------BEGIN 服务器端堆栈跟踪---------- org.omg.CORBA.BAD_OPERATION: FINE: 01210032: 无法在反射 Tie vmcid 的类 com.sun.proxy.$Proxy282 中找到名为 getNum 的方法:OMG 次要代码:32 已完成:否 在 com.sun.proxy.$Proxy148.methodNotFoundInTie(未知来源) 在 com.sun.corba.ee.impl.presentation.rmi.ReflectiveTie._invoke(ReflectiveTie.java:166) 在 com.sun.corba.ee.impl.protocol.ServerRequestDispatcherImpl.dispatchToServant(ServerRequestDispatcherImpl.java:528) 在 com.sun.corba.ee.impl.protocol.ServerRequestDispatcherImpl.dispatch(ServerRequestDispatcherImpl.java:199) 在 com.sun.corba.ee.impl.protocol.MessageMediatorImpl.handleRequestRequest(MessageMediatorImpl.java:1549) 在 com.sun.corba.ee.impl.protocol.MessageMediatorImpl.handleRequest(MessageMediatorImpl.java:1425) 在 com.sun.corba.ee.impl.protocol.MessageMediatorImpl.handleInput(MessageMediatorImpl.java:930) 在 com.sun.corba.ee.impl.protocol.giopmsgheaders.RequestMessage_1_2.callback(RequestMessage_1_2.java:213) 在 com.sun.corba.ee.impl.protocol.MessageMediatorImpl.handleRequest(MessageMediatorImpl.java:694) 在 com.sun.corba.ee.impl.protocol.MessageMediatorImpl.dispatch(MessageMediatorImpl.java:496) 在 com.sun.corba.ee.impl.protocol.MessageMediatorImpl.doWork(MessageMediatorImpl.java:2222) 在 com.sun.corba.ee.impl.threadpool.ThreadPoolImpl$WorkerThread.performWork(ThreadPoolImpl.java:497) 在 com.sun.corba.ee.impl.threadpool.ThreadPoolImpl$WorkerThread.run(ThreadPoolImpl.java:540)

---------END 服务器端堆栈跟踪---------- vmcid:OMG 次要代码:32 已完成:否 在 sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 在 sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) 在 sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 在 java.lang.reflect.Constructor.newInstance(Constructor.java:526) 在 com.sun.corba.ee.impl.protocol.giopmsgheaders.MessageBase.getSystemException(MessageBase.java:813) 在 com.sun.corba.ee.impl.protocol.giopmsgheaders.ReplyMessage_1_2.getSystemException(ReplyMessage_1_2.java:131) 在 com.sun.corba.ee.impl.protocol.MessageMediatorImpl.getSystemExceptionReply(MessageMediatorImpl.java:594) 在 com.sun.corba.ee.impl.protocol.ClientRequestDispatcherImpl.processResponse(ClientRequestDispatcherImpl.java:519) 在 com.sun.corba.ee.impl.protocol.ClientRequestDispatcherImpl.marshalingComplete(ClientRequestDispatcherImpl.java:393) 在 com.sun.corba.ee.impl.protocol.ClientDelegateImpl.invoke(ClientDelegateImpl.java:272) 在 com.sun.corba.ee.impl.presentation.rmi.StubInvocationHandlerImpl.privateInvoke(StubInvocationHandlerImpl.java:198) ... 11 更多 Java 结果:1

【问题讨论】:

  • 在您抛出的异常中,找不到该方法 getNum。这个方法存在于你的会话 bean 中吗?如果存在,您如何部署您的服务器应用程序?

标签: jakarta-ee netbeans glassfish javabeans


【解决方案1】:

我猜你忘记在接口中声明你的新方法了。

要修复它,请将以下内容添加到您的 funwayFacadeRemote

public int getName();

注意:Java 类和接口名称应以大写字母开头。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多