0

不知何故,如果调用已部署的 web 应用程序,我不会使用正确的网址得到这个东西。如果我在 Eclipse 中创建我的 .WAR 文件 - 访问此 webapp 的网络地址始终是 .WAR 文件的名称。

例如,如果我的文件名是,myapp.war我可以使用类似http://adress:9999/myapp Now I see some other webapps 之类的东西,warfile 名称和 url 是不同的。如果 webapp 已部署,但您不知道 webapp 的名称,因为它与 .war 文件名不同,该怎么办?

4

3 回答 3

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 应用程序。

maven中有一个标签,可以指定该标签来设置可用于访问应用程序的应用程序的最终名称。

pom.xml

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

这段代码告诉 maven 将应用程序构建为testWar.war.

现在,您可以指定您希望如何访问应用程序,如果您设置:

<finalName>mycontextpath</finalName> 

然后您的 finalName 被用于“部署”,您可以通过以下方式访问您的 webapp

http://localhost:8080/mycontextpath/

默认情况下,几乎所有网络服务器都artifactID用作部署路径,但您可以指定使用finalName类似的方式,例如在使用Jetty插件时:

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

希望能帮助到你。:)

于 2013-10-09T10:48:54.093 回答
1

该路径称为“上下文路径”,它不依赖于您的战争文件名。

基本上,在 Web Sphere 上部署 Web 应用程序时,您会遇到一个显示“上下文根”的屏幕。您应该给出您喜欢的任何名称,主要是应用程序名称。现在这成为您的 Web 应用程序访问的路径。例如,如果您将“ stocktrade ”作为上下文根,那么您可以访问http://localhost/stocktrade/index.html

对于 weblogic 服务器,您可以定义与 web.xml 并行的 weblogic.xml。该文件应定义应用程序的上下文根。

对于 JBOSS 服务器,可以使用 jboss.xml。您可以在 Internet 上搜索相应的文件。

于 2013-10-09T10:48:43.513 回答
1

如果你想手动将 webapp 文件夹链接到,比如 Tomcat,你可以这样做。我使用这种方法直接从项目开发文件夹中运行 webapps。易于更改或同时运行多个版本,编辑jsp+html+js文件可以立即在浏览器中刷新。生产部署是 mywebapp.war 打包并上传到 j2ee 服务器。

tomcat/conf/Catalina/localhost/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/Catalina/localhost/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/

于 2013-10-09T10:45:34.183 回答