1. wsimport
wsimport는 JAX-WS 웹 서비스를 위한 툴이다. WSDL 파일로부터 클라이언트 측 Java Stub 소스 파일들과 서버 측 웹 서비스 인터페이스 Java 소스 파일, 웹 서비스 정책 설정 파일을 생성한다.
wsimport 툴은 웹 서비스의 WSDL로부터 다음과 같은 것을 생성한다.
-
SEI, 서비스 클래스와 그 밖의 JAXB 관련 Java 클래스들
-
웹 서비스 정책 설정이 담긴 WSDL 파일, wsit-client.xml 파일
다음은 툴 사용법, 파라미터 및 예제에 대한 설명이다.
-
사용법
Usage: wsimport [options] <WSDL_URI> where [options] include: -b <path> specify jaxws/jaxb binding files or additional schemas (Each <path> must have its own -b) -B <jaxbOption> Pass this option to JAXB schema compiler -catalog <file> specify catalog file to resolve external entity references supports TR9401, XCatalog, and OASIS XML Catalog format -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 -httpproxy:<host>:<port> specify a HTTP proxy server (port defaults to 8080) -keep keep generated files -p <pkg> specifies the target package -quiet suppress wsimport output -s <directory> specify where to place generated source files -target <version> generate code as per the given JAXWS spec version Defaults to 2.2, Accepted values are 2.0, 2.1 and 2.2 e.g. 2.0 will generate compliant code for JAXWS 2.0 spec -verbose output messages about what the compiler is doing -version print version information -wsdllocation <location> @WebServiceClient.wsdlLocation value -clientjar <jarfile> Creates the jar file of the generated artifacts along with the WSDL metadata required for invoking the web service. -generateJWS generate stubbed JWS implementation file -implDestDir <directory> specify where to generate JWS implementation file -implServiceName <name> local portion of service name for generated JWS implementation -implPortName <name> local portion of port name for generated JWS implementation Extensions: -XadditionalHeaders map headers not bound to request or response message to Java method parameters -Xauthfile file to carry authorization information in the format http://username:password@example.org/stock?wsdl -Xdebug print debug information -Xno-addressing-databinding enable binding of W3C EndpointReferenceType to Java -Xnocompile do not compile generated Java files -XdisableAuthenticator disable Authenticator used by JAX-WS RI, -Xauthfile option will be ignored if set -XdisableSSLHostnameVerification disable the SSL Hostname verification while fetching wsdls Examples: wsimport stock.wsdl -b stock.xml -b stock.xjb wsimport -d generated http://example.org/stock?wsdl
-
파라미터
파라미터 설명 -b <path>
외부의 JAX-WS 또는 JAXB 바인딩 파일들을 지정한다.
-B <jaxbOption>
이 옵션을 JAXB 스키마 컴파일러에 전달함을 지정한다.
-catalog <file>
TR9401, XCatalog, OASIS XML Catalog 형식과 같은 외부의 Entity 참조값을 설정할 수 있다. 또한 ant xmlcatalog 타입을 사용할 수도 있다.
-d <directory>
결과 파일이 생성될 디렉터리를 지정한다.
-extension
벤더 특정의 확장성을 명시할 때 사용한다. 상호 운용 및 이식성이 떨어질 수 있다.
-help
도움말을 출력한다.
-httpproxy:<host>:<port>
HTTP 프록시 서버를 지정한다. (기본값: 8080)
-keep
생성되는 파일들을 보존한다.
-p <pkg>
WSDL의 모든 Namespace URI에 대한 Java 패키지 이름을 지정한다.
quiet
출력 메시지들을 보이지 않게 한다.
-s <directory>
생성된 소스 파일들이 놓일 위치를 지정한다. 이 속성을 지정하면 keep 속성이 자동으로 설정된다.
-target <version>
이곳에 지정된 JAXWS 스펙 버전에 따라 코드를 생성한다.
-verbose
Verbose 출력은 true일 때 가능하다. (기본값: false)
-version
버전 정보를 화면에 출력한다.
-wsdllocation <location>
WSDL URI를 이 속성에 명시하면 그 URI 값이 생성되는 SEI(Service Endpoint Interface)와 서비스 인터페이스의 @WebService.wsdlLocation Annotation과 @WebServiceClient.wsdlLocation Annotation에 설정된다.
-clientjar <jarfile>
웹 서비스 호출에 필요한 WSDL 메타 데이터와 함께 생성된 아티팩트의 jar 파일을 생성한다.
-generateJWS
Stub된 JWS 구현 파일을 생성한다.
-implDestDir <directory>
JWS 구현 파일을 생성할 위치를 지정한다.
-implServiceName <name>
생성된 JWS 구현에 대한 서비스 이름의 로컬 부분이다.
-implPortName <name>
생성된 JWS 구현에 대한 포트 이름의 로컬 부분이다.
-
예제
wsimport는 JEUS_HOME/bin/ 디렉터리에 위치한 일반적인 스크립트 파일이다.
wsimport 툴을 실행하는 예는 다음과 같다.
$ wsimport -d build/classes -keep -p fromwsdl.server src/conf/AddNumbers.wsdl
위의 명령어는 AddNumbers.wsdl WSDL 문서로부터 패키지명이 fromwsdl.server인 Portable Artifact를 생성한다. [-keep] 옵션에 의해 생성되는 Java 클래스 소스들은 삭제되지 않는다.