java.lang.NoSuchMethodError:disp

java.lang.NoSuchMethodError:disp,java,servlets,ear,nosuchmethoderror,weblogic9.x,Java,Servlets,Ear,Nosuchmethoderror,Weblogic9.x,这是我的密码: 界面: package pack; import javax.ejb.Remote; @Remote public interface DemoRemote extends javax.ejb.EJBObject { String disp (String name) throws java.rmi.RemoteException; } 类别: package pack; import javax.ejb.EJBHome; import javax.ejb.EJBO

这是我的密码: 界面:

package pack;
import javax.ejb.Remote;

@Remote
public interface DemoRemote extends javax.ejb.EJBObject {
    String disp (String name) throws java.rmi.RemoteException;
}
类别:

package pack;

import javax.ejb.EJBHome;
import javax.ejb.EJBObject;
import javax.ejb.Handle;
import javax.ejb.RemoveException;
import javax.ejb.SessionBean;
import javax.ejb.Stateless;

import weblogic.ejb.GenericSessionBean;
import weblogic.ejbgen.Session;
import weblogic.ejbgen.JndiName;
import weblogic.ejbgen.FileGeneration;
import weblogic.ejbgen.Constants;

@Session(ejbName = "Demo")
@JndiName(remote = "ejb.DemoRemoteHome")
@FileGeneration(remoteClass = Constants.Bool.TRUE, remoteHome = Constants.Bool.TRUE, localClass = Constants.Bool.FALSE, localHome = Constants.Bool.FALSE)
@Stateless
public class Demo extends GenericSessionBean implements SessionBean, DemoRemote {
    private static final long serialVersionUID = 1L;

    /* (non-Javadoc)
     * @see weblogic.ejb.GenericSessionBean#ejbCreate()
     */
    public void ejbCreate() {
        // IMPORTANT: Add your code here
    }

    public String disp(String name) {
        return "Hello " + name;
    }

    public EJBHome getEJBHome() {
        // TODO Auto-generated method stub
        return null;
    }

    public Handle getHandle() {
        // TODO Auto-generated method stub
        return null;
    }

    public Object getPrimaryKey() {
        // TODO Auto-generated method stub
        return null;
    }

    public boolean isIdentical(EJBObject obj) {
        // TODO Auto-generated method stub
        return false;
    }

    public void remove() throws RemoveException {
        // TODO Auto-generated method stub

    }
}
servlet:

import java.io.IOException;

import javax.ejb.EJB;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import pack.Demo;
import pack.DemoRemote;

/**
 * Servlet implementation class Client
 */
public class Client extends HttpServlet {
    private static final long serialVersionUID = 1L;

    /**
     * @see HttpServlet#HttpServlet()
     */
    public Client() {
        super();
        // TODO Auto-generated constructor stub
    }

    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    @EJB
    DemoRemote rem = new Demo();
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.getWriter().print(rem.disp("World"));
    }

    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
    }

}
以下是该项目的结构:

测试仪 --打包 -----Demo.java -----DemoRemote.java TestWeb --Java资源 -----src --------默认包 -----------Client.java

在服务器上运行Client.java时,它返回:

错误500内部服务器错误

java.lang.NoSuchMethodError:disp at Client.doGetClient.java:33 at javax.servlet.http.HttpServlet.serviceHttpServlet.java:743 at javax.servlet.http.HttpServlet.serviceHttpServlet.java:856 at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.runStubSecurityHelper.java:227 在 weblogic.servlet.internal.StubSecurityHelper.invokeServletStubSecurityHelper.java:125 在 weblogic.servlet.internal.ServletStubImpl.executeServletStubImpl.java:283 在 weblogic.servlet.internal.ServletStubImpl.executeServletStubImpl.java:176 在 weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.runWebAppServletContext.java:3272 在 weblogic.security.acl.internal.AuthenticatedSubject.doAsAuthenticatedSubject.java:321 在 weblogic.security.service.SecurityManager.RunAsseSecurityManager.java:121 在 weblogic.servlet.internal.WebAppServletContext.securedExecuteWebAppServletContext.java:2019 在 weblogic.servlet.internal.WebAppServletContext.executeWebAppServletContext.java:1925 在 weblogic.servlet.internal.ServletRequestImpl.runServletRequestImpl.java:1394 在weblogic.work.ExecuteThread.executeeexecutethread.java:209 at weblogic.work.ExecuteThread.runExecuteThread.java:181

我将eclipse与WebLogicServer9.2+JavaEE5一起使用。 有人能帮我解决这个问题吗。
谢谢您的时间。

尝试方法定义上的@Override注释。您从何处获得该代码?如果您像您所说的那样使用JavaEE5,您永远不会做像extends javax.ejb.EJBObject这样的事情,这是从J2EE的旧时代开始的。查看如何使用EJB3。它返回一个错误。Demo类型的方法dispString必须重写一个超类方法,并强制我删除注释。@Geziefer由于WebLogic Server 9.2,我想我必须扩展该类。@user2327348:必须使用它吗?这是非常过时的技术,所以如果可能的话,使用更新的。