![](/img/trans.png)
[英]How to create war file for web service using maven to deploy to JBOSS?
[英]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應用程序非常簡單。 讓我們執行一些簡單的步驟。
請登錄到您的儀表板,然后單擊“新環境”。
在環境的設置窗口中,請選擇Java和Tomcat 7 Server,輸入環境的唯一名稱,例如-“ maventest”,並指定cloudlets(可用資源)的數量。 然后按“創建”。
您的環境將在幾分鍾內創建。
請在您的計算機上打開開發環境IntelliJ IDEA(必須安裝該應用程序),然后通過菜單“ File- > New ”創建一個新項目。 請在出現的窗口中,選擇Project的SDK類型(例如:v1.8),選中“ 從原型創建 ”框,然后在下面的列表中選擇“ maven-archetype-webapp:Release ”。
然后按“下一步”按鈕。
用文本(例如“ demo-jelastic”)填充“ GroupID ”和“ ArtifactID ”字段。
接下來,請指定Maven主目錄文件夾( 建議使用捆綁(Maven 3) ),並選中復選框,如下面的屏幕截圖所示。
請將路徑保存到文件settings.xml 。 稍后將派上用場。
現在輸入您的項目名稱,指定項目的文件夾,然后按“完成”。
現在,您需要等待,直到將創建項目結構。 通常大約需要五分鍾。 您可以在IDE內的終端窗口中遵循該過程。 完成后,項目結構將如下所示:
請在您的項目中打開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 ”。 下面的例子:
請打開操作系統的終端,然后轉到文件夾“ / 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 ”內為您的儀表板指定登錄名和密碼,不要忘記保存更改。
請返回項目的結構,然后選擇文件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)。
保存更改( 文件 -> 全部保存 )。
在“ Maven項目”面板上,在生命周期列表中選擇配置文件“ Jelastic ”和“ Install ”。
按下“運行Maven Build”按鈕,並在IDE的終端中觀察過程。 因此,我們在Jelastic Cloud中運行的簡單Web應用程序。
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.