WildFly 9 развертывает простое веб-приложение, но 404

У меня есть простое веб-приложение hello world, которое, когда я запускаю его в tomcat с URL-адресом http://localhost:8080/na/environment, отлично работает; Та же война в wildfly 9 не работает, выдает ошибку 404.

Погуглив, я обнаружил, что для проекта WildFly требуется 2 файла (beans.xml и jboss-web.xml), я только что добавил в проект, но все еще не работает.

Моя консоль администратора wildldFly говорит, что война развернута и включена

wildFly console

Это структура моего проекта:

структура проекта

А содержимое моего файла jboss-web.xml:

<?xml version="1.0" encoding="UTF-8"?>
 <jboss-web xmlns="http://www.jboss.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.jboss.com/xml/ns/javaee http://www.jboss.org/j2ee/schema/jboss-web
@WebServlet(urlPatterns="/environment")
public class Environment extends HttpServlet {
    private static final long serialVersionUID = 1L;

    protected void doGet(HttpServletRequest request,
                         HttpServletResponse response) throws ServletException,
                                                       IOException {
    response.getWriter().append("Hello");
    }

    protected void doPost(HttpServletRequest request,
                          HttpServletResponse response) throws ServletException,
                                                        IOException {
    doGet(request, response);
    }



}
1.xsd"> <context-root>/</context-root> </jboss-web>

beans.xml пуст (до сих пор не понимаю, что это за морская свинья).

Наконец, код моего сервлета (и только класса):

@WebServlet(urlPatterns="/environment")
public class Environment extends HttpServlet {
    private static final long serialVersionUID = 1L;

    protected void doGet(HttpServletRequest request,
                         HttpServletResponse response) throws ServletException,
                                                       IOException {
    response.getWriter().append("Hello");
    }

    protected void doPost(HttpServletRequest request,
                          HttpServletResponse response) throws ServletException,
                                                        IOException {
    doGet(request, response);
    }



}

Я пробовал использовать:

http://localhost:9990/na/environment/
http://localhost:9990/na.war/environment/
http://localhost:9990/environment/

person Eduardo    schedule 11.05.2017    source источник


Ответы (1)


Если вы хотите, чтобы контекст был na, вам нужно изменить свой jboss-web.xml, чтобы использовать na в качестве корневого контекста.

<?xml version="1.0" encoding="UTF-8"?>
<jboss-web xmlns="http://www.jboss.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.jboss.com/xml/ns/javaee http://www.jboss.org/j2ee/schema/jboss-web_5_1.xsd">
    <context-root>/na</context-root>
</jboss-web>   

Если вы измените имя среды выполнения при развертывании, это также должно сработать. Вы также можете переопределить <finalName>na</finalName> в своем помпе.

person James R. Perkins    schedule 11.05.2017