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:必须使用它吗?这是非常过时的技术,所以如果可能的话,使用更新的。