1. wsdl2java

wsdl2java은 JAX-RPC 웹 서비스를 위한 툴로 WSDL 파일로부터 다음의 파일을 생성한다.

  • 클라이언트의 웹 서비스 Stub Java 소스 코드들

  • 서버의 웹 서비스 인터페이스 Java 소스 코드들

다음은 툴 사용법, 파라미터 및 예제에 대한 설명이다.

  • 사용법

    Usage: wsdl2java mode [options] wsdlURI
    
    where mode include:
    -gen:client              generate all client artifacts
    -gen:server              generate all server artifacts
    -gen                     same as -gen:client
    -import:client           generate client JSR-109 portable artifacts only
    -import:server           generate server JSR-109 portable artifacts only
    -import                  same as -import:client
    
    where [options] include:
    * destination directory
    -d <directory>           specify where to put output files
    -cd <directory>          specify where to put compiled class files
                             If not specifed, the compile class files will be
                             put in where '-d' specifies
    
    * WSDL and Java mapping
    -inputmapping <filename> specify the input JSR-109 JAX-RPC mapping file
                             (used for generating Java artifacts)
    -package <package_name>  specify the java package name to which
                             all namespaceURI in the WSDL map
    -ns2pkg NS=PKG           specify the namespaceURI and java package name mapping
                             (NS : namespaceURI, PKG : java package name)
                             This option can be used serveral times
    
    * output file
    -outputmapping <filename>  specify the output JSR-109 JAX-RPc mapping file
                             for the input WSDL
                             This option can not be used with '-inputmapping'
    -compile                 compile generated Java source files
                             ('tools.jar' must be in the classpath)
    -nokeepsrc               delete generated java source files
    
    * artifact generation options
    -nowrapped               disable wrapped mode detection for the WSDL
    -datahandleronly         force jakarta.activation.DataHandler for MIME types
    -nodatabinding           force jakarta.xml.soap.SOAPElement for all WSDL parts
    -soapver <VER>           specify SOAP version used in stub/tie class.
                             VER : '11' for SOAP 1.1, '12' for SOAP 1.2
    -resolvedir directory    specify directory where to be put local copies
                             of include/import schemas and import WSDL
    
    * other options
    -username                username to access the WSDL-URI
    -password                password to access the WSDL-URI
    
    * verbose options
    -level <LEVEL>           specify log level.
                             LEVEL : SEVERE, WARNING, INFO, FINE, FINER, FINEST
    -verbose                 same as -level FINE
  • 파라미터

    파라미터 설명

    -gen:client

    클라이언트 측 Java 클래스를 생성한다.

    -gen:server

    서버 측 Java 클래스를 생성한다.

    -gen

    -gen:client와 동일하다.

    -import:client

    클라이언트 측 Portable Artifact를 생성한다.

    -import:server

    서버 측 Portable Artifact를 생성한다.

    -import

    -import:client와 동일하다.

    -d <directory>

    결과 파일이 생성될 디렉터리를 지정한다.

    -cd <directory>

    컴파일된 클래스 파일이 생성될 디렉터리를 지정한다.

    -inputmapping <filename>

    Java 클래스를 생성하기 위하여 사용되는 입력 JAX-RPC 매핑 파일을 지정한다.

    -package <package_name>

    WSDL의 모든 Namespace URI에 대한 Java 패키지 이름을 지정한다.

    -ns2pkg NS=PKG

    Namespace URI에 대한 Java 패키지 이름을 지정한다.

    • NS: Namespace URI

    • PKG: Java 패키지 이름

    -outputmapping <filename>

    입력 WSDL에 대한 출력 JAX-RPC 매핑 파일을 지정한다.

    -compile

    생성된 Java 파일을 컴파일한다.

    -nokeepsrc

    생성된 Java 소스 파일을 유지하지 않고 삭제한다.

    -nowrapped

    WSDL에 대한 wrapped 모드 탐지를 사용할 수 없게 한다.

    -datahandleronly

    MIME 타입에 대하여 jakarta.activation.DataHandler를 적용하게 한다.

    -nodatabinding

    모든 WSDL massage part에 대하여 jakarta.xml.soap.SOAPElement를 적용하게 한다.

    -soapver <VER>

    stub/tie 클래스에서 사용되는 SOAP 버전을 지정한다.

    • 11: SOAP 1.1

    • 12: SOAP 1.2

    -resolvedir <directory>

    원격의 WSDL 파일(스키마 파일 포함)을 접근 가능한 저장소에 저장하고자 할 때 사용한다.

    -username

    WSDL-URI에 접근하기 위한 사용자명이다.

    -password

    WSDL-URI에 접근하기 위한 패스워드이다.

    -level <LEVEL>

    로그 레벨을 지정한다.

    -verbose

    로그를 화면에 출력한다.

  • 예제

    wsdl2java는 JEUS_HOME/bin/ 디렉터리에 위치한 일반적인 스크립트 파일이다.

    wsdl2java 툴을 실행하는 예는 다음과 같다.

    $ wsdl2java -gen:client -d build/classes
    -outputmapping build/classes/web/WEB-INF/jaxrpcmapping.xml
    -compile http://localhost:8088/AddNumbers/addnumbers?wsdl

    위의 명령어는 원격의 "http://localhost:8088/AddNumbers/addnumbers?wsdl" WSDL 문서를 통해 웹 서비스 클라이언트를 위한 Stub 및 서비스 인터페이스들을 생성한다.

    여기에서 Stub 및 서비스 인터페이스들은 "build/classes" 디렉터리에 생성되며 JAX-RPC 매핑 파일은 "build/classes/web/WEB-INF"에 생성된다. [-compile] 옵션으로 생성되는 Stub 및 서비스 인터페이스들은 컴파일이 된다.