簡體   English   中英

如何在雲上部署Maven Web服務?

[英]How to deploy maven web service on cloud?

我有一個Maven Web服務,我想像亞馬遜或任何托管站點一樣部署在雲上。 我的項目需要對這項工作進行哪些更改?

我只是嘗試通過將項目文件夾==>復制並壓縮為zip ==>在jelastic上上傳,然后在jelastic上部署我的項目,然后進行部署,但是它給了我404錯誤。

但是,當我測試在eclipse tomcat中部署相同的項目時,它可以正常工作。 但是如何在雲上做呢?

這是我簡單的Maven Web服務:

@Path("myresource")

    public class MyResource {


        @GET
        @Produces(MediaType.TEXT_PLAIN)
        public String getIt() {
            return "hellow world!";
        }
    }

pom.xml文件:

<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/maven-v4_0_0.xsd">

    <modelVersion>4.0.0</modelVersion>

    <groupId>org.start.project</groupId>
    <artifactId>smsdetails</artifactId>
    <packaging>war</packaging>
    <version>0.0.1-SNAPSHOT</version>
    <name>smsdetails</name>

    <build>
        <finalName>smsdetails</finalName>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>2.5.1</version>
                <inherited>true</inherited>
                <configuration>
                    <source>1.7</source>
                    <target>1.7</target>
                </configuration>
            </plugin>
        </plugins>
    </build>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.glassfish.jersey</groupId>
                <artifactId>jersey-bom</artifactId>
                <version>${jersey.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <dependencies>
        <dependency>
            <groupId>org.glassfish.jersey.containers</groupId>
            <artifactId>jersey-container-servlet-core</artifactId>
            <!-- use the following artifactId if you don't need servlet 2.x compatibility -->
            <!-- artifactId>jersey-container-servlet</artifactId -->
        </dependency>
        <dependency>
            <groupId>org.glassfish.jersey.media</groupId>
            <artifactId>jersey-media-moxy</artifactId>
        </dependency>
    </dependencies>
    <properties>
        <jersey.version>2.23.1</jersey.version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>
</project>

index.jsp文件:

<html>
<body>
    <h2>Jersey RESTful Web Application!</h2>
    <p><a href="webapi/myresource">Jersey resource</a>
    <p>Visit <a href="http://jersey.java.net">Project Jersey website</a>
    for more information on Jersey!
</body>
</html>

web.xml文件:

<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" 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/web-app_2_5.xsd">
    <servlet>
        <servlet-name>Jersey Web Application</servlet-name>
        <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
        <init-param>
            <param-name>jersey.config.server.provider.packages</param-name>
            <param-value>org.start.project.smsdetails</param-value>

        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>Jersey Web Application</servlet-name>
        <url-pattern>/webapi/*</url-pattern>
    </servlet-mapping>
</web-app>

這段代碼在Eclipse中運行良好。

Jelastic Cloud中通過Maven插件創建和部署Java Web應用程序非常簡單。 讓我們執行一些簡單的步驟。

第1步-創建環境

請登錄到您的儀表板,然后單擊“新環境”。

在環境的設置窗口中,請選擇Java和Tomcat 7 Server,輸入環境的唯一名稱,例如-“ maventest”,並指定cloudlets(可用資源)的數量。 然后按“創建”。

您的環境將在幾分鍾內創建。

第2步-通過IntelliJ IDEA創建Web應用程序的項目。

請在您的計算機上打開開發環境IntelliJ IDEA(必須安裝該應用程序),然后通過菜單“ File- > New ”創建一個新項目。 請在出現的窗口中,選擇Project的SDK類型(例如:v1.8),選中“ 從原型創建 ”框,然后在下面的列表中選擇“ maven-archetype-webapp:Release ”。

然后按“下一步”按鈕。

用文本(例如“ demo-jelastic”)填充“ GroupID ”和“ ArtifactID ”字段。

接下來,請指定Maven主目錄文件夾( 建議使用捆綁(Maven 3) ),並選中復選框,如下面的屏幕截圖所示。

請將路徑保存到文件settings.xml 稍后將派上用場。

現在輸入您的項目名稱,指定項目的文件夾,然后按“完成”。

現在,您需要等待,直到將創建項目結構。 通常大約需要五分鍾。 您可以在IDE內的終端窗口中遵循該過程。 完成后,項目結構將如下所示:

第3步-編輯文件web.xml

請在您的項目中打開web.xml文件,並將其內容替換為以下文本:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://www.oracle.com/webfolder/technetwork/jsc/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://www.oracle.com/webfolder/technetwork/jsc/xml/ns/javaee
         http://www.oracle.com/webfolder/technetwork/jsc/xml/ns/javaee/web-app_3_1.xsd"
         version="3.1">
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
</web-app>

請注意,鏈接可能會以紅色突出顯示。 在這種情況下,請轉到“ 文件 -> 設置 -> 語言和框架 -> 架構和DTD ”,然后將必要的鏈接添加到“ 忽略的架構和DTD ”。 下面的例子:

第4步-編輯文件settings.xml

請打開操作系統的終端,然后轉到文件夾“ / home/$username$/.m2 ”(我們之前保存的文件夾的正確路徑)。 打開文件settings.xml (如果文件不存在,則創建一個)。 將其內容替換為以下內容:

<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
  <profiles>
    <profile>
      <id>jelastic</id>
      <properties>
        <jelastic.username>[insert your Jelastic user name]</jelastic.username>
        <jelastic.password>[insert your Jelastic password]</jelastic.password>
      </properties>
    </profile>
  </profiles>
</settings>

請在指令“ jelastic.username ”和“ jelastic.password ”內為您的儀表板指定登錄名和密碼,不要忘記保存更改。

第5步-編輯文件pom.xml

請返回項目的結構,然后選擇文件pom.xml。 將其內容替換為以下內容:

<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/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>demo-jelastic</groupId>
    <artifactId>demo-jelastic</artifactId>
    <packaging>war</packaging>
    <version>1.0-SNAPSHOT</version>
    <name>demo-jelastic Maven Webapp</name>
    <url>http://maven.apache.org</url>
    <dependencies>
      <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>3.8.1</version>
        <scope>test</scope>
      </dependency>
    </dependencies>
    <build>
      <finalName>demo-jelastic</finalName>
    </build>
    <pluginRepositories>
      <pluginRepository>
        <id>sonatype-oss-public</id>
        <url>https://oss.sonatype.org/content/groups/public</url>
        <releases>
          <enabled>true</enabled>
        </releases>
        <snapshots>
          <enabled>true</enabled>
        </snapshots>
      </pluginRepository>
    </pluginRepositories>
    <profiles>
      <profile>
        <id>jelastic</id>
        <build>
          <plugins>
            <plugin>
              <groupId>com.jelastic</groupId>
              <artifactId>jelastic-maven-plugin</artifactId>
              <version>1.7</version>
              <configuration>
                <api_hoster>[INSERT YOUR HOSTER'S API ADRESS]</api_hoster>
                <context>ROOT</context>
                <email>[YOUR EMAIL]</email>
                <environment>[ENVIRONMENT NAME]</environment>
                <password>[PASSWORD]</password>
              </configuration>
              <executions>
                <execution>
                  <phase>install</phase>
                  <goals>
                    <goal>deploy</goal>
                  </goals>
                </execution>
              </executions>
            </plugin>
            <plugin>
              <groupId>org.apache.maven.plugins</groupId>
              <artifactId>maven-install-plugin</artifactId>
              <version>2.4</version>
              <executions>
                <execution>
                  <phase>none</phase>
                </execution>
              </executions>
            </plugin>
          </plugins>
        </build>
      </profile>
    </profiles>
  </project>

在“ configuration ”指令中,請指定以下指令:

api_hoster ”- 托管人的儀表板的 URL。

電子郵件 ”和“ 密碼 ”-憑據,用於登錄儀表板。

環境 ”-先前創建的環境的名稱(步驟1)。

保存更改( 文件 -> 全部保存 )。

步驟6-在Jelastic Cloud中部署您的Web應用程序。

在“ Maven項目”面板上,在生命周期列表中選擇配置文件“ Jelastic ”和“ Install ”。

按下“運行Maven Build”按鈕,並在IDE的終端中觀察過程。 因此,我們在Jelastic Cloud中運行的簡單Web應用程序。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM