2013-08-18 126 views
3

我正在嘗試編寫一個簡單的web應用程序並部署在jboss EAP 6上。該應用程序被命名爲「webapp」,我能夠構建並將其部署到jboss。上下文根是/ webapp。jboss部署問題 - 無法訪問servlet

然後我能夠訪問localhost:8080/webapp,它會返回一個由默認的index.jsp打印的「Hello World」,該文件由eclipse在/ src/main/webapp中生成。

然而,當我試圖實際訪問位於localhost這個servlet:8080/web應用/ sessionsetup我得到了以下錯誤:

JBWEB000065: HTTP Status 404 - /webapp/sessionsetup 

JBWEB000309: type JBWEB000067: Status report 

JBWEB000068: message /webapp/sessionsetup 

JBWEB000069: description JBWEB000124: The requested resource is not available. 

下面是我爲servlet簡單的代碼:

@WebServlet("/sessionsetup") 
public class SessionSetup extends HttpServlet{ 

private static final Logger log = LoggerFactory.getLogger(SessionSetup.class); 

public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException { 
    log.info(this.toString()); 
    log.info("Do get method is called"); 

    response.setContentType("text/xml"); 

    PrintWriter printer = response.getWriter(); 
    printer.println("<html>"); 
    printer.println("<head>" + "</head>"); 
    printer.println("<body>"); 
    printer.println("<h1>" + "Welcome! You are in session setup" + "</h1>"); 
    printer.println("</body>"); 
    printer.println("</html>"); 

    printer.close(); 
    } 

} 

任何人都可以評論我可能錯過什麼東西嗎?有沒有辦法找到一些日誌信息沒有這個錯誤?我試圖在/ standalone/log中查找server.log,但找不到任何東西。

回答

0

問題已解決。這似乎是web.xml的一個問題 - 一旦這個被刪除,servlet就可用了。

1

可能有兩個原因
(1)您可以在JBoss服務器配置standalone.xml
虛擬服務器名稱=「默認主機」啓用,歡迎根=「假」>
使用假,而不是在真正的實現,歡迎根

(2) 你有沒有做過控制器的映射正確

0

實際的問題應該是如何在JBoss部署(運行時名稱)的方式。

所以,如果你嘗試訪問應用程序,它應該工作。

運行時名稱:部署在服務器運行時應該知道的名稱。這將等同於部署文件的文件名,並且將形成默認Java Enterprise Edition應用程序和模塊名稱等基礎。這通常與「名稱」相同,但在某些情況下,用戶可能希望在部署內容存儲庫中提供兩個具有相同「運行時名稱」的部署(例如,兩個版本的「foo.war」)在這種情況下,部署需要具有不同的「名稱」值,但會具有相同的「運行時名稱」。

0

這只是我關於如何解決這個問題以及解決問題的方式的經驗。

這個問題發生在沒有war文件的情況下。當我部署

hawtio

到它需要

jolokia

所以我只是下載和部署手動進我的JBoss那麼問題已經解決了.war文件監控的JBoss。

0

我認爲你必須添加在其中設置了上下文根

<jboss-web> 
    <context-root>contextroot</context-root> 
</jboss-web> 
WEB-INF /的jboss-web.xml文件