繁体   English   中英

部署简单的Java Spark Web应用

[英]Deploying a simple Java Spark web app

我已经在Windows平台上使用Eclipse 使用Maven设置Spark中尝试了这个简单的“ Hello World” Web应用程序(使用maven 设置 )。 如果它是从Eclipse运行的,那么它可以完美地工作。

但是我要实现的是使其在云中使用的CentOS 6.x中运行,我可以使用腻子通过ssh访问它。 我已经在CentOS中安装了JDK 8和maven。 我没有安装任何应用程序服务器(没有Tomcat等),因为我希望Spark应用程序以其嵌入式AS(即Jetty)运行。

我还没有找到如何将这种Spark应用程序从Eclipse / Maven / Windows部署到云中的CentOS服务器的方法。 我找到了一些教程,这些教程解释了如何在heraku上进行部署,甚至如何在其他AS中进行部署(不使用嵌入式AS),但没有什么比我想要实现的要简单。

在Eclipse中,如果我将项目导出为jar,然后将jar上传到CentOS服务器,则无法使用“ java -jar appname.jar”运行它,似乎它没有Spark库,也没有嵌入式Jetty。

有什么帮助吗? 谢谢。

看完有关Maven的视频教程后,我找到了解决方案。 首先,您需要将以下内容添加到Eclipse中的maven项目中的xml.pom文件中:

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>2.3.2</version>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
            </configuration>
        </plugin>
        <plugin>
            <artifactId>maven-assembly-plugin</artifactId>
            <executions>
                <execution>
                    <phase>package</phase>
                    <goals>
                        <goal>single</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <descriptorRefs>
                    <!-- This tells Maven to include all dependencies -->
                    <descriptorRef>jar-with-dependencies</descriptorRef>
                </descriptorRefs>
                <archive>
                    <manifest>
                        <mainClass>chatapp.Main</mainClass>
                    </manifest>
                </archive>
            </configuration>
        </plugin>
    </plugins>
</build>

告诉Maven在哪里可以找到主类很重要。 就我而言,我将我的应用程序命名为chatapp(因为我打算将这个简单的“ Hello World”应用程序发展为聊天应用程序),并且包含main方法的Main类也命名为Main,它位于chatapp包下,因此它是chatapp.Main。 您可以在<dependencies>节点之后添加这些行。 因此,pom文件应如下所示:

 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.orboan</groupId>
<artifactId>chatapp</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>new-spark-project</name>
<dependencies>
    <dependency>
        <groupId>com.sparkjava</groupId>
        <artifactId>spark-core</artifactId>
        <version>2.3</version>
    </dependency>
</dependencies>
<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>2.3.2</version>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
            </configuration>
        </plugin>
        <plugin>
            <artifactId>maven-assembly-plugin</artifactId>
            <executions>
                <execution>
                    <phase>package</phase>
                    <goals>
                        <goal>single</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <descriptorRefs>
                    <!-- This tells Maven to include all dependencies -->
                    <descriptorRef>jar-with-dependencies</descriptorRef>
                </descriptorRefs>
                <archive>
                    <manifest>
                        <mainClass>chatapp.Main</mainClass>
                    </manifest>
                </archive>
            </configuration>
        </plugin>
    </plugins>
</build>

现在,重要的是不要像通常要将Java项目导出到jar文件中那样使用Eclipse中的export实用程序(右键单击包资源管理器中的项目,并且从上下文菜单中不要选择Export)。部署。 这将生成一个jar文件,但不需要所有依赖项。

而是必须从上下文菜单中选择“运行方式”>“ Maven安装”。 这将(从pom.xml生成)包含所有所需依赖项的相应jar文件,在我的示例中为chatapp-0.0.1-SNAPSHOT-jar-with-dependencies.jar

然后,将该jar文件上传到CentOS服务器,并使用java -jar
chatapp-0.0.1-SNAPSHOT-jar-with-dependencies.jar
运行它
java -jar
chatapp-0.0.1-SNAPSHOT-jar-with-dependencies.jar
java -jar
chatapp-0.0.1-SNAPSHOT-jar-with-dependencies.jar
现在应该可以了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM