【问题标题】:Servlet not available - HTTP Status 404Servlet 不可用 - HTTP 状态 404
【发布时间】:2014-05-01 18:37:05
【问题描述】:

我是 EJB 的新手,正在尝试在 EJB 中开发货币转换器应用程序。在我的 index.jsp 页面中,我正在输入金额(以美元为单位)和要转换的货币并将其发送到一个servlet页面Convert.java,它需要通过在我的实体类货币的帮助下匹配输入的货币来从我的数据库表中获取转换。 当我点击我的 JSP 页面上的按钮时,我收到以下错误

HTTP Status 404 - Servlet Convert is not available

type Status report

messageServlet Convert is not available

descriptionThe requested resource (Servlet Convert is not available) is not available.

GlassFish Server Open Source Edition 3.1.2.2

这是我的 index.jsp 的代码

<body>
    <h1>Currency Converter</h1>
    <form action="Convert" method="get">
        Enter Amount In Dollar <input type="text" name="amt"/>
        Enter Currency <input type="text" name="curr"/>
        <input type="submit" name="conv" value="Convert"/>
    </form>
</body>

我的servlet页面Convert.java的代码如下:

 public class Convert extends HttpServlet {
@EJB
private currencyFacade cf1;

protected void processRequest(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    response.setContentType("text/html;charset=UTF-8");
    try (PrintWriter out = response.getWriter()) {
        String curr;
        curr=request.getParameter("curr");
        Long cv =null,fin,amt;
        amt=Long.parseLong(request.getParameter("amt"));
        currency c1=new currency();
        List s=cf1.findAll();
        for (Iterator it = s.iterator(); it.hasNext();)
        {

           currency ac1 = (currency) it.next();
           if(curr.equals(ac1.getCurrto()))
           {
               cv=c1.getValue();
        }}
        fin=amt*cv;
        out.println("Value of "+amt + "Dolar is " + fin+" "+curr);
    }
    catch(Exception ex)
    {
        out.println("Error " + ex);
    }
}

这是我的实体类currency.java

@Entity
public class currency implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
private String currto;
private Long value;
public Long getId() {
    return id;
}

public String getCurrto() {
    return currto;
}

public void setCurrto(String currto) {
    this.currto = currto;
}

public Long getValue() {
    return value;
}

public void setValue(Long value) {
    this.value = value;
}

public void setId(Long id) {
    this.id = id;
}

@Override
public int hashCode() {
    int hash = 0;
    hash += (id != null ? id.hashCode() : 0);
    return hash;
}

@Override
public boolean equals(Object object) {
    // TODO: Warning - this method won't work in the case the id fields are not set
    if (!(object instanceof currency)) {
        return false;
    }
    currency other = (currency) object;
    if ((this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id))) {
        return false;
    }
    return true;
}

@Override
public String toString() {
    return "entity.currency[ id=" + id + " ]";
}

}

我的 web.xml 文件如下:

<servlet>
    <servlet-name>Convert</servlet-name>
    <servlet-class>Convert</servlet-class>
</servlet>
<servlet>
    <servlet-name>addcur</servlet-name>
    <servlet-class>addcur</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>Convert</servlet-name>
    <url-pattern>/Convert</url-pattern>
</servlet-mapping>
<servlet-mapping>
    <servlet-name>addcur</servlet-name>
    <url-pattern>/addcur</url-pattern>
</servlet-mapping>
<session-config>
    <session-timeout>
        30
    </session-timeout>
</session-config>
<welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
</welcome-file-list>

【问题讨论】:

  • 你能打印你的 web.xml 文件吗?
  • &lt;servlet-class&gt;Convert&lt;/servlet-class&gt;使用类Convert的完全限定名
  • 看我分享给你的示例代码Hello World
  • 您使用的是什么容器和版本?

标签: java jsp servlets ejb


【解决方案1】:

您在哪里将 Servlet Convert 与 URL 模式绑定?

HTML 如何知道 Servlet 类?


The Hello World Java EE application 上查找示例代码。


试试

@WebServlet("/Convert")
public class Convert extends HttpServlet {
   // ...
}

或者试试

@WebServlet(name = "ConvertServlet", urlPatterns = "/Convert")
public class Convert extends HttpServlet {
   // ...
}

【讨论】:

  • 我已经尝试了这两个建议,但都是徒劳的。结果还是一样
  • &lt;servlet-class&gt;Convert&lt;/servlet-class&gt; 中的类 Convert 的完全限定名怎么样?你读过示例代码吗?
  • 您是否阅读了我的帖子中提到的 Hello world 示例代码作为链接?
猜你喜欢
  • 2018-07-15
  • 1970-01-01
  • 2012-06-01
  • 2012-06-16
  • 1970-01-01
  • 1970-01-01
  • 2015-10-09
  • 1970-01-01
  • 2012-01-05
相关资源
最近更新 更多