我正在致力于使我们公司的 ADF 应用程序使用 Maven,并且已经解决了除一个问题之外的所有问题。我无法让 JDeveloper 部署它以使用正确的上下文根而不是 ViewController。我已阅读此站点链接,其中引用了在 maven-ear-plugin 中使用 Maven,但这不起作用,因为 JDeveloper 使用自己的插件。与版本 12.1.3 不同,JDeveloper 12.2.1 现在已锁定,并将忽略 JaveEE 项目属性 (Jave EE Web Context Root:),这曾经是这样做的。我还添加了 weblogic.xml 以及显示在服务器上的上下文,但对 JDevelper 正确运行应用程序没有影响。
有没有人知道如何在这种情况下使用 Maven 覆盖 ViewController 的默认设置?如果是的话,该怎么做?
服务器日志显示正在使用的默认值: [04:00:10 PM] 定义了以下 URL 上下文根,可以将其用作测试应用程序的起点: [04:00:10 PM] http://999.999.999.999:7101/ViewController [04:00:10 PM] http://999.999.999.999:7101/Model
最简单的解决方法是在应用程序中重命名 ViewController 项目。
覆盖 Web 模块的上下文根的直接方法是在 EAR 文件中创建一个 JEE 应用程序描述符,如
/META-INF/application.xml
。看起来像这样:
<?xml version="1.0" encoding="UTF-8" ?>
<application xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/application_5.xsd"
xmlns="http://java.sun.com/xml/ns/javaee" version="5">
<module>
<web>
<web-uri>ViewController.war</web-uri>
<context-root>context-root-you-want</context-root>
</web>
</module>
</application>
它应该适用于每个 J2EE 服务器和任何打包工具。