6

我正在开发一个需要 Weblogic 服务器的 Web 项目,并且在部署后(在我的 Macbook Pro 上)我可以查看该站点的唯一方法是将应用程序名称指定为整个站点的前缀。例如

http://localhost:7001/myapp-weblogic/

这会破坏大量使用根 URL 访问资源的样式和 JavaScript 代码(例如 /images/example.png)

虽然我可以以编程方式将“/my-app”添加到 .jsp 中的内容,但我无法在我的 .css 文件中执行此操作。

我尝试在 Weblogic > 控制台 > 环境 > 服务器 > myserver > 协议 > HTTP中设置“默认 WebApp 上下文根:” - 但这不起作用。

这似乎应该是一件很简单的事情。在 IIS 中,我只需在本地主机文件中添加一行并将主机名添加到我的 IIS 容器中 - 总共花费了大约 42 秒。

127.0.0.1   myapp.local  -> Let's me view my site at http://myapp.local

提前感谢您的任何见解!


更新!!我终于把事情搞定了。其中一些对我的设置非常具体,但希望对其他人仍有帮助。

为了让它工作,我需要做 3 件主要的事情和另一件相关的事情:

  1. 在 Weblogic 中设置服务器的默认应用程序
    1. 在本地服务器上,转到控制台并登录
    2. 转到:Weblogic > 控制台 > 环境 > 服务器 > myserver > 协议 > HTTP
    3. 将“Default WebApp Context Root:”设置为“/”+您的应用程序(例如“/myapp”)
  2. 在 MyEclipse 中设置项目的上下文根目录
    1. 在 MyEclipse 中打开项目后,右键单击项目并选择属性
    2. 展开“MyEclipse”并选择“Web”并将 Web Context-root 设置为“/”
  3. 将项目weblogic.xml文件中context-root的值设置为“/”
    1. 此文件应位于项目的 WEB-INF 文件夹中
    2. 保存文件并构建应用程序
    3. 重新部署您的应用程序 - 您可能还需要重新启动服务器

将我的本地路径变量设置为“/”

所以我必须做的另一件事是设置一个我引用“/”的路径变量。当您请求路径时 (request.getContextPath(); ),它不会在路径前加上“/”,如果您尝试使用类似<c:url context="${ _path }"_path 变量不以“/”开头的东西,它将引发异常.

最后一点是我在使用别人的代码时遇到的。

4

2 回答 2

6

在 application.xml 中指定以下设置

       <web>
          <web-uri>yourweb.war</web-uri>
          <context-root>/</context-root>
       </web>

现在您可以在没有上下文根的情况下拨打电话

        http://localhost:7001/
于 2013-04-11T16:31:02.317 回答
2

我假设因为您使用的是 weblogic,所以您部署了一个 java 应用程序。

该结构应该是一个“战争”文件。

有关结构的更多信息,您可以在此处找到。

http://www.openscope.net/2010/01/25/war-deployment-file-structure/

上下文根的名称(默认为战争名称)也可能被覆盖

https://forums.oracle.com/forums/thread.jspa?messageID=10366462

希望能帮助到你。

于 2013-04-06T08:28:59.947 回答