내용 목차
본 장에서는 Ant Task에 대해서 설명한다.
JEUS에서는 애플리케이션을 개발하면서 특정 작업을 자동화하기 위해 다음과 같은 Ant Task를 제공한다. 사용자는 Ant를 통해 실행해야 할 Task를 기술한 Build 파일을 작성해야 한다.
본 절에서는 각 기능들의 Build 파일에 기술되어야 할 내용들에 대해서 설명하고, 이를 통해 각 Ant Task를 실행하는 과정을 설명한다. Ant에 대한 설정법과 사용법은 http://ant.apache.org를 참조한다.
build.xml은 Ant Task를 기술한 XML 형식의 Ant Build 파일이다. Build 파일의 중요한 부분은 <project>에 포함되어 있으며, 일반적으로 1개의 프로젝트에 여러 개의 <target>이 존재한다. <target>은 실제 실행해야 하는 Ant Task 작업을 정의한다.
JEUS에서 제공하는 Ant Task를 사용하기 위해서는 다음과 같이 Task definition을 build.xml에 추가해야 한다. 프로젝트의 속성들은 <project>의 하위에 정의하며, "${property-name}"의 표현식을 통해 프로젝트 내에서 속성 값들을 사용할 수 있다.
<taskdef resource="jeus/util/ant/jeusant.properties"> <classpath> <path refid="jeus.libraries"/> </classpath> </taskdef>
JEUS에서 제공하는 Ant Task를 이용할 때는 가급적 Build 파일의 project에 "jeus.home"을 설정해주는 것이 안전하다. 이는 하나의 project에서 다수의 서로 다른 target을 수행할 때 특정 Target은 JEUS_HOME 정보를 필요로 하는 것이 존재할 수 있기 때문이다.
JEUS_HOME은 static final 변수여서 하나의 JVM에서 처음 설정되는 값으로 고정되는 특징이 있다. 만약 JEUS_HOME 정보가 필요없는 Target이 먼저 수행되면, JEUS_HOME에 null 값이 설정된다. 다음 순서로 JEUS_HOME이 필요한 Target이 수행될 때 앞의 Target이 설정한 JEUS_HOME의 값을 이용하게 되므로 원하는 동작과 다르게 동작할 수 있다.
또한 JEUS에서는 jant 스크립트를 제공하며, ant를 사용하기 위한 설정값들이 같이 포함되어 제공된다. ant의 설정이 제대로 되지 않은 경우 정상적으로 동작하지 않는 상황이 있을수 있으니, jant를 사용하기를 권장한다.
본 절에서는 JEUS 환경을 구성하는 Ant Task를 설명한다.
create-domain Ant Task를 통해 새로운 도메인 환경을 구성할 수 있다.
JEUS_HOME/setup 하위에 제공되는 build.xml에 존재하는 Task로써 다음 파일에서기본 설정 값을 확인할 수 있다.
JEUS_HOME/setup/domain-config-template.properties
다음은 create-domain Task의 속성에 대한 설명이다.
다음은 Ant Task를 통한 도메인 생성 예제이다.
도메인의 이름은 'domain1', DAS의 이름은 'adminServer', DAS의 jvm 설정은 '-Xmx512m -XX:MaxPermSize=256m'로 설정한 예제이다. 모두 기본값이 존재하므로 굳이 옵션을 모두 줄 필요는 없으나 아래의 예제에는 방법을 설명하기 위해 옵션을 설정하였다.
JEUS_HOME/setup$ ant create-domain -Ddomain=domain1 -Dservername=adminServer
-Djvm.config="-Xmx512m -XX:MaxPermSize=256m" -Dheartbeataddress=230.30.1.1
-Dheartbeatport=3030
Buildfile: JEUS_HOME/setup/build.xml
create-domain:
[echo] Creating a domain configuration: domaindir="JEUS_HOME/domains/domain1
domain = domain1, server-name = adminServer, admin password={base64}amV1cw==,
server base port=9736, server base listen address=${jeus.address}
[mkdir] Created dir: JEUS_HOME/domains/domain1
[mkdir] Created dir: JEUS_HOME/domains/domain1/.applications
[mkdir] Created dir: JEUS_HOME/domains/domain1/bin
[mkdir] Created dir: JEUS_HOME/domains/domain1/config
[mkdir] Created dir: JEUS_HOME/domains/domain1/data
[mkdir] Created dir: JEUS_HOME/domains/domain1/lib
[mkdir] Created dir: JEUS_HOME/domains/domain1/lib/application
[mkdir] Created dir: JEUS_HOME/domains/domain1/servers
[mkdir] Created dir: JEUS_HOME/domains/domain1/config/servlet
[mkdir] Created dir: JEUS_HOME/domains/domain1/config/security
[copy] Copying 1 file to JEUS_HOME/domains/domain1/config
[copy] Copying 2 files to JEUS_HOME/domains/domain1/config/servlet
[copy] Copying 1 file to JEUS_HOME/domains/domain1/config/security
[copy] Copied 1 empty directory to 1 empty directory under JEUS_HOME/domains/domain1/config/security
[copy] Copying 3 files to JEUS_HOME/domains/domain1/config/security
[java] heart beat address has been set : 230.30.1.1
[java] heart beat port has been set : 3030
[copy] Copying 3 files to JEUS_HOME/domains/domain1/bin
[mkdir] Created dir: JEUS_HOME/domains/domain1/servers/adminServer
[mkdir] Created dir: JEUS_HOME/domains/domain1/servers/adminServer/bin
[mkdir] Created dir: JEUS_HOME/domains/domain1/servers/adminServer/.workspace
[mkdir] Created dir: JEUS_HOME/domains/domain1/servers/adminServer/.workspace/deployed
[mkdir] Created dir: JEUS_HOME/domains/domain1/servers/adminServer/logs
[mkdir] Created dir: JEUS_HOME/domains/domain1/servers/adminServer/lib
[mkdir] Created dir: JEUS_HOME/domains/domain1/servers/adminServer/lib/application
BUILD SUCCESSFUL
Total time: 6 seconds
JEUS_HOME/setup$
본 절에서는 서버를 제어하는 Ant Task를 설명한다.
boot Task는 서버를 기동한다. boot Task를 통해 서버를 기동할 때에는 노드 매니저로 명령을 보내 노드 매니저에서 해당 서버를 기동한다. 따라서 반드시 노드 매니저가 기동된 상태여야 한다.
다음은 boot Task의 속성에 대한 설명이다.
down Task는 JEUS를 종료한다.
다음은 down Task 속성에 대한 설명이다.
build.xml을 작성한 예제와 해당 파일을 통해 서버의 boot, down을 실행하는 예제에 대해 설명한다.
다음은 domain1에 'adminServer'라는 이름을을 가진 DAS를 boot, down하는 build.xml 예제이다.
[예 5.1] boot & down Ant Task build 파일 예제 : <<build.xml>>
<?xml version="1.0"?> <project name="example" default="boot" basedir="."> <property environment="env"/> <!-- jeus.home project property is required when you run the various tasks in an ant jvm and one of the various tasks requirs JEUS_HOME information --> <property name="jeus.home" value="${env.JEUS_HOME}"/> <!-- set properties to be needed for boot & down task --> <property name="domain.name" value="domain1"/> <property name="server.name" value="adminServer"/> <property name="das.url" value=""/> <property name="force" value="false"/> <property name="standby" value="false"/> <property name="host" value="192.168.34.66"/> <property name="port" value="7736"/> <property name="connect.type" value="plain"/> <property name="truststore.path" value=""/> <property name="truststore.password" value=""/> <property name="username" value="administrator"/> <property name="password" value="jeusadmin"/> <property name="isAdminServer" value="false"/> <!-- set the library-classpath or to run the task class --> <path id="jeus.libraries"> <fileset dir="${jeus.home}/lib/system" includes="*.jar"/> </path> <!-- include the task definition resource file --> <taskdef resource="jeus/util/ant/jeusant.properties"> <classpath> <path refid="jeus.libraries"/> </classpath> </taskdef> <target name="init"> </target> <!-- boot task --> <target name="boot" depends="init"> <boot domainName="${domain.name}" serverName="${server.name}" host="${host}" port="${port}" connectionType="${connect.type}" truststorePath="${truststore.path}" truststorePassword="${truststore.password}" adminServer="${isAdminServer}" dasUrl="${das.url}" force="${force}" standby="${standby}" username="${username}" password="${password}"/> </target> <!-- down task --> <target name="down" depends="init"> <down domainName="${domain.name}" serverName="${server.name}" host="${host}" port="${port}" connectionType="${connect.type}" truststorePath="${truststore.path}" truststorePassword="${truststore.password}" username="${username}" password="${password}"/> </target> </project>
Ant를 통해 서버를 기동하기 위해서는 노드 매니저가 'startNodeManager' 스크립트를 통해 기동된 상태여야 한다. 이 상태에서 boot 명령을 실행하면 서버가 기동되고, 여기서 down 명령을 실행하면 다시 서버가 종료 된다.
boot
c:\jeus>ant boot Buildfile: build.xml init: boot: [boot] Succeed to start server [adminServer] BUILD SUCCESSFUL Total time: 11 seconds
down
c:\jeus>ant down Buildfile: build.xml init: down: [down] Succeed to stop server [adminServer] BUILD SUCCESSFUL Total time: 0 seconds
JEUS를 기반으로 EJB 컴포넌트를 개발할 때 작업을 편리하게 수행할 수 있도록 몇 가지의 Ant Task를 제공한다.
appcompiler Ant Task는 pre-deployment 작업 후 EJB 모듈 또는 개별적인 EJB Bean에 대해서 필요한 RMI Stub과 Skeleton 클래스를 임의로 생성하고 싶을 때 사용한다. 또한 이것은 클라이언트에서 원격지에 있는 디플로이된 Bean과 통신할 때 필요한 클래스 파일들 즉 EJB 클라이언트 JAR를 생성할 수 있다.
다음은 appcompiler Ant Task 속성에 대한 설명이다.
다음은 build.xml을 작성한 예제와 build.xml을 통해 appcompiler를 실행하는 예제이다.
build.xml 작성 예제
[예 5.2] appcompiler Ant Task build 파일 예제 : <<build.xml>>
<?xml version="1.0"?> <project name="example" default="appcompiler" basedir="."> <property environment="env"/> <!-- jeus.home project property is required when you run the various tasks in an ant jvm and one of the various tasks requirs JEUS_HOME information --> <property name="jeus.home" value="${env.JEUS_HOME}"/> <!-- set properties to be needed for appcompiler task --> <property name="client" value="client_view.jar"/> <property name="keep" value="false"/> <property name="jspmap" value="false"/> <property name="ejbjar" value="ejb-jar.xml"/> <property name="jeusejbdd" value="jeus-ejb-dd.xml"/> <property name="targetfile" value="ejb"/> <!-- set the library-classpath or to run the task class --> <path id="jeus.libraries"> <fileset dir="${jeus.home}/lib/system" includes="*.jar"/> </path> <!-- include the task definition resource file --> <taskdef resource="jeus/util/ant/jeusant.properties"> <classpath> <path refid="jeus.libraries"/> </classpath> </taskdef> <target name="init"> </target> <!-- appcompiler task --> <target name="appcompiler" depends="init"> <appcompiler jeusHome="${jeus.home}" client="${client}" keep="${keep}" jspmap="${jspmap}" ejbJar="${ejbjar}" jeusEjbDd="${jeusejbdd}" target="${targetfile}"/> </target> </project>
실행 예제
$ ant appcompiler
Buildfile: build.xml
init:
appcompiler:
BUILD SUCCESSFUL
Total time: 3 minutes 7 seconds
ejbddinit Ant Task는 JEUS EJB DD를 생성할 때 이용한다. ejbddinit에 대한 자세한 설명은 “4.4. ejbddinit”을 참고한다.
다음은 ejbddinit Ant Task의 속성에 대한 설명이다.
ejbddinit Ant Task 스크립트에 제한적으로 ejbddinit 프로퍼티를 설정할 수 있다.
ejbddinit 프로퍼티 파일의 프로퍼티는 ejbddinit Ant Task 스크립트에서 다음과 같은 규칙으로 설정되어야 한다. ejbddinit 프로퍼티에 대한 자세한 내용은 절 4.4. “프로퍼티 목록”을 참고한다.
ejbddinit 프로퍼티 파일 | ejbddinit Ant 스크립트 |
---|---|
export-name=%{ejb-class} | <property name="export-name" value="%{ejb-class}"/> |
thread-max=100 | <property name="thread-max" value="100"/> |
HelloBean.export-port=55555 | build.xml에서는 특정 EJB 컴포넌트(HelloBean)에 대한 ejbddinit 프로퍼티 설정이 불가능 |
ejbddinit 프로퍼티 파일과 같이 Ant 스크립트에서도 export-name 프로퍼티에 대하여 "%{ejb-class}"와 같은 패턴을 사용할 수 있다. export-name 과 관련된 패턴 사용에 관한 내용은 절 4.4. “export-name 프로퍼티에 대한 패턴 지원”을 참고한다.
Ant 스크립트에서는 특정 EJB 컴포넌트에 대한 ejbddinit 프로퍼티 설정은 지원하지 않으므로 특정 EJB 컴포넌트에 대한 ejbddinit 프로퍼티 설정이 필요한 경우에는 ejbddinit 프로퍼티 파일을 따로 작성해야 한다. 특정 EJB 컴포넌트에 대한 설정은 ejbddinit 프로퍼티 파일과 Ant 스크립트의 공통 설정보다 우선한다. ejbddinit 프로퍼티 파일과 ejbddinit Ant 스크립트에 동일한 설정이 존재할 경우에는 Ant 스크립트의 설정을 우선한다.
ejbddinit Ant 스크립트 작성 예와 ejbddinit Ant Task를 실행하는 예는 아래와 같다.
ejbddinit ant 스크립트 작성 예
[예 5.3] ejbddinit ant 스크립트 예제
<?xml version="1.0"?> <project name="example" default="ejbddinit" basedir="."> <property environment="env"/> <!-- jeus.home project property is required when you run the various tasks in an ant jvm and one of the various tasks requirs JEUS_HOME information --> <property name="jeus.home" value="${env.JEUS_HOME}"/> <!-- set properties to be needed for ejbddinit task --> <property name="targetfile" value="ejb.jar"/> <property name="logginglevel" value="FINE"/> <property name="propertyfile" value="ejbddinit.properties"/> <!-- set properties to be needed for ejbddinit properties --> <property name="export-name" value="%{ejb-class}"/> <property name="thread-max" value="100"/> <!-- set the library-classpath or to run the task class --> <path id="jeus.libraries"> <fileset dir="${jeus.home}/lib/system" includes="*.jar"/> </path> <!-- include the task definition resource file --> <taskdef resource="jeus/util/ant/jeusant.properties"> <classpath> <path refid="jeus.libraries"/> </classpath> </taskdef> <target name="init"> </target> <!-- ejbddinit task --> <target name="ejbddinit" depends="init"> <ejbddinit loggingLevel="${logginglevel}" property="${propertyfile}" target="${targetfile}" exportName="${export-name}" threadMax="${thread-max}"> </ejbddinit> </target> </project>
ejbddinit Ant Task 실행 예
$ ant ejbddinit
Buildfile: build.xml
init:
ejbddinit:
[ejbddinit] LoadFile: /jeus/sample/ejbddinit.properties
[ejbddinit] Source=/jeus/sample/ejbddinit/ejb.jar
[ejbddinit] Successfully configured the parameters.
[ejbddinit] Deployment descriptor initialization started.
[ejbddinit] Creating JEUS descriptors.
[ejbddinit] Deployment descriptor initialization finished.
BUILD SUCCESSFUL
Total time: 2 seconds
본 절에서는 JEUS에서 웹 서비스 생성과 웹 서비스 클라이언트를 위해 제공하는 Ant Task에 대해서 설명한다.
java2wsdl Task는 SET(Service Endpoint Interface) 클래스와 임의의 Java로 구현한 클래스로부터 다음의 파일을 생성한다.
웹 서비스의 WSDL파일
JAX-RPC 매핑 파일
java2wsdl Ant Task를 정의하는 클래스는 'jeus.util.ant.webservices.Java2WsdlTask' 이다.
다음은 java2wsdl의 속성에 대한 설명이다.
<java2wsdl>은 Ant의 <classpath> element를 가지고 있다.
build.xml을 작성한 예제와 이 build.xml을 통해 java2wsdl을 실행시키는 예를 설명한다.
build.xml 작성 예제
[예 5.4] java2wsdl Ant Task build 파일 예제 : <<build.xml>>
<?xml version="1.0" encoding="UTF-8"?> <project name="java2wsdl" default="build" basedir="."> <property name="is.app-client.module" value="true" /> <import file="../../common/common-build.xml" /> <taskdef name="java2wsdl" classname="jeus.util.ant.webservices.Java2WsdlTask"> <classpath refid="jeus.libraries.classpath" /> </taskdef> <target name="-post-compile"> <java2wsdl destDir="${build.classes.dir}" verbose="true" configfilepath="${src.conf}/service-config.xml"> <classpath refid="classpath" /> </java2wsdl> </target> </project>
실행 예제
~/jeus$ jant ... [java2wsdl] Building Web Services : DocLitEchoService [java2wsdl] Generating WSDL File - jeus/build/classes/DocLitEchoService.wsdl [java2wsdl] Generating JAX-RPC Mapping File - jeus/build/classes/DocLitEchoService-mapping.xml ... BUILD SUCCESSFUL Total time: 11 seconds
wsdl2java Task는 웹 서비스의 WSDL로부터 다음의 2개 중에 하나를 생성한다.
클라이언트 측 웹 서비스의 Stub Java 소스 코드들
서버 측 웹 서비스의 인터페이스 Java 소스 코드들
wsdl2java Ant Task를 정의하는 클래스는 'jeus.util.ant.webservices.Wsdl2JavaTask' 이다.
<wsdl2java>는 중첩된 Ant의 <classpath>와 <mapping> element를 가지고 있다. <wsdl2java> Ant Task의 구조는 다음과 같다( +는 한 개 이상의 element를 가질 수 있음을 의미한다).
Java 패키지와 WSDL Namespace 사이의 매핑이다. 사용자가 <mapping>을 생략하면 모든 Namespace URI는 <wsdl2java> element인 package attribute에 기술된 패키지로 매핑된다.
만약 사용자가 <wsdl2java> element의 package 속성을 설정하면 이 속성 값이 <mapping> element로 설정된 값에 우선한다. 즉, <mapping> element로 설정된 값은 무의미해진다.
build.xml을 작성한 예제와 이 build.xml을 통해 wsdl2java를 실행하는 예제를 설명한다.
build.xml 작성 예제
[예 5.5] wsdl2java Ant Task build 파일 예제 : <<build.xml>>
<?xml version="1.0" encoding="UTF-8"?> <project name="wsdl2java" default="build" basedir="."> <property name="is.app-client.module" value="true" /> <import file="../../../common/common-build.xml" /> <taskdef name="wsdl2java" classname="jeus.util.ant.webservices.Wsdl2JavaTask"> <classpath refid="jeus.libraries.classpath" /> </taskdef> <target name="-pre-compile"> <mkdir dir="${build.classes.dir}" /> <wsdl2java destDir="${build.classes.dir}" verbose="true" mode="import:server" doCompile="true" noDataBinding="true" package="sample.nodatabinding.service" outputmapping="${build.classes.dir}/BookQuoteService-mapping.xml" wsdl="${src.conf}/BookQuoteService.wsdl"> <classpath refid="classpath" /> </wsdl2java> </target> </project>
실행 예제
~/jeus$ jant Buildfile: build.xml ... [wsdl2java] Compiling generated sources(1)... ... BUILD SUCCESSFUL Total time: 6 seconds
wsgen Task는 service endpoint interface 클래스(그리고 임의의 Java로 구현한 클래스)로부터 다음을 생성한다.
Portable Artifacts
웹 서비스의 WSDL파일(옵션)
wsgen Ant Task를 정의하는 클래스는 'jeus.webservices.jaxws.tools.WsGen2' 이다.
다음은 wsgen 속성에 대한 설명이다.
build.xml을 작성한 예제와 이 build.xml을 통해 wsgen을 실행한는 예제이다.
build.xml 작성 예제
[예 5.6] wsgen Ant Task build 파일 예제 : <<build.xml>>
<?xml version="1.0" encoding="UTF-8"?> <project name="wsgen" default="build" basedir="."> <property name="is.app-client.module" value="true" /> <import file="../../common/common-build.xml" /> <taskdef name="wsgen" classname="com.sun.tools.ws.ant.WsGen"> <classpath refid="jeus.libraries.classpath" /> </taskdef> <target name="-post-compile"> <wsgen sei="fromjava.server.AddNumbersImpl" destdir="${build.classes.dir}" classpath="${build.classes.dir}" resourcedestdir="${build.classes.dir}" sourcedestdir="${build.classes.dir}" genwsdl="true" /> </target> </project>
실행 예제
~/jeus$ jant
Buildfile: build.xml
...
[echo] Compiling wsgen...
...
BUILD SUCCESSFUL
Total time: 6 seconds
wsimport Task는 웹 서비스의 WSDL로부터 다음의 2개 중에 하나를 생성한다
클라이언트 측 웹 서비스의 Stub Java 소스 코드들
서버 측 웹 서비스의 인터페이스 Java 소스 코드들
wsimport Ant Task를 정의하는 클래스는 'jeus.webservices.jaxws.tools.WsImport2' 이다.
다음은 wsimport 속성에 대한 설명이다.
다음은 build.xml을 작성한 예제와 build.xml을 통해 wsimport을 실행하는 예제이다.
build.xml 작성 예제
[예 5.7] wsimport Ant Task build 파일 예제 : <<build.xml>>
<?xml version="1.0" encoding="UTF-8"?> <project name="wsimport" default="build" basedir="."> <property name="is.app-client.module" value="true" /> <import file="../../common/common-build.xml" /> <taskdef name="wsimport" classname="com.sun.tools.ws.ant.WsImport"> <classpath refid="jeus.libraries.classpath" /> </taskdef> <target name="-pre-compile"> <mkdir dir="${build.classes.dir}" /> <wsimport wsdl="${src.conf}/AddNumbers.wsdl" destDir="${build.classes.dir}" sourcedestdir="${build.classes.dir}" package="fromwsdl.server" /> </target> </project>
실행 예제
~/jeus$ jant
Buildfile: build.xml
...
[wsimport] Consider using <depends>/<produces> so that wsimport won't do
unnecessary compilation
[wsimport] parsing WSDL...
[wsimport]
[wsimport]
[wsimport] generating code...
...
BUILD SUCCESSFUL
Total time: 6 seconds
xjc Task는 XML 스키마 파일을 Java 프로그래밍 언어로 된 JAXB Content 클래스들로 변환한다.
다음은 xjc 속성에 대한 설명이다.
다음은 build.xml을 작성한 예제와 build.xml을 통해 xjc를 실행하는 예제이다.
build.xml 작성 예제
[예 5.8] xjc Ant Task build 파일 예제 : <<build.xml>>
<?xml version="1.0" encoding="UTF-8"?> <project name="xjc" default="build" basedir="."> <property name="is.app-client.module" value="true" /> <import file="../../common/common-build.xml" /> <taskdef name="xjc" classname="com.sun.tools.xjc.XJCTask"> <classpath refid="jeus.libraries.classpath" /> </taskdef> <target name="-pre-compile"> <mkdir dir="${build.classes.dir}" /> <xjc schema="${src.conf}/ts.xsd" package="com.tmaxsoft" destdir="${build.classes.dir}"> <produces dir="${build.classes.dir}/com/tmaxsoft" includes="**/*.java" /> <classpath refid="jeus.libraries.classpath" /> <classpath refid="classpath" /> </xjc> </target> </project>
실행 예제
~/jeus$ jant
Buildfile: build.xml
...
[xjc] jeus/build/classes/com/tmaxsoft is not found and thus excluded from
the dependency check
[xjc] Compiling file:/jeus/src/conf/ts.xsd
[xjc] Writing output to jeus/build/classes
...
BUILD SUCCESSFUL
Total time: 4 seconds
schemagen Task는 Java 클래스들에 나타나는 각각의 Namespace에 대해 하나의 스키마 파일을 생성한다.
다음은 schemagen의 속성에 대한 설명이다.
build.xml을 작성한 예제와 build.xml을 통해 schemagen을 실행하는 예제이다.
build.xml 작성 예제
[예 5.9] schemagen Ant Task build 파일 예제 : <<build.xml>>
<?xml version="1.0" encoding="UTF-8"?> <project name="schemagen" default="build" basedir="."> <property name="is.app-client.module" value="true" /> <import file="../../common/common-build.xml" /> <taskdef name="schemagen" classname="com.sun.tools.jxc.SchemaGenTask"> <classpath refid="jeus.libraries.classpath" /> </taskdef> <target name="-pre-compile"> <mkdir dir="${build.classes.dir}" /> <schemagen destdir="${build.classes.dir}"> <src path="${src.dir}" /> <classpath refid="jeus.libraries.classpath" /> <classpath refid="classpath" /> </schemagen> </target> </project>
실행 예제
~/jeus$ jant
Buildfile: build.xml
...
[schemagen] Generating schema from 2 source files
[schemagen] Note: Writing jeus/schema1.xsd
...
BUILD SUCCESSFUL
Total time: 5 seconds
본 절에서는 JEUS에서 JAX-WS 기반의 웹 서비스 생성과 웹 서비스 클라이언트를 위해 제공하는 Maven Plugin에 대해서 설명한다.
wsgen Plugin은 service endpoint interface 클래스(그리고 임의의 Java로 구현한 클래스)로부터 다음을 생성한다.
Portable Artifacts
웹 서비스의 WSDL파일(옵션)
wsgen plugin은 JEUS_HOME/lib/client/jeus-ws-maven-plugin.jar으로 제공된다. wsgen plugin을 사용하기 위해서는 다음 작업이 선행되어야 한다.
1. jeus-ws-maven-plugin.jar 파일을 로컬 Repository에 install한다.
2. JDK 1.6 환경에서는 Maven option에 '-Djava.endorsed.dirs=$JEUS_HOME/lib/endorsed'를 추가한다.
다음은 wsgen plugin 속성에 대한 설명이다.
pom.xml을 작성한 예제와 이 pom.xml을 통해 wsgen plugin을 실행하는 예제에 대한 설명이다.
pom.xml 작성 예제
[예 5.10] wsgen plugin pom 파일 예제 : <<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/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>jeus.webservices.maven.sample</groupId> <artifactId>wsgen_sample</artifactId> <version>0.0.1</version> <packaging>war</packaging> <name>${project.artifactId}</name> <build> <plugins> <plugin> <groupId>jeus.ws</groupId> <artifactId>jeus-ws-maven-plugin</artifactId> <version>0.0.1</version> <executions> <execution> <id>wsgen_test</id> <goals> <goal>wsgen</goal> </goals> <configuration> <sei>jeus.webservices.sample.EchoService</sei> <extension>true</extension> <genWsdl>true</genWsdl> <keep>true</keep> <inlineSchemas>true</inlineSchemas> </configuration> </execution> </executions> <dependencies> <dependency> <groupId>com.sun</groupId> <artifactId>tools</artifactId> <version>1.6</version> <scope>system</scope> <systemPath>${java.home}/../lib/tools.jar</systemPath> </dependency> <dependency> <groupId>com.sun.xml.ws</groupId> <artifactId>jaxws-tools</artifactId> <version>2.2</version> <scope>system</scope> <systemPath>${jeus.home}/lib/system/jaxws-tools.jar</systemPath> </dependency> </dependencies> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>2.3.2</version> <configuration> <source>1.6</source> <target>1.6</target> <encoding>UTF-8</encoding> <compilerArguments> <endorseddirs>${jeus.home}/lib/endorsed</endorseddirs> </compilerArguments> </configuration> </plugin> </plugins> </build> </project>
실행 예제
~/wsgen$ mvn -Djeus.home=$JEUS_HOME process-classes
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building wsgen_sample 0.0.1
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --maven-resources-plugin:2.5:resources (default-resources) @ wsgen_sample--
[INFO] skip non existing resourceDirectory /jeus/wsgen/src/main/resources
[INFO]
[INFO] ---maven-compiler-plugin:2.3.2:compile (default-compile) @ wsgen_sample---
[INFO] Nothing to compile - all classes are up to date
[INFO]
[INFO] --- jeus-ws-maven-plugin:0.0.1:wsgen (wsgen_test) @ wsgen_sample ---
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 3.773s
[INFO] ------------------------------------------------------------------------
wsimport Plugin은 웹 서비스의 WSDL로부터 다음의 2개 중에 하나를 생성한다
클라이언트 측 웹 서비스의 Stub Java 소스 코드들
서버 측 웹 서비스의 인터페이스 Java 소스 코드들
wsimport plugin은 JEUS_HOME/lib/client/jeus-ws-maven-plugin.jar으로 제공된다. wsimport plugin을 사용하기 위해서는 다음 작업이 선행되어야 한다.
1. jeus-ws-maven-plugin.jar 파일을 로컬 Repository에 install한다.
2. JDK 1.6 환경에서는 mavan option에 '-Djava.endorsed.dirs=$JEUS_HOME/lib/endorsed'를 추가한다.
다음은 wsimport plugin 속성에 대한 설명이다.
다음은 pom.xml을 작성한 예제와 pom.xml을 통해 wsimport plugin을 실행하는 예제에 대한 설명이다.
pom.xml 작성 예제
[예 5.11] wsimport plugin pom 파일 예제 : <<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/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>jeus.webservices.maven.sample</groupId> <artifactId>wsimport_sample</artifactId> <version>0.0.1</version> <packaging>war</packaging> <name>${project.artifactId}</name> <build> <plugins> <plugin> <groupId>jeus.ws</groupId> <artifactId>jeus-ws-maven-plugin</artifactId> <version>0.0.1</version> <executions> <execution> <id>wsimport_test</id> <goals> <goal>wsimport</goal> </goals> <configuration> <packageName>jeus.webservices.sample.test</packageName> <wsdlDirectory>${basedir}/src/wsdl</wsdlDirectory> <wsdlFiles> <wsdlFile>EchoService.wsdl</wsdlFile> </wsdlFiles> </configuration> </execution> </executions> <dependencies> <dependency> <groupId>com.sun</groupId> <artifactId>tools</artifactId> <version>1.6</version> <scope>system</scope> <systemPath>${java.home}/../lib/tools.jar</systemPath> </dependency> <dependency> <groupId>com.sun.xml.ws</groupId> <artifactId>jaxws-tools</artifactId> <version>2.2</version> <scope>system</scope> <systemPath>${jeus.home}/lib/system/jaxws-tools.jar</systemPath> </dependency> </dependencies> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>2.3.2</version> <configuration> <source>1.6</source> <target>1.6</target> <encoding>UTF-8</encoding> <compilerArguments> <endorseddirs>${jeus.home}/lib/endorsed</endorseddirs> </compilerArguments> </configuration> </plugin> </plugins> </build> </project>
실행 예제
~/wsimport$ mvn -Djeus.home=$JEUS_HOME generate-sources
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building wsimport_sample 0.0.1
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- jeus-ws-maven-plugin:0.0.1:wsimport (wsimport_test) @ wsimport_sample ---
[INFO] Processing: file:/jeus/wsimport/src/wsdl/EchoService.wsdl
[INFO] jaxws:wsimport args: [-keep, -s, /jeus/wsimport/target/generated-sources/wsimport,
-Xnocompile, -p, jeus.webservices.sample.test, file:/jues/wsimport/src/wsdl/EchoService.wsdl]
parsing WSDL...
Generating code...
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 2.052s
[INFO] ------------------------------------------------------------------------
Ant Build 파일(일반적으로 build.xml)을 편집하여 jeusadmin 명령어를 실행하는 방법을 소개한다. 예제를 통해 Ant Target을 작성하는 방법을 설명한다.
다음은 Ant를 사용하여 server-info 명령어 수행하는 예제이다.
<project name="check-server-state-example" default="check-server-state"> <property environment="env"/> <property name="jeus.home" value="${env.JEUS_HOME}"/> <property name="jeus.home.bin" value="${jeus.home}/bin"/> <property name="unix.jeusadmin" value="${jeus.home.bin}/jeusadmin"/> <property name="windows.jeusadmin" value="${jeus.home.bin}/jeusadmin.cmd"/> <property name="jeusadmin.args" value="-u jeus -p jeus -host localhost -port 9736 -verbose"/> <property name="server.name" value="adminServer"/> <property name="cmd.target" value="server-info -server ${server.name} -state"/> <condition property="isWindows"> <os family="windows"/> </condition> <condition property="isUnix"> <os family="unix"/> </condition> <target name="check-server-state"> <antcall target="check-server-state-unix"/> <antcall target="check-server-state-windows"/> </target> <target name="check-server-state-windows" if="isWindows"> <echo>${windows.jeusadmin} ${jeusadmin.args} ${cmd.target}</echo> <exec executable="${windows.jeusadmin}" osfamily="windows" spawn="false" failonerror="true"> <arg line="${jeusadmin.args}"/> <arg value="${cmd.target}"/> </exec> </target> <target name="check-server-state-unix" if="isUnix"> <echo>${unix.jeusadmin} ${jeusadmin.args} ${cmd.target}</echo> <exec executable="${unix.jeusadmin}" osfamily="unix" spawn="false" failonerror="true"> <arg line="${jeusadmin.args}"/> <arg value="${cmd.target}"/> </exec> </target> </project>
jeus.home은 JEUS가 설치되어 있는 위치를 가리킨다. 위 예제에서는 시스템 환경 변수 JEUS_HOME에 해당 위치가 저장되어 있는 것으로 가정하였다.
JEUS에서 제공하는 jant 스크립트를 사용하여 ant를 실행할 경우 JEUS_HOME을 별도로 지정하지 않아도 된다.
unix.jeusadmin과 windows.jeusadmin은 jeusadmin 툴을 실행하기 위한 스크립트의 위치를 가리킨다. 일반적으로 jeusadmin 스크립트는 JEUS_HOME/bin 아래에 위치한다. UNIX와 Windows 운영체제에서 스크립트 이름이 다르기 때문에 property를 2개 사용하였다.
jeusadmin.args는 jeusadmin 툴을 실행할 때 사용할 인자값들이다. 사용자 이름, 비밀번호, 호스트 주소, 포트 번호, 상세 출력(verbose) 여부 등 필요한 옵션을 설정한다. 옵션에 대한 자세한 내용은 “4.2.1.1. jeusadmin”을 참고한다.
cmd.target은 실행할 명령어를 지정한다. 예제에서는 server-info 명령어를 사용하여 서버 상태를 확인하고자 하였으므로, 'server-info -server ${server.name} -state'로 설정하였다. jeusadmin에서 사용할 수 있는 명령어에 대한 자세한 사항은 “Part II, 콘솔 명령어와 툴”을 참고한다.
check-server-state-windows와 check-server-state-unix target들에서는 exec task를 사용하여 jeusadmin을 실행한다. osfamily 속성을 사용하여 운영체제의 종류에 맞는 스크립트가 실행될 수 있게 하였다. <exec> 태그에서 spawn 속성을 false로 주어야 Ant를 통해 수행 결과를 확인할 수 있다. 만약 명령어 수행이 실패하였을 때 Ant build가 실패하게 할 경우 failonerror 속성을 true로 설정한다.
예제를 UNIX 운영체제에서 실행한 결과는 다음과 같다.
user1@host1:~/jeus/bin$jant check-server-state Buildfile: /home/user1/jeus/bin/build.xml check-server-state: check-server-state-unix: [echo] /home/user/workspace/jeus7/jeus7/target/jeus/bin/jeusadmin -u jeus -p jeus -host localhost -port 9736 -verbose server-info -server adminServer -state [exec] Verbose output is enabled. [exec] Attempting to connect to localhost:9736. [exec] The connection has been established to Domain Administration Server adminServer in the domain domain1. [exec] RUNNING [exec] check-server-state-windows: BUILD SUCCESSFUL Total time: 1 second user1@host1:~/jeus/bin$
본 절에서는 JEUS Maven Plugin에 대해 설명한다. JEUS Maven Plugin을 사용하면 Apache Maven을 사용하여 JEUS 서버를 기동하거나, 애플리케이션을 배포하는 등과 같은 작업을 수행할 수 있다.
본 절에서는 Apache Maven에 대한 기본적인 내용은 서술하지 않으며, 독자가 이미 Apache Maven에 대한 충분한 지식을 갖추고 있고, Apache Maven이 이미 정상적으로 설치되어 있다고 가정하고 설명을 진행한다. Apache Maven에 대한 사항은 http://maven.apache.org을 참고하도록 한다.
JEUS Maven Plugin을 사용하기 위해서는 플러그인을 설치하는 작업을 먼저 진행해야 한다.
JEUS Maven Plugin은 다음 경로에서 찾을 수 있다.
JEUS_HOME/lib/systemapps/jeus-maven-plugin.jar
설치 과정은 다음과 같다.
jeus-maven-plugin.jar를 임의의 디렉터리에 복사한다(디렉터리 이름은 임의로 설정한다).
mkdir /home/user/jeus-maven-plugin cd /home/user/jeus-maven-plugin cp JEUS_HOME/lib/systemapps/jeus-maven-plugin.jar /home/user/jeus-maven-plugin
임의의 디렉터리로 이동한 후 jeus-maven-plugin.jar에 압축되어 있는 pom.xml을 푼다.
jar xvf /home/user/jeus-maven-plugin/jeus-maven-plugin META-INF/maven/jeus.tool/jeus-maven-plugin/pom.xml
다음 명령어를 이용하여 JEUS Maven Plugin을 사용자의 maven local repository에 설치한다.
mvn install:install-file -Dfile=/home/user/jeus-maven-plugin/jeus-maven-plugin.jar -DpomFile=META-INF/maven/jeus.tool/jeus-maven-plugin/pom.xml
JEUS Maven Plugin에서 제공하는 goal들에 대해 설명한다.
DAS(start-das)를 기동한다. 내부적으로는 JEUS_HOME/bin 아래에 있는 스크립트를 실행한다.
이름
jeus.tool:jeus-maven-plugin:start-das
매개변수
아래 매개변수 중 user와 password, filename은 필수 입력항목이 아니지만, user/password 또는 filename 중 하나는 반드시 설정해야 한다.
매개변수 이름 | 프로퍼티 이름 | 타입 | 설명 |
---|---|---|---|
jeusHome | jeus.home | java.lang.String | JEUS가 설치되어 있는 경로를 설정한다. (필수 입력항목) |
host | jeus.server.host | java.lang.String | DAS의 host address를 설정한다. (필수 입력항목) |
port | jeus.server.port | java.lang.Integer | DAS의 port 번호를 설정한다. (필수 입력항목) |
user | jeus.user.name | java.lang.String | JEUS 사용자 이름을 설정한다. |
password | jeus.user.password | java.lang.String | JEUS 사용자 비밀번호를 설정한다. |
domain | jeus.domain.name | java.lang.String | DAS가 속한 domain 이름을 설정한다. (필수 입력항목) |
server | jeus.server.name | java.lang.String | DAS 이름을 설정한다. (필수 입력항목) |
filename | jeus.auth.file | java.lang.String | JEUS 인증할 때 사용할 계정 정보 파일을 설정한다. startDomainAdminServer 스크립트에서 제공하는 f 옵션과 동일하다. |
waitingTime | jeus.boot.timeout | java.lang.Integer | JEUS를 기동시키고 난 후 플러그인에서는 일정 시간 동안 기다리면서 서버가 제대로 기동되었는지 여부를 검사하여 goal이 성공적으로 수행되었는지 여부를 판단한다. 이때 얼마나 기다릴지 설정하는 값이다. (단위: 초, 기본값: 10초) |
cachelogin | jeus.server.start.cachelogin | boolean | 기동할 때 사용한 인증 정보를 저장할지 여부를 설정한다. (기본값: false) |
force | jeus.server.start.forced | boolean | 기동할 때 설정되어 있는 애플리케이션이 모두 RUNNING 상태가 되지 않더라도 부팅이 완료되게 한다. (기본값: false) |
rolling | jeus.server.start.rolling | boolean | Rolling patch 기능 사용 여부를 설정한다. (기본값: false) |
verbose | jeus.server.start.verbose | boolean | 상세 출력 사용 여부를 설정한다. (기본값: false) |
standby | jeus.server.start.standby | boolean | Standby booting 사용 여부를 설정한다. (기본값: false) |
사용 예제
매개변수는 pom.xml에 설정하거나 command line에서 실행할 때 지정할 수 있다.
다음은 pom.xml에 설정을 한 예제이다.
<!-- JEUS Maven Plugin - start-das --> <plugin> <groupId>jeus.tool</groupId> <artifactId>jeus-maven-plugin</artifactId> <version>7.0.0.2</version> <configuration> <jeusHome>/home/user/jeus</jeusHome> <host>localhost</host> <port>9736</port> <user>administrator</user> <password>jeus</password> <domain>domain1</domain> <server>adminServer</server> </configuration> </plugin>
goal을 실행하였을 경우 출력되는 결과는 다음과 같다.
$ mvn jeus.tool:jeus-maven-plugin:start-das
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building maven-sample-project 1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- jeus-maven-plugin:7.0.0.2:start-das (default-cli) @ maven-sample ---
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 11.414s
[INFO] Finished at: Mon Feb 17 16:16:39 KST 2014
[INFO] Final Memory: 2M/61M
[INFO] ------------------------------------------------------------------------
MS를 기동한다. 내부적으로는 JEUS_HOME/bin 아래에 있는 스크립트를 실행한다.
이름
jeus.tool:jeus-maven-plugin:start-ms
매개변수
아래 매개변수 중 user와 password, filename은 필수 입력항목이 아니지만, user/password 또는 filename 중 하나는 반드시 설정해야 한다.
매개변수 이름 | 프로퍼티 이름 | 타입 | 설명 |
---|---|---|---|
jeusHome | jeus.home | java.lang.String | JEUS가 설치되어 있는 경로를 설정한다. (필수 입력항목) |
host | jeus.server.host | java.lang.String | DAS의 host address를 설정한다. (필수 입력항목) |
port | jeus.server.port | java.lang.Integer | DAS의 port 번호를 설정한다. (필수 입력항목) |
user | jeus.user.name | java.lang.String | JEUS 사용자 이름을 설정한다. |
password | jeus.user.password | java.lang.String | JEUS 사용자 비밀번호를 설정한다. |
domain | jeus.domain.name | java.lang.String | DAS가 속한 domain 이름을 설정한다. (필수 입력항목) |
server | jeus.server.name | java.lang.String | DAS 이름을 설정한다. (필수 입력항목) |
filename | jeus.auth.file | java.lang.String | JEUS를 인증할 때 사용할 계정 정보 파일을 설정한다. startDomainAdminServer 스크립트에서 제공하는 f 옵션과 동일하다. |
waitingTime | jeus.boot.timeout | java.lang.Integer | JEUS를 기동시키고 난 후 플러그인에서는 일정 시간 동안 기다리면서 서버가 제대로 기동되었는지 여부를 검사하여 goal이 성공적으로 수행되었는지 여부를 판단한다. 이때 얼마나 기다릴지 설정하는 값이다. (단위: 초, 기본값: 10초) |
cachelogin | jeus.server.start.cachelogin | boolean | 기동할 때 사용한 인증 정보를 저장할지 여부를 설정한다. (기본값: false) |
force | jeus.server.start.forced | boolean | 기동할 때 설정되어 있는 애플리케이션이 모두 RUNNING 상태가 되지 않더라도 부팅이 완료되게 한다. (기본값: false) |
rolling | jeus.server.start.rolling | boolean | Rolling patch 기능 사용 여부를 설정한다. (기본값: false) |
verbose | jeus.server.start.verbose | boolean | 상세 출력 사용 여부를 설정한다. (기본값: false) |
standby | jeus.server.start.standby | boolean | Standby booting 사용 여부를 설정한다. (기본값: false) |
dasurl | jeus.server.start.dasurl | java.lang.String | MS가 속한 domain을 관리하는 DAS의 url을 설정한다. (필수 입력항목) |
사용 예제
매개변수는 pom.xml에 설정하거나 command line에서 실행할 때 지정할 수 있다.
다음은 pom.xml에 설정을 한 예제이다.
<!-- JEUS Maven Plugin - start-ms --> <plugin> <groupId>jeus.tool</groupId> <artifactId>jeus-maven-plugin</artifactId> <version>7.0.0.2</version> <configuration> <jeusHome>/home/user/jeus</jeusHome> <host>localhost</host> <port>9736</port> <user>administrator</user> <password>jeus</password> <domain>domain1</domain> <server>server1</server> <dasurl>localhost:9736</dasurl> </configuration> </plugin>
goal을 실행하였을 경우 출력되는 결과는 다음과 같다.
$ mvn jeus.tool:jeus-maven-plugin:start-ms
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building maven-sample-project 1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- jeus-maven-plugin:7.0.0.2:start-ms (default-cli) @ maven-sample ---
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 11.161s
[INFO] Finished at: Mon Feb 17 16:36:16 KST 2014
[INFO] Final Memory: 2M/61M
[INFO] ------------------------------------------------------------------------
접속한 서버를 종료시킨다. 내부적으로는 콘솔 툴(jeusadmin)에서 제공하는 one-step execution 기능을 사용하여 local-shutdown 명령어를 실행한다.
이름
jeus.tool:jeus-maven-plugin:stop-jeus
매개변수
매개변수 이름 | 프로퍼티 이름 | 타입 | 설명 |
---|---|---|---|
jeusHome | jeus.home | java.lang.String | JEUS가 설치되어 있는 경로를 설정한다. (필수 입력항목) |
host | jeus.server.host | java.lang.String | jeusadmin으로 접속할 서버의 주소이다. (필수 입력항목) |
port | jeus.server.port | java.lang.Integer | jeusadmin으로 접속할 서버의 포트 번호이다. (기본값: 9736, 필수 입력항목) |
user | jeus.user.name | java.lang.String | JEUS 사용자 이름을 설정한다. (필수 입력항목) |
password | jeus.user.password | java.lang.String | JEUS 사용자 비밀번호를 설정한다. (필수 입력항목) |
args | 없음 | java.util.List | 명령어를 실행할 때 넘겨줄 인자값들을 설정한다. arg와 args 둘 다 설정하였을 경우 arg가 우선한다. pom.xml에 설정할 경우 사용하는 것을 권장한다. |
arg | jeus.jeusadmin.command.arguments | java.lang.String | 명령어를 실행할 때 넘겨줄 인자값들을 설정한다. arg와 args 둘 다 설정하였을 경우 arg가 우선한다. |
사용 예제
매개변수는 pom.xml에 설정하거나 command line에서 실행할 때 지정할 수 있다.
다음은 pom.xml에 설정을 한 예제이다.
<!-- JEUS Maven Plugin - stop-jeus --> <plugin> <groupId>jeus.tool</groupId> <artifactId>jeus-maven-plugin</artifactId> <version>7.0.0.2</version> <configuration> <jeusHome>/home/user/jeus</jeusHome> <host>localhost</host> <port>9736</port> <user>administrator</user> <password>jeus</password> </configuration> </plugin>
goal을 실행하였을 경우 일반적으로 출력되는 결과는 다음과 같다.
$ mvn jeus.tool:jeus-maven-plugin:stop-jeus
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building maven-sample-project 1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- jeus-maven-plugin:7.0.0.2:stop-jeus (default-cli) @ maven-sample ---
[INFO] jeus.home = /home/user/jeus
[INFO] jeusadmin.path = /home/user/jeus/bin/jeusadmin
[INFO] jeusadmin.one-step-execution-command = [local-shutdown]
[INFO] Attempting to connect to localhost:9736.
[INFO] The connection has been established to Domain Administration Server adminServer in the domain domain1.
[INFO] The server [adminServer] has been shut down successfully.
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.690s
[INFO] Finished at: Mon Feb 17 17:19:10 KST 2014
[INFO] Final Memory: 2M/61M
[INFO] ------------------------------------------------------------------------
애플리케이션을 deploy한다. 내부적으로는 콘솔 툴(jeusadmin)에서 제공하는 one-step execution 기능을 사용하여 deploy-application 명령어를 실행한다.
이름
jeus.tool:jeus-maven-plugin:deploy
매개변수
매개변수 이름 | 프로퍼티 이름 | 타입 | 설명 |
---|---|---|---|
jeusHome | jeus.home | java.lang.String | JEUS가 설치되어 있는 경로를 설정한다. (필수 입력항목) |
host | jeus.server.host | java.lang.String | jeusadmin으로 접속할 서버의 주소이다. (필수 입력항목) |
port | jeus.server.port | java.lang.Integer | jeusadmin으로 접속할 서버의 포트 번호이다. (기본값: 9736, 필수 입력항목) |
user | jeus.user.name | java.lang.String | JEUS 사용자 이름을 설정한다. (필수 입력항목) |
password | jeus.user.password | java.lang.String | JEUS 사용자 비밀번호를 설정한다. (필수 입력항목) |
args | 없음 | java.util.List | 명령어를 실행할 때 넘겨줄 인자값들을 설정한다. arg와 args 둘 다 설정하였을 경우 arg가 우선한다. pom.xml에 설정할 경우 사용하는 것을 권장한다. |
arg | jeus.jeusadmin.command.arguments | java.lang.String | 명령어를 실행할 때 넘겨줄 인자값들을 설정한다. arg와 args 둘 다 설정하였을 경우 arg가 우선한다. |
사용 예제
매개변수는 pom.xml에 설정하거나 command line에서 실행할 때 지정할 수 있다.
다음은 pom.xml에 설정을 한 예제이다.
<!-- JEUS Maven Plugin - deploy --> <plugin> <groupId>jeus.tool</groupId> <artifactId>jeus-maven-plugin</artifactId> <version>7.0.0.2</version> <configuration> <jeusHome>/home/user/jeus</jeusHome> <host>localhost</host> <port>9736</port> <user>administrator</user> <password>jeus</password> <args> <param>SampleApp</param> <param>-servers SampleApp</param> </args> </configuration> </plugin>
goal을 실행하였을 경우 일반적으로 출력되는 결과는 다음과 같다.
$ mvn jeus.tool:jeus-maven-plugin:deploy
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building maven-sample-project 1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- jeus-maven-plugin:7.0.0.2:deploy (default-cli) @ maven-sample ---
[INFO] jeus.home = /home/user/jeus
[INFO] jeusadmin.path = /home/user/jeus/bin/jeusadmin
[INFO] jeusadmin.one-step-execution-command = [deploy-application SampleApp -servers adminServer ]
[INFO] Attempting to connect to localhost:9736.
[INFO] The connection has been established to Domain Administration Server adminServer in the domain domain1.
[INFO] deploy the application for the application [SampleApp] succeeded.
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.116s
[INFO] Finished at: Mon Feb 17 16:50:32 KST 2014
[INFO] Final Memory: 2M/61M
[INFO] ------------------------------------------------------------------------
deploy했던 애플리케이션을 undeploy한다. 내부적으로는 콘솔 툴(jeusadmin)에서 제공하는 one-step execution 기능을 사용하여 undeploy-application 명령어를 실행한다.
이름
jeus.tool:jeus-maven-plugin:undeploy
매개변수
매개변수 이름 | 프로퍼티 이름 | 타입 | 설명 |
---|---|---|---|
jeusHome | jeus.home | java.lang.String | JEUS가 설치되어 있는 경로를 설정한다. (필수 입력항목) |
host | jeus.server.host | java.lang.String | jeusadmin으로 접속할 서버의 주소이다. (필수 입력항목) |
port | jeus.server.port | java.lang.Integer | jeusadmin으로 접속할 서버의 포트 번호이다. (기본값: 9736, 필수 입력항목) |
user | jeus.user.name | java.lang.String | JEUS 사용자 이름을 설정한다. (필수 입력항목) |
password | jeus.user.password | java.lang.String | JEUS 사용자 비밀번호를 설정한다. (필수 입력항목) |
args | 없음 | java.util.List | 명령어를 실행할 때 넘겨줄 인자값들을 설정한다. arg와 args 둘 다 설정하였을 경우 arg가 우선한다. pom.xml에 설정할 경우 사용하는 것을 권장한다. |
arg | jeus.jeusadmin.command.arguments | java.lang.String | 명령어를 실행할 때 넘겨줄 인자값들을 설정한다. arg와 args 둘 다 설정하였을 경우 arg가 우선한다. |
사용 예제
매개변수는 pom.xml에 설정하거나 command line에서 실행할 때 지정할 수 있다.
다음은 pom.xml에 설정을 한 예제이다.
<!-- JEUS Maven Plugin - undeploy --> <plugin> <groupId>jeus.tool</groupId> <artifactId>jeus-maven-plugin</artifactId> <version>7.0.0.2</version> <configuration> <jeusHome>/home/user/jeus</jeusHome> <host>localhost</host> <port>9736</port> <user>administrator</user> <password>jeus</password> <args> <param>SampleApp</param> </args> </configuration> </plugin>
goal을 실행하였을 경우 일반적으로 출력되는 결과는 다음과 같다.
$ mvn jeus.tool:jeus-maven-plugin:undeploy
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building maven-sample-project 1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- jeus-maven-plugin:7.0.0.2:undeploy (default-cli) @ maven-sample ---
[INFO] jeus.home = /home/user/jeus
[INFO] jeusadmin.path = /home/user/jeus/bin/jeusadmin
[INFO] jeusadmin.one-step-execution-command = [undeploy-application SampleApp ]
[INFO] Attempting to connect to localhost:9736.
[INFO] The connection has been established to Domain Administration Server adminServer in the domain domain1.
[INFO] Undeploying [SampleApp] (This may take time due to graceful undeployment) ..........
[INFO] undeploy the application for the application [SampleApp] succeeded.
[INFO] successfully undeployed (elapsed = 147ms)
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.814s
[INFO] Finished at: Mon Feb 17 17:06:40 KST 2014
[INFO] Final Memory: 2M/61M
[INFO] ------------------------------------------------------------------------
deploy한 애플리케이션의 서비스를 시작한다. 내부적으로는 콘솔 툴(jeusadmin)에서 제공하는 one-step execution 기능을 사용하여 start-application 명령어를 실행한다.
이름
jeus.tool:jeus-maven-plugin:start-app
매개변수
매개변수 이름 | 프로퍼티 이름 | 타입 | 설명 |
---|---|---|---|
jeusHome | jeus.home | java.lang.String | JEUS가 설치되어 있는 경로를 설정한다. (필수 입력항목) |
host | jeus.server.host | java.lang.String | jeusadmin으로 접속할 서버의 주소이다. (필수 입력항목) |
port | jeus.server.port | java.lang.Integer | jeusadmin으로 접속할 서버의 포트 번호이다. (기본값: 9736, 필수 입력항목) |
user | jeus.user.name | java.lang.String | JEUS 사용자 이름을 설정한다. (필수 입력항목) |
password | jeus.user.password | java.lang.String | JEUS 사용자 비밀번호를 설정한다. (필수 입력항목) |
args | 없음 | java.util.List | 명령어를 실행할 때 넘겨줄 인자값들을 설정한다. arg와 args 둘 다 설정하였을 경우 arg가 우선한다. pom.xml에 설정할 경우 사용하는 것을 권장한다. |
arg | jeus.jeusadmin.command.arguments | java.lang.String | 명령어를 실행할 때 넘겨줄 인자값들을 설정한다. arg와 args 둘 다 설정하였을 경우 arg가 우선한다. |
사용 예제
매개변수는 pom.xml에 설정하거나 command line에서 실행할 때 지정할 수 있다.
다음은 pom.xml에 설정을 한 예제이다.
<!-- JEUS Maven Plugin - start-app --> <plugin> <groupId>jeus.tool</groupId> <artifactId>jeus-maven-plugin</artifactId> <version>7.0.0.2</version> <configuration> <jeusHome>/home/user/jeus</jeusHome> <host>localhost</host> <port>9736</port> <user>administrator</user> <password>jeus</password> <args> <param>SampleApp</param> </args> </configuration> </plugin>
goal을 실행하였을 경우 일반적으로 출력되는 결과는 다음과 같다.
$ mvn jeus.tool:jeus-maven-plugin:start-app
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building maven-sample-project 1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- jeus-maven-plugin:7.0.0.2:start-app (default-cli) @ maven-sample ---
[INFO] jeus.home = /home/user/jeus
[INFO] jeusadmin.path = /home/user/jeus/bin/jeusadmin
[INFO] jeusadmin.one-step-execution-command = [start-application SampleApp ]
[INFO] Attempting to connect to localhost:9736.
[INFO] The connection has been established to Domain Administration Server adminServer in the domain domain1.
[INFO] start the application for the application [SampleApp] succeeded.
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.678s
[INFO] Finished at: Mon Feb 17 17:14:07 KST 2014
[INFO] Final Memory: 2M/61M
[INFO] ------------------------------------------------------------------------
서비스 중인 애플리케이션을 정지시킨다. 내부적으로는 콘솔 툴(jeusadmin)에서 제공하는 one-step execution 기능을 사용하여 stop-application 명령어를 실행한다.
이름
jeus.tool:jeus-maven-plugin:stop-app
매개변수
매개변수 이름 | 프로퍼티 이름 | 타입 | 설명 |
---|---|---|---|
jeusHome | jeus.home | java.lang.String | JEUS가 설치되어 있는 경로를 설정한다. (필수 입력항목) |
host | jeus.server.host | java.lang.String | jeusadmin으로 접속할 서버의 주소이다. (필수 입력항목) |
port | jeus.server.port | java.lang.Integer | jeusadmin으로 접속할 서버의 포트 번호이다. (기본값: 9736, 필수 입력항목) |
user | jeus.user.name | java.lang.String | JEUS 사용자 이름을 설정한다. (필수 입력항목) |
password | jeus.user.password | java.lang.String | JEUS 사용자 비밀번호를 설정한다. (필수 입력항목) |
args | 없음 | java.util.List | 명령어를 실행할 때 넘겨줄 인자값들을 설정한다. arg와 args 둘 다 설정하였을 경우 arg가 우선한다. pom.xml에 설정할 경우 사용하는 것을 권장한다. |
arg | jeus.jeusadmin.command.arguments | java.lang.String | 명령어를 실행할 때 넘겨줄 인자값들을 설정한다. arg와 args 둘 다 설정하였을 경우 arg가 우선한다. |
사용 예제
매개변수는 pom.xml에 설정하거나 command line에서 실행할 때 지정할 수 있다.
다음은 pom.xml에 설정을 한 예제이다.
<!-- JEUS Maven Plugin - stop-app --> <plugin> <groupId>jeus.tool</groupId> <artifactId>jeus-maven-plugin</artifactId> <version>7.0.0.2</version> <configuration> <jeusHome>/home/user/jeus</jeusHome> <host>localhost</host> <port>9736</port> <user>administrator</user> <password>jeus</password> <args> <param>SampleApp</param> </args> </configuration> </plugin>
goal을 실행하였을 경우 일반적으로 출력되는 결과는 다음과 같다.
$ mvn jeus.tool:jeus-maven-plugin:stop-app
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building maven-sample-project 1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- jeus-maven-plugin:7.0.0.2:stop-app (default-cli) @ maven-sample ---
[INFO] jeus.home = /home/user/jeus
[INFO] jeusadmin.path = /home/user/jeus/bin/jeusadmin
[INFO] jeusadmin.one-step-execution-command = [stop-application SampleApp ]
[INFO] Attempting to connect to localhost:9736.
[INFO] The connection has been established to Domain Administration Server adminServer in the domain domain1.
[INFO] stop the application for the application [SampleApp] succeeded.
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.635s
[INFO] Finished at: Mon Feb 17 17:16:48 KST 2014
[INFO] Final Memory: 2M/61M
[INFO] ------------------------------------------------------------------------
애플리케이션을 DAS에 설치한다. 내부적으로는 콘솔 툴(jeusadmin)에서 제공하는 one-step execution 기능을 사용하여 install-application 명령어를 실행한다.
이름
jeus.tool:jeus-maven-plugin:install-app
매개변수
매개변수 이름 | 프로퍼티 이름 | 타입 | 설명 |
---|---|---|---|
jeusHome | jeus.home | java.lang.String | JEUS가 설치되어 있는 경로를 설정한다. (필수 입력항목) |
host | jeus.server.host | java.lang.String | jeusadmin으로 접속할 서버의 주소이다. (필수 입력항목) |
port | jeus.server.port | java.lang.Integer | jeusadmin으로 접속할 서버의 포트 번호이다. (기본값: 9736, 필수 입력항목) |
user | jeus.user.name | java.lang.String | JEUS 사용자 이름을 설정한다. (필수 입력항목) |
password | jeus.user.password | java.lang.String | JEUS 사용자 비밀번호를 설정한다. (필수 입력항목) |
args | 없음 | java.util.List | 명령어를 실행할 때 넘겨줄 인자값들을 설정한다. arg와 args 둘 다 설정하였을 경우 arg가 우선한다. pom.xml에 설정할 경우 사용하는 것을 권장한다. |
arg | jeus.jeusadmin.command.arguments | java.lang.String | 명령어를 실행할 때 넘겨줄 인자값들을 설정한다. arg와 args 둘 다 설정하였을 경우 arg가 우선한다. |
사용 예제
매개변수는 pom.xml에 설정하거나 command line에서 실행할 때 지정할 수 있다.
다음은 pom.xml에 설정을 한 예제이다.
<!-- JEUS Maven Plugin - install-app --> <plugin> <groupId>jeus.tool</groupId> <artifactId>jeus-maven-plugin</artifactId> <version>7.0.0.2</version> <configuration> <jeusHome>/home/user/jeus</jeusHome> <host>localhost</host> <port>9736</port> <user>administrator</user> <password>jeus</password> <args> <param>/home/user/SampleApp.war</param> <param>-id SampleApp</param> </args> </configuration> </plugin>
goal을 실행하였을 경우 일반적으로 출력되는 결과는 다음과 같다.
$ mvn jeus.tool:jeus-maven-plugin:install-app
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building maven-sample-project 1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- jeus-maven-plugin:7.0.0.2:install-app (default-cli) @ maven-sample ---
[INFO] jeus.home = /home/user/jeus
[INFO] jeusadmin.path = /home/user/jeus/bin/jeusadmin
[INFO] jeusadmin.one-step-execution-command = [install-application /home/user/SampleApp.war -id SampleApp ]
[INFO] Attempting to connect to localhost:9736.
[INFO] The connection has been established to Domain Administration Server adminServer in the domain domain1.
[INFO] Successfully installed the application [SampleApp].
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.019s
[INFO] Finished at: Mon Feb 17 17:22:57 KST 2014
[INFO] Final Memory: 2M/77M
[INFO] ------------------------------------------------------------------------
DAS에 설치되어 있는 애플리케이션을 제거한다. 내부적으로는 콘솔 툴(jeusadmin)에서 제공하는 one-step execution 기능을 사용하여 uninstall-application 명령어를 실행한다.
이름
jeus.tool:jeus-maven-plugin:uninstall-app
매개변수
매개변수 이름 | 프로퍼티 이름 | 타입 | 설명 |
---|---|---|---|
jeusHome | jeus.home | java.lang.String | JEUS가 설치되어 있는 경로를 설정한다. (필수 입력항목) |
host | jeus.server.host | java.lang.String | jeusadmin으로 접속할 서버의 주소이다. (필수 입력항목) |
port | jeus.server.port | java.lang.Integer | jeusadmin으로 접속할 서버의 포트 번호이다. (기본값: 9736, 필수 입력항목) |
user | jeus.user.name | java.lang.String | JEUS 사용자 이름을 설정한다. (필수 입력항목) |
password | jeus.user.password | java.lang.String | JEUS 사용자 비밀번호를 설정한다. (필수 입력항목) |
args | 없음 | java.util.List | 명령어를 실행할 때 넘겨줄 인자값들을 설정한다. arg와 args 둘 다 설정하였을 경우 arg가 우선한다. pom.xml에 설정할 경우 사용하는 것을 권장한다. |
arg | jeus.jeusadmin.command.arguments | java.lang.String | 명령어를 실행할 때 넘겨줄 인자값들을 설정한다. arg와 args 둘 다 설정하였을 경우 arg가 우선한다. |
사용 예제
매개변수는 pom.xml에 설정하거나 command line에서 실행할 때 지정할 수 있다.
다음은 pom.xml에 설정을 한 예제이다.
<!-- JEUS Maven Plugin - uninstall-app --> <plugin> <groupId>jeus.tool</groupId> <artifactId>jeus-maven-plugin</artifactId> <version>7.0.0.2</version> <configuration> <jeusHome>/home/user/jeus</jeusHome> <host>localhost</host> <port>9736</port> <user>administrator</user> <password>jeus</password> <args> <param>SampleApp</param> </args> </configuration> </plugin>
goal을 실행하였을 경우 일반적으로 출력되는 결과는 다음과 같다.
$ mvn jeus.tool:jeus-maven-plugin:uninstall-app
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building maven-sample-project 1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- jeus-maven-plugin:7.0.0.2:uninstall-app (default-cli) @ maven-sample ---
[INFO] jeus.home = /home/user/jeus
[INFO] jeusadmin.path = /home/user/jeus/bin/jeusadmin
[INFO] jeusadmin.one-step-execution-command = [uninstall-application SampleApp ]
[INFO] Attempting to connect to localhost:9736.
[INFO] The connection has been established to Domain Administration Server adminServer in the domain domain1.
[INFO] uninstall the application for the application [SampleApp] succeeded. : Successfully deleted [SampleApp].
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.654s
[INFO] Finished at: Mon Feb 17 17:24:42 KST 2014
[INFO] Final Memory: 2M/61M
[INFO] ------------------------------------------------------------------------
지정한 jeusadmin 명령어를 실행한다. 내부적으로는 콘솔 툴(jeusadmin)에서 제공하는 one-step execution 기능을 사용한다.
이름
jeus.tool:jeus-maven-plugin:jeusadmin
매개변수
매개변수 이름 | 프로퍼티 이름 | 타입 | 설명 |
---|---|---|---|
jeusHome | jeus.home | java.lang.String | JEUS가 설치되어 있는 경로를 설정한다. (필수 입력항목) |
host | jeus.server.host | java.lang.String | jeusadmin으로 접속할 서버의 주소이다. (필수 입력항목) |
port | jeus.server.port | java.lang.Integer | jeusadmin으로 접속할 서버의 포트 번호이다. (기본값: 9736, 필수 입력항목) |
user | jeus.user.name | java.lang.String | JEUS 사용자 이름을 설정한다. (필수 입력항목) |
password | jeus.user.password | java.lang.String | JEUS 사용자 비밀번호를 설정한다. (필수 입력항목) |
args | 없음 | java.util.List | 명령어를 실행할 때 넘겨줄 인자값들을 설정한다. arg와 args 둘 다 설정하였을 경우 arg가 우선한다. pom.xml에 설정할 경우 사용하는 것을 권장한다. |
arg | jeus.jeusadmin.command.arguments | java.lang.String | 명령어를 실행할 때 넘겨줄 인자값들을 설정한다. arg와 args 둘 다 설정하였을 경우 arg가 우선한다. |
command | jeus.jeusadmin.command | java.lang.String | 실행할 jeusadmin 명령어 이름을 설정한다. (필수 입력항목) |
사용 예제
매개변수는 pom.xml에 설정하거나 command line에서 실행할 때 지정할 수 있다.
다음은 pom.xml에 설정을 한 예제이며, 수행할 명령어는 server-info -server adminServer -state이다.
<!-- JEUS Maven Plugin - jeusadmin --> <plugin> <groupId>jeus.tool</groupId> <artifactId>jeus-maven-plugin</artifactId> <version>7.0.0.2</version> <configuration> <jeusHome>/home/user/jeus</jeusHome> <host>localhost</host> <port>9736</port> <user>administrator</user> <password>jeus</password> <command>server-info</command> <args> <param>-server adminServer</param> <param>-state</param> </args> </configuration> </plugin>
goal을 실행하였을 경우 출력되는 결과는 다음과 같다.
$ mvn jeus.tool:jeus-maven-plugin:jeusadmin
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building maven-sample-project 1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- jeus-maven-plugin:7.0.0.2:jeusadmin (default-cli) @ maven-sample ---
[INFO] jeus.home = /home/user/jeus
[INFO] jeusadmin.path = /home/user/jeus/bin/jeusadmin
[INFO] jeusadmin.one-step-execution-command = [server-info -server adminServer -state ]
[INFO] Attempting to connect to localhost:9736.
[INFO] The connection has been established to Domain Administration Server adminServer in the domain domain1.
[INFO] RUNNING
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.642s
[INFO] Finished at: Mon Feb 17 17:29:13 KST 2014
[INFO] Final Memory: 2M/77M
[INFO] ------------------------------------------------------------------------