如何在没有URL中的应用程序上下文的情况下使用Weblogic(12 C)?

时间:2013-04-05 21:08:48

标签: java weblogic clean-urls weblogic12c

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

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

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

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

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

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

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

提前感谢您的任何见解!


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

为了让它正常工作,我需要做三件事和一件相关的事情:

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

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

    最后一点是我在使用其他人的代码时遇到的问题。

2 个答案:

答案 0 :(得分:3)

在application.xml中指定以下设置

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

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

        http://localhost:7001/

答案 1 :(得分:0)

我假设您正在使用weblogic来部署Java应用程序。

结构应该是'战争'文件。

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

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

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

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

希望它有所帮助。