2013-10-09 50 views
0

不同不知何故,我不明白這件事情以正確的webaddress如果調用部署Web應用程序。 如果我在Eclipse中創建.WAR文件 - 訪問此webapp的webadress始終是.WAR文件的名稱。的webapp地址從.war文件名

舉例來說,如果我的文件名是myapp.war我可以使用類似http://adress:9999/myapp 現在我看到一些其他的webapps,warfile名稱和url是不同的。如果Web應用程序已部署,但不知道Web應用程序的名稱,因爲它與.war文件名不同。

+0

你正在使用哪個Web服務器? –

+0

Web應用程序名稱與上下文路徑無關。通常默認情況下,應用程序服務器將Web應用程序部署到Web應用程序名稱的上下文中,但不一定。您始終可以指定要部署的上下文。例如,在tomcat中有管理應用程序,您可以使用它來查看某個Web應用程序在哪個上下文中的部署 –

+0

@Juned Ahsan:我知道它是一個webshere web服務器。那麼在這種情況下,不可能在war文件中看到名稱? – user2862295

回答

1

如果你想手動WebApp文件夾鏈接,說Tomcat的你能做到這一點。我使用這種方法直接從項目開發文件夾運行webapps。易於更改或同時運行多個版本,編輯jsp + html + js文件可以立即在瀏覽器中刷新。生產部署是mywebapp.war打包並上傳到j2ee服務器。

的tomcat/conf目錄/卡塔利娜/本地主機/ mywebapp.xml

<?xml version="1.0" encoding="UTF-8"?> 
<Context docBase="C:/projects/mywebapp/web_v3.1" 
    reloadable="true" crossContext="true" > 
</Context> 

,並瀏覽到解決http://localhost:8080/mywebapp/

或者給路徑屬性在context.xml文件,你可以使用的docBase和路徑一個相同的文件。

的tomcat/conf目錄/卡塔利娜/本地主機/ myapp2.xml

<?xml version="1.0" encoding="UTF-8"?> 
<Context docBase="C:/projects/myapp2/web" path="/myapp" 
    reloadable="true" crossContext="true" > 
</Context> 

,並瀏覽到解決http://localhost:8080/myapp/

1

這條道路被稱爲 '上下文路徑',它不依賴於你的戰爭文件名。

基本上同時部署在網絡領域的Web應用程序,你會遇到一個屏幕,其中顯示「上下文根」。你應該給你喜歡的任何名字,主要是應用程序名稱。現在這成爲您的Web應用程序訪問的路徑。例如如果您將'stocktrade'作爲上下文根,那麼您可以訪問http://localhost/stocktrade/index.html

在WebLogic Server的情況下,可以並行的weblogic.xml定義web.xml中。該文件應該定義應用程序的上下文根。

對於JBoss服務器的jboss.xml是avaialble。您可以在Internet上搜索相應的文件。

2

要回答你的問題,

What if the webapp is deployed but you dont know the name of the webapp, 
because it´s different from the .war file name? 

您將無法找到WAR。就如此容易。

無關,與你的問題,但讓我闡述如何發生的。以例如一個使用Maven進行依賴管理的Web應用程序。

有行家中的一個標記,可以指定設置,可用於訪問應用程序的應用程序的最終名稱。

pom.xml

<groupId>com.test</groupId> 
<artifactId>testWar</artifactId> 
<name>testWar</name> 
<packaging>war</packaging> 

這段代碼告訴行家來構建應用程序作爲testWar.war

現在,您可以指定要如何來訪問應用程序,如果你設置:

<finalName>mycontextpath</finalName> 

然後被用於您的finalName的「部署」,你可以通過

http://localhost:8080/mycontextpath/

訪問你的web應用

默認情況下,幾乎所有的網絡服務器都使用artifactID作爲部署路徑,但您可以指定使用finalName,例如當使用Jetty插件時:

<plugin> 
<groupId>org.mortbay.jetty</groupId> 
<artifactId>jetty-maven-plugin</artifactId> 
<configuration> 
<contextPath>${build.finalName}</contextPath>  
</configuration>    
</plugin> 

希望它有幫助。 :)