1. wsgen

wsgen 툴은 JAX-WS 웹 서비스를 위한 툴이다. JAX-WS 웹 서비스를 위한 툴로 Java 클래스로부터 WSDL 파일과 JAX-RPC 매핑 파일을 생성하고, 웹 서비스 정책 설정 파일을 생성할 수도 있다.

wsgen 툴은 service endpoint interface 클래스(그리고 임의의 Java로 구현한 클래스)로부터 다음과 같은 것을 생성한다.

  • Portable Artifacts

  • 웹 서비스의 WSDL 파일(옵션)

  • 웹 서비스 정책 파일 wsit-<endpoint classname>.xml 파일(옵션)

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

  • 사용법

    Usage: wsgen [options] <SEI>
    
    where [options] include:
      -classpath <path>        specify where to find input class files
      -cp <path>               same as -classpath <path>
      -d <directory>           specify where to place generated output files
      -extension               allow vendor extensions - functionality not specified
                               by the specification.  Use of extensions may
                               result in applications that are not portable or
                               may not interoperate with other implementations
      -help                    display help
      -keep                    keep generated files
      -r <directory>           resource destination directory, specify where to
                               place resouce files such as WSDLs
      -s <directory>           specify where to place generated source files
      -verbose                 output messages about what the compiler is doing
      -version                 print version information
      -wsdl[:protocol]         generate a WSDL file. The protocol is optional.
                               Valid protocols are [soap1.1, Xsoap1.2], the default is
                               soap1.1.
                               The non stanadard protocols [Xsoap1.2] can only be used
                               in conjunction with the -extension option.
      -inlineSchemas           inline schemas in the generated wsdl.
                               Must be used in conjunction with the -wsdl option.
      -servicename <name>      specify the Service name to use in the generated WSDL
                               Used in conjunction with the -wsdl option.
      -portname <name>         specify the Port name to use in the generated WSDL
                               Used in conjunction with the -wsdl option.
    
    Examples:
      wsgen -cp . example.Stock
      wsgen -cp . example.Stock -wsdl -servicename {http://mynamespace}MyService
  • 파라미터

    파라미터 설명

    -classpath <path>

    입력 Java 클래스 파일들을 찾기 위한 경로를 기술한다.

    -cp <path>

    -classpath <path>와 동일하다.

    -d <directory>

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

    -extension

    벤더 특정의 확장성을 명시할 때 사용한다. 상호 운용 및 이식성이 떨어질 수 있다.

    -help

    도움말을 출력한다.

    -keep

    생성되는 파일들을 보존한다.

    -r <directory>

    genwsdl 속성과 함께 사용한다. WSDL 파일을 생성할 위치를 지정한다.

    -s <directory>

    생성되는 소스 파일들의 위치를 설정한다.

    -verbose

    Verbose 메시지를 출력한다.

    -version

    버전 정보를 화면에 출력한다.

    -wsdl[:protocol]

    기본적으로 wsgen은 WSDL 파일을 생성하지 않는다. 이 옵션을 사용하면 개발자는 deploy되기 전에 WSDL 파일을 볼 수 있다.

    [:protocol] 또한 옵션이며 기본값은 soap1.1 이다. Xsoap1.2 또한 사용할 수 있으며 -extension 옵션과 함께 사용한다.

    -inlineSchemas

    생성된 WSDL의 스키마를 인라인한다.

    -wsdl 옵션과 함께 사용해야 한다.

    -servicename <name>

    -wsdl 옵션과 함께 사용한다. 생성되는 WSDL 파일의 특정 wsdl:service element의 이름을 설정한다.

    -portname <name>

    -wsdl 옵션과 함께 사용한다. 생성되는 WSDL 파일의 특정 wsdl:portname element의 이름을 설정한다.

  • 예제

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

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

    $ wsgen -classpath build/classes -d build/classes -wsdl 
    fromjava.server.AddNumbersImpl

    위의 명령어는 서비스 end-point 구현 클래스인 fromjava.server.AddNumbersImpl로부터 JAX-WS 웹 서비스를 구성한다. fromjava.server.AddNumbersImpl의 클래스 패스는 "build/classes"이며 WSDL 문서와 함께 JavaBean 파일들이 "build/classes" 디렉터리에 생성된다.