【问题标题】:Deploying a java-ee WAR to a ColdFusion server (for a hybrid Java - ColdFusion application)将 java-ee WAR 部署到 ColdFusion 服务器(用于混合 Java - ColdFusion 应用程序)
【发布时间】:2015-02-08 19:36:39
【问题描述】:

背景

我们有一个现有的 ColdFusion 应用程序,我们正在考虑向它添加额外的 Java 内容。

虽然我知道可以编译 jar 并将其用作库,但我正在寻找更接近纯 java-ee 体验的东西,您可以在 java 文件上点击保存,IDE 会重新部署到服务器和您的应用程序在您点击保存后的几毫秒内可用。

我知道 ColdFusion 服务器实际上是一个 Tomcat 服务器,并且“在后台”使用 java-ee,所以我希望能够拥有一个恰好也有几个 .cfm 和 .cfm 文件的 java-ee 项目。 cfc 文件在里面。我无法让 NetBeans 将 ColdFusion 服务器识别为 Tomcat 服务器。

或者,我尝试将 WAR 形式的 ColdFusion 服务器部署到 Glass Fish 服务器,然后将我的项目部署到该服务器。当然,将 java-ee WAR 部署到 glass fish 服务器很容易,但它当然是部署在 ColdFusion 应用程序而不是 应用程序中,我无法做到想办法解决这个问题。

问题

如何将 java-ee WAR 部署到 ColdFusion 服务器(其中可能有也可能没有 ColdFusion .cfm 和 .cfcs)? (或者如何在使用 ColdFusion 的同时获得 Java-ee 即时部署体验)

【问题讨论】:

  • 你检查这个链接了吗,有一篇关于如何将ColdFusion安装到Tomcat以及如何部署一个war或ear来coldfusion的博文adobe.com/support/coldfusion/j2ee/cfmx7j2ee_tomcat_deploy.html
  • @erhun 这类似于我在 GlassFish 上的安装,其中部署的 Java-ee 项目最终“靠近”而不是在 ColdFusion 中。然而;我发现了一个稍微奇怪的解决方案,即使用 ColdFusion WAR 作为 WAR 覆盖(作为 Maven 构建的一部分),因此我将整个 ColdFusion 以及我的所有源文件作为单个 WAR 部署到 Glashfish 服务器。这似乎给了我想要的结果(ish),但我仍在寻找更清洁的解决方案
  • @RichardIt 在这个问题下发布你的解决方案会很棒,除非有人用更好的解决方案来回答它。

标签: java coldfusion coldfusion-10


【解决方案1】:

总结

我能找到的唯一解决方案是将整个关系从头开始,并将 ColdFusion 作为 War Overlap 包含(类似于但不同于将其包含为库)。然后可以将整个事情部署到符合 Java-EE 的服务器(例如 GlassFish)。战争覆盖是使用 Maven 创建的

一步一步

下载 ColdFusion,照常开始安装。然后选择“Java-ee 配置”>“WAR 文件”作为安装选项。这会将整个 ColdFusion 服务器以 .war 文件的形式提供给您(常规用途是您可以将 ColdFusion 安装在任何 Java-EE 服务器上,我们将使用它稍有不同)。

我们将使用 maven 生成战争覆盖,因此我们需要 maven 才能访问您刚刚生成的 ColdFusion 战争。您可以使用以下命令将 WAR 添加到本地存储库(编辑您的 ColdFusion 版本和保存 WAR 的位置)

mvn install:install-file -DgroupId=com.adobe.coldfusion -DartifactId=coldfusion -Dpackaging=war -Dversion=10 -Dfile=c:/coldfusion/cfusion.war -DgeneratePom=true 

如果 maven 的 bin 不在您的 Path 环境变量中,您可能需要将目录更改为它。这将取决于您的系统,但假设您使用的是用于 maven 的 netbeans 插件(默认情况下),您将类似于以下内容(编辑您的 Netbeans 安装位置)

cd C:\Program Files\NetBeans 8.0.1\java\maven\bin

在 Netbeans 中创建一个新的 Maven Java-ee 项目。然后(在生成的项目中)打开你的 Project Files>pom.xml 文件并添加 War 覆盖依赖

<dependencies>
    <!-- other dependancies -->
    <!-- This is the war overlay -->
    <dependency>
        <groupId>com.adobe.coldfusion</groupId>
        <artifactId>coldfusion</artifactId>
        <version>10</version>
        <type>war</type>
        <scope>runtime</scope>
        <optional>false</optional>
    </dependency> 
</dependencies>

现在应该可以将 ColdFudion 文件(在网页目录中)与普通 Java-EE 应用程序一起包含进来

参考资料:

【讨论】:

  • 虽然这回答了我最初的问题,但我们实际上最终做的是让正在运行的coldfusion应用程序编译java文件(使用eclipse批处理编译器),然后使用javaloader将它们加载到java应用程序中.看起来现代版本的 java loader 也可以编译,但我当时没有尝试
猜你喜欢
  • 2013-11-04
  • 1970-01-01
  • 1970-01-01
  • 2017-03-14
  • 2016-02-16
  • 1970-01-01
  • 2014-05-23
  • 2012-03-26
  • 2012-07-10
相关资源
最近更新 更多