Netbeans的8.0+
的GlassFish 4+
JDK 1.8
注意這個例子中工作得很好,如果你使用無界面視圖。如果我們使用本地或遠程接口,則效果不佳。
遠程接口
package packt;
import javax.ejb.Remote;
@Remote
public interface SphereBeanRemote {
public double computeVolume(double radius);
}
實現上述接口
package packt;
import javax.ejb.Stateless;
@Stateless
public class SphereBean implements SphereBeanRemote {
@Override
public double computeVolume(double radius) {
return (4.0/3.0)*Math.PI*(radius*radius*radius);
}
}
客戶(的servlet),其訪問它
import java.io.*;
import javax.ejb.EJB;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.*;
import packt.SphereBean;
@WebServlet(urlPatterns = {"/SphereServlet"})
public class SphereServlet extends HttpServlet {
@EJB
SphereBean sphere;
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
try (PrintWriter out = response.getWriter()) {
out.println("<!DOCTYPE html>");
out.println("<html>");
out.println("<head>");
out.println("<title>Servlet SphereServlet</title>");
out.println("</head>");
out.println("<body>");
out.println("<h1>Servlet SphereServlet at " + request.getContextPath() + "</h1>");
out.println("<h1>" + sphere.computeVolume(18) + "</h1>");
out.println("</body>");
out.println("</html>");
}
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
@Override
public String getServletInfo() {
return "Short description";
}
}
錯誤 HTTP狀態500 - 內部服務器錯誤
類型異常報告
messageInternal服務器錯誤
descriptionThe服務器遇到阻止其完成此請求一個內部錯誤。
例外
javax.servlet.ServletException:錯誤實例servlet類SphereServlet
根源
com.sun.enterprise.container.common.spi.util.InjectionException:錯誤創建管理對象類:類SphereServlet
根源
com.sun.enterprise.container.c ommon.spi.util.InjectionException:嘗試注入遠程ejb-ref名稱的異常= SphereServlet/sphere,遠程3.x接口= packt.SphereBean,ejb-link = null,lookup =,mappedName =,jndi-name = packt。 SphereBean,refType = Session SphereServlet:SerialContext中'java:comp/env/SphereServlet/sphere'的查找失敗[myEnv = {java.naming.factory.initial = com.sun.enterprise.naming.impl.SerialInitContextFactory,java .naming.factory.state = com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl,java.naming.factory.url.pkgs = com.sun.enterprise.naming}
根源
javax.naming.NamingException:SerialContext中'java:comp/env/SphereServlet/sphere'的查找失敗[myEnv = {java.naming.factory.initial = com.sun.enterprise.naming.impl.SerialInitContextFact ory,java.naming.factory.state = com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl,java.naming.factory.url.pkgs = com.sun.enterprise.naming} [根異常是javax。 naming.NamingException:爲遠程ejb-ref名稱= SphereServlet/sphere,遠程3.x接口= packt.SphereBean,ejb-link = null,lookup =,mappedName =,jndi-name = packt解析Ejb的異常。SphereBean,refType = Session'。用於查找的實際(可能是內部的)遠程JNDI名稱是'packt.SphereBean#packt.SphereBean'[根異常是javax.naming.NamingException:SerialContext中的'packt.SphereBean#packt.SphereBean'的查找失敗[myEnv = {java .naming.factory.initial = com.sun.enterprise.naming.impl.SerialInitContextFactory,java.naming.factory.state = com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl,java.naming.factory.url .pkgs = com.sun.enterprise.naming} [根異常是javax.naming.NameNotFoundException:packt.SphereBean#packt.SphereBean未找到]]]
根源
javax.naming.NamingException中:異常爲遠程ejb-ref名稱= SphereServlet/sphere,遠程3.x接口= packt.SphereBean,ejb-link = null,lookup =,mappedName =,jndi-name = packt解析Ejb。 SphereBean,refType = Session'。用於查找的實際(可能是內部的)遠程JNDI名稱是'packt.SphereBean#packt.SphereBean'[根異常是javax.naming.NamingException:SerialContext中的'packt.SphereBean#packt.SphereBean'的查找失敗[myEnv = {java .naming.factory.initial = com.sun.enterprise.naming.impl.SerialInitContextFactory,java.naming.factory.state = com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl,java.naming.factory.url .pkgs = com.sun.enterprise.naming} [根異常是javax.naming.NameNotFoundException:packt.SphereBean#packt.SphereBean未找到]]
根源
javax.naming.NamingException中:查找失敗用於SerialContext中的'packt.SphereBean#packt.SphereBean'[myEnv = {java.naming.factory.initial = com.sun.enterprise.naming.impl.SerialInitContextFactor y,java.naming.factory.state = com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl,java.naming.factory.url.pkgs = com.sun.enterprise.naming} [根異常是javax。 naming.NameNotFoundException:packt.SphereBean#packt.SphereBean沒有發現]
根源
javax.naming.NameNotFoundException:packt.SphereBean#packt.SphereBean沒有找到
記滿堆的痕跡GlassFish Server Open Source Edition 4.1日誌中提供了異常及其根本原因。 GlassFish應用服務器版4.1
我想你沒有得到我的問題。我的問題如果我使用遠程或本地接口如何運行以上應用程序 – user3637305
解決方案更新... –
我已經添加它.Plz有適當的看看它。但仍然有錯誤 – user3637305