【问题标题】:How to change context-root for enterprise application (.ear) in weblogic如何在 weblogic 中更改企业应用程序 (.ear) 的上下文根
【发布时间】:2017-04-26 11:29:30
【问题描述】:

我们有第三方基于 Web 的企业应用程序,它部署在 weblogic 服务器上,可以使用

http://hostname:port/myApp

但是,由于某种原因,我们想更改此应用程序的 context-root,以便它必须可以使用

访问
http://hostname:port/newApp

因此,为了实现这一点,我们尝试更改 application.xml

<?xml version = '1.0' encoding = 'utf-8'?>
<application xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/application_1_4.xsd" version="1.4">
   <display-name>myApp</display-name>
   <module>
         <web>
            <web-uri>myApp.war</web-uri>
            <context-root>newApp</context-root>  // changed from myApp to newApp
         </web>
   </module>
</application>

但是,在 weblogic 服务器上部署此应用程序时,我们收到以下错误。

weblogic.management.DeploymentException: The application myApp contains a SubDeploymentMBean with a name myApp however there is no module in the application with that URI or context-root.

另一方面,如果我们同时保留context-root 如下所示的application.xml 文件,那么它会成功部署并且还能够使用上下文根访问应用程序。

<?xml version = '1.0' encoding = 'utf-8'?>
<application xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/application_1_4.xsd" version="1.4">
   <display-name>myApp</display-name>
   <module>
         <web>
            <web-uri>myApp.war</web-uri>
            <context-root>newApp</context-root>  // changed from myApp to newApp
         </web>
   </module>
   <module>
         <web>
            <web-uri>myApp.war</web-uri>
            <context-root>myApp</context-root>
         </web>
   </module>
</application>

谁能帮我解决这个问题?如果需要其他信息,请告诉我。

==已编辑==

我已经添加了weblogic.xml 文件,但不确定我想在此文件中更改什么,正如@Hououin Kyouma 在他/她的回答中所指出的那样。

<?xml version = '1.0' encoding = 'US-ASCII'?>
<weblogic-web-app xmlns="http://xmlns.oracle.com/weblogic/weblogic-web-app">
   <session-descriptor> 
      <cookie-path>/myApp</cookie-path> 
   </session-descriptor>
   <container-descriptor>
       <prefer-web-inf-classes>true</prefer-web-inf-classes>
   </container-descriptor>
</weblogic-web-app>

【问题讨论】:

    标签: java weblogic ear weblogic-10.x application.xml


    【解决方案1】:

    您是否尝试在 weblogic.xml 中设置上下文根? https://docs.oracle.com/cd/E13222_01/wls/docs90/webapp/weblogic_xml.html#1073750

    编辑 尝试像this中提到的那样添加它 https://community.oracle.com/thread/747158

    <?xml version = '1.0' encoding = 'US-ASCII'?>
    <weblogic-web-app xmlns="http://xmlns.oracle.com/weblogic/weblogic-web-app">
     <context-root>/newApp</context-root>
    <session-descriptor> 
      <cookie-path>/newApp</cookie-path> 
    </session-descriptor>
    <container-descriptor>
       <prefer-web-inf-classes>true</prefer-web-inf-classes>
    </container-descriptor>
    

    【讨论】:

    • 我们如何更改 weblogic.xml 中的上下文根值?我已经在我的帖子中更新了我的 weblogic.xml 文件。
    • 我尝试了你的建议,但我仍然遇到同样的错误(在我的帖子中提到)
    • 您在部署应用程序时是否收到错误消息?
    【解决方案2】:

    您不能在 application.xml 中使用不同名称的 war 文件定义上下文根

    <module>
        <web>
            <web-uri>myApp.war</web-uri>
            <context-root>newApp</context-root>  // changed from myApp to newApp
        </web>
    </module>
    

    您必须将以上更改为

    <module>
        <web>
            <web-uri>newApp.war</web-uri>    // changed from myApp to newApp
            <context-root>newApp</context-root>  
        </web>
    </module>
    

    您需要使用新名称创建战争。您仍然需要更改新war文件中的weblogic.xml,但只要这个问题出现,您需要做的就是上面的事情。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多