簡體   English   中英

Servlet不可用-HTTP狀態404

[英]Servlet not available - HTTP Status 404

我剛接觸EJB,並嘗試在EJB中開發Currency Converter應用程序。在我的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>

您在哪里將Servlet Convert與URL模式綁定在一起?

HTML如何知道Servlet類?


Hello World Java EE應用程序上找到示例代碼。


試試看

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

或嘗試

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM