Eclipseで作ったtomcat(webアプリケーション)プロジェクトをJBossにそのままデプロイする方法


スポンサーリンク

前回の記事ではEclipseからJBossを起動させるところまでやりました。
次は、Eclipse上でWebアプリケーションを作って、それをJBossにデプロイしてみます。


パッケージ・エクスプローラで右クリック > 新規 > その他
で、

Java > Tomcatプロジェクト

を選択します。

f:id:sho322:20141005134553j:plain

プロジェクト名は適当に「helloweb」とします。

完了を押すと、プロジェクトができます。

プロジェクトを展開して、WEB-INFの直下に「web.xml」というファイルを作ります。

<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
   http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
  version="2.4">

	<servlet>
	    <servlet-name>HelloServlet</servlet-name>
	    <servlet-class>example.HelloServlet</servlet-class>
	</servlet>
	<servlet-mapping>
	    <servlet-name>HelloServlet</servlet-name>
	    <url-pattern>/sayHello</url-pattern>
	</servlet-mapping>

</web-app>

次に、Javaのクラスで、

パッケージ:example
名前:HelloServlet

を作成します。

f:id:sho322:20141005134630j:plain

package example;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class HelloServlet extends HttpServlet {

	public void service(HttpServletRequest req,
						HttpServletResponse res)
			throws ServletException, IOException {
		PrintWriter out = res.getWriter();
		out.println("<html><body>Hello JBoss Web World!</body></html>");
		out.close();
	}
}

ここまでやったら、プロジェクトを右クリックしましょう。

プロパティ > Tomcat > WARエクスポート設定

で、

エクスポートするWARファイルのところに、

「C:\JBosses\jboss-5.1.0.GA\server\mine\deploy\hello.war」

のように、JBossのdeploy以下のディレクトリのパス + warファイルの名前

を指定します。

f:id:sho322:20141005134650j:plain

で、プロジェクトを右クリックして、Tomcatプロジェクト > プロジェクト設定に従いWARファイルを作成

をクリックします。


前回の記事からの続きだと、コンソールに以下のように、ホットデプロイに成功したようなメッセージが表示されるはずです。

12:49:21,310 INFO  [ServerImpl] JBoss (Microcontainer) [5.1.0.GA (build: SVNTag=JBoss_5_1_0_GA date=200905221634)] Started in 31s:469ms
13:35:28,598 WARN  [JAXWSDeployerHookPreJSE] Cannot load servlet class: example.helloServilet
13:35:28,629 INFO  [TomcatDeployment] deploy, ctxPath=/hello

全体のフォルダ構成はこんな感じです。

f:id:sho322:20141005134722j:plain

実際にブラウザから見てみましょう。

f:id:sho322:20141005134521j:plain

http://localhost:8080/[warの名前]/[url-pattern]

にリクエストを投げることで、Webアプリケーションを稼働させることができました。

基礎からのサーブレット/JSP 第3版 (基礎からのシリーズ)

基礎からのサーブレット/JSP 第3版 (基礎からのシリーズ)

そもそもweb.xmlとかWEB-INFとかよくわからん!という人は、基礎からの~シリーズで一回勉強してからだと、勉強がスムーズになると思います。
独学に非常に便利です。