将JavaEEWAR部署到ColdFusion服务器(用于混合java-ColdFusion应用程序) 背景

将JavaEEWAR部署到ColdFusion服务器(用于混合java-ColdFusion应用程序) 背景,java,coldfusion,coldfusion-10,Java,Coldfusion,Coldfusion 10,我们有一个现有的ColdFusion应用程序,我们正在考虑向它添加额外的Java内容 虽然我知道可以编译一个jar并将其用作一个库,但我正在寻找一种更接近纯JavaEE的体验,即在java文件上点击save,IDE将重新部署到服务器,并且在点击save后的几毫秒内,应用程序就可用了 我知道ColdFusion服务器实际上是一个Tomcat服务器,并且使用JavaEE“在引擎盖下”,所以我希望能够有一个JavaEE项目,其中碰巧也有一些.cfm和.cfc文件。不过,我无法让NetBeans将Col

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

虽然我知道可以编译一个jar并将其用作一个库,但我正在寻找一种更接近纯JavaEE的体验,即在java文件上点击save,IDE将重新部署到服务器,并且在点击save后的几毫秒内,应用程序就可用了

我知道ColdFusion服务器实际上是一个Tomcat服务器,并且使用JavaEE“在引擎盖下”,所以我希望能够有一个JavaEE项目,其中碰巧也有一些.cfm和.cfc文件。不过,我无法让NetBeans将ColdFusion服务器识别为Tomcat服务器

或者,我尝试将一个warformcoldfusion服务器部署到一个glassfish服务器上,然后将我的项目部署到该服务器上。当然,将javaeewar部署到glassfish服务器很容易,但当然它部署在ColdFusion应用程序旁边,而不是在它内部,我无法找到一种方法来纠正这一点

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

Summary 我能找到的唯一解决方案是将整个关系转变为一个整体,并将ColdFusion作为一个战争重叠(类似于但不同于将其作为一个库)。然后可以将整个东西部署到符合JavaEE的服务器(例如GlassFish)。War覆盖是使用Maven创建的

一步一步地 下载ColdFusion,像往常一样开始安装。然后选择“JavaEE配置”>“WAR文件”作为安装选项。这将把整个ColdFusion服务器作为一个.war文件提供给您(通常的用法是,您可以在任何JavaEE服务器上安装ColdFusion,我们将使用与此稍有不同的方法)

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

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

在Netbeans中创建一个新的Maven Java ee项目。然后(在生成的项目中)打开项目文件>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>

com.adobe.coldfusion


  • 您是否查看了此链接,有一篇博文介绍了如何将ColdFusion安装到Tomcat,以及如何将war或ear部署到ColdFusion@erhun,这与我在GlassFish上的安装类似,在GlassFish上部署的Java ee项目最终位于“旁边”,而不是ColdFusion内。然而;我发现了一个有点奇怪的解决方案,即使用ColdFusion WAR作为WAR覆盖(作为Maven构建的一部分),因此我将整个ColdFusion以及所有源文件作为单个WAR部署到Glashfish服务器。这似乎给了我想要的结果(ish),但我仍然在寻找一个清洁剂solution@RichardIt在这个问题下发布你的解决方案会很好,除非任何人都能用更好的解决方案来回答。虽然这回答了我最初的问题,但我们最终实际做的是让正在运行的coldfusion应用程序编译java文件(使用eclipse批处理编译器),然后使用将它们加载到java应用程序中。看起来现代版本的java加载程序也可以进行编译,但我当时没有尝试过
    cd C:\Program Files\NetBeans 8.0.1\java\maven\bin
    
    <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>