2016-09-02 3 views
0

Это война файл содержание:Невозможно получить развертывание файла войны с использованием GlassFish

tar -xvf search.war 
x META-INF/ 
x META-INF/MANIFEST.MF 
x WEB-INF/ 
x WEB-INF/classes/ 
x WEB-INF/classes/com/ 
x WEB-INF/classes/com/init/ 
x WEB-INF/classes/com/init/HelloServlet.class 
x WEB-INF/web.xml 

web.xml содержание:

<?xml version="1.0" encoding="UTF-8"?> 
<web-app xmlns="http://java.sun.com/xml/ns/javaee" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
      http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
     version="2.5"> 
    <servlet> 
     <servlet-name>homeServlet</servlet-name> 
     <servlet-class>com.init.HelloServlet</servlet-class> 
    </servlet> 
    <servlet-mapping> 
     <servlet-name>homeServlet</servlet-name> 
     <url-pattern>/search*</url-pattern> 
    </servlet-mapping> 
</web-app> 

содержание HelloServlet.java

package com.init; 

import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 
import java.io.IOException; 
import java.io.PrintWriter; 

/** 
* @author sudeep 
* @since 31/08/16 
*/ 
public class HelloServlet extends HttpServlet { 

    @Override 
    public void doGet(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse){ 
     PrintWriter printWriter = null; 
     try { 
      printWriter = httpServletResponse.getWriter(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
     httpServletResponse.setContentType("text/html"); 
     printWriter.print("<html><body><p>Hello World!</p></html></body>"); 
     printWriter.close(); 
    } 
} 

Тогда развертывание войны на стеклянную рыбку с помощью этой команды:

asadmin --port 5000 --host localhost deploy search.war 

, когда я смотрю, чтобы запустить приложение поиска используя GlassFish пользовательский интерфейс, я получаю это:

enter image description here

enter image description here

Что здесь не так?

+0

Действительно ли ваш файл войны является файлом tar? Это не сработает - вам нужно использовать команду jar. – stdunbar

+0

@stdunbar, который предназначен для извлечения файла войны – sudeepdino008

ответ

0

От администратора это похоже, что имя контекста webapp - это поиск (что имеет смысл, по умолчанию это то же имя, что и война). Это делает URL для вашего webapp http://hostname:8080/search.

Ваш сервлет затем отображается на шаблон url /search*, что на самом деле относится к URL-адресу вашего webapp. Таким образом, он запускается по URL-адресам, начинающимся с http://hostname:8080/search/search. Если вы попробуете этот шаблон url, сервлет должен быть вызван.

Что вы, вероятно, хотите достичь, так это то, что ваш webapp развертывается как корневое веб-приложение, поэтому имя контекста не будет частью URL-адреса. Поскольку вы используете Glassfish и используете asadmin, вы можете это сделать:

asadmin --port 5000 --host localhost deploy --contextroot "/" search.war 
Смежные вопросы