명령행에서 WSDL2WebService 도구를 사용하면
IBM® WebSphere® 런타임 환경을 사용하는
WSDL 파일에서 웹 서비스를 생성할 수 있습니다.
구문
명령행을 설정했다면 다음 구문과 인수를 사용하여
도구를 실행할 수 있습니다.
스켈레톤 웹 서비스 구현을 작성하려면
다음 구문을 사용하십시오.
- Windows: WSDL2WebService
[<선택 인수>] -createService <ServiceName> -project <ProjectDir> <WSDL
URI>
- Linux: WSDL2WebService.sh
[<선택 인수>] -createService <ServiceName> -project <ProjectDir> <WSDL
URI>
참고: 마지막 인수는 <WSDL
URI>여야 합니다.
웹 서비스 가능 아카이브를 작성하려면 다음 구문을 사용하십시오.
- Windows: WSDL2WebService
[<선택 인수>] -createEar <File.ear> -project <ProjectDir>
- Linux: WSDL2WebService.sh
[<선택 인수>] -createEar <File.ear> -project <ProjectDir>
인수: 스켈레톤 웹 서비스 구현
참고: -input 옵션은
제거되었습니다. 가져온 XSD 및 WSDL 문서는 모두 <WSDL URI>로 지정된
WSDL 파일과 동일한 디렉토리에 위치해야
합니다.
필수 인수:
- -createService <ServiceName>
- 웹 서비스에 고유 이름을 지정합니다. 이 이름은 웹 서비스의 컨텍스트 루트로 사용됩니다.
- -project <ProjectDir>
- 결과를 출력할 대상 프로젝트 디렉토리의 완전한 경로를
지정합니다. 이 디렉토리가 존재하지 않으면 자동으로
작성됩니다. 기본값은 현재 디렉토리입니다.
- - <WSDL URI>
- 웹 서비스를 기술하는 WSDL 파일의 위치를 지정합니다.
원격 위치나 로컬 파일 시스템을 지정할 수 있습니다.
선택 인수:
- -host <HostName:PortNumber>
- 웹 서비스를 배치할 대상 호스트 이름과 포트 번호를
지정합니다. 기본값은 localhost:6080입니다.
- -genResolver
- 가져오기 분석기를 생성합니다. 이 분석기는 가져온 XSD(xml 스키마) 파일의
모든 정보를 포함합니다. 이 매개변수에 대한 자세한 내용은
참고 1을 참조하십시오.
- -clientType <J2SE | Application | Servlet | EJB>
- 지정된 클라이언트 유형에 사용할 스켈레톤 구현 클래스를
생성합니다. 이 인수는 -genMain 인수를 사용할 때만 지정할 수
있습니다. -server-side-only 인수를 이미 지정한 경우에는
이 인수를 사용할 수 없습니다.
- -clientEJBName <EJB 클라이언트 파일 이름>
- 클라이언트 EJB 파일의 정보를 사용하여 클라이언트측
webservicesclient.xml 디스크립터에 클라이언트 애플리케이션의
이름을 구성합니다.
이 인수를 지정하지 않을 경우 클라이언트 EJB 파일에 추가하기 전에
webservicesclient.xml을 수동으로 편집해야 합니다.
- -genMain <기본 클래스 이름>
- 생성할 기본 클래스의 이름을 지정합니다. 이 인수는 -clientType 인수를 사용할 때만
지정할 수 있습니다. -server-side-only 인수를 이미 지정한 경우에는
이 인수를 사용할 수 없습니다.
- -contextRoot<ContextRoot>
- 웹 서비스의 컨텍스트 루트를 지정합니다. 기본값은 <ServiceName>입니다.
- -type <EJB | Bean>
- 구체적으로 Java™ Bean 또는 EJB를 지정하여 해당 구현에 대한 템플리트를 생성합니다.
기본값은 Java Bean에 대한 구현을 작성하는 것입니다.
- -NStoPkg <목록>
- 생성된 Java 템플리트 클래스의 기본 패키지 이름을 대체할
namespace=package 맵핑 목록을 공백으로 구분하여 지정합니다.
- -fileNStoPkg <propertiesFile>
- namespace=package 맵핑이 포함된 특성 파일의 완전한 경로 이름을
지정합니다.
참고: 이 인수를
사용할 때는 모든 네임스페이스 참조의 콜론(':')을 백슬래시로 이스케이프
처리해야 합니다(예: http\://my.namespace.WSDL2WebService).
콜론을 이스케이프 처리하지 않은 모든 네임스페이스 참조는 무시됩니다.
- -all
- WSDL 문서에 정의된 모든 복합 유형에 대한 Java 클래스를
생성합니다. 기본값은 WSDL 문서에서 정의 및 참조되는 클래스만 생성하는
것입니다. 이 인수는 -createService 인수와 조합하여
사용하십시오.
- -server-side-only
- 서버측 헬퍼 클래스만 생성합니다. 기본값은 서버측 헬퍼 클래스와 클라이언트측
헬퍼 클래스를 모두 생성하는 것입니다.
- - wsSecDir <디렉토리>
- WS-Security 정보를 사용하여 생성되는 배치 디스크립터를 구성할
템플리트가 포함된 디렉토리의 완전한 경로를 지정합니다.
클라이언트측 바인딩을 생성할 경우 디렉토리에 ibm-webservices-bnd.xmi,
ibm-webservices-ext.xmi 파일과 ibm-webservicesclient-bnd.xmi 및 ibm-webservicesclient-ext.xmi 파일이
포함되어야 합니다.
- -clientEJBName <EJB 클라이언트 파일 이름>
- 클라이언트 EJB 파일의 정보를 사용하여 클라이언트측
webservicesclient.xml 디스크립터에 클라이언트 애플리케이션의 이름을 구성합니다.
이 인수를 지정하지 않을 경우 클라이언트 EJB 파일에 추가하기 전에
webservicesclient.xml을 수동으로 편집해야 합니다.
- -user
- 원격 WSDL에 액세스할 사용자 이름을 지정합니다.
- -password
- 원격 WSDL에 액세스할 비밀번호를 지정합니다.
- -verbose
- 도구를 실행하면 추가 정보를 표시합니다.
- -help
- 도움말 정보를 표시합니다.
- -overwrite
- 이 인수를 지정하면 기존의 서비스 디렉토리를 겹쳐씁니다.
인수: 웹 서비스 가능 아카이브
필수
인수:
- -createEar <TargetFile.ear>
- 대상 EAR 파일의 완전한 경로 이름을 지정합니다.
지정한 경로 이름이 존재하지 않으면 자동으로
작성됩니다. 지정한 경로 이름이
이미 있을 경우 -add 옵션에 지정한 웹 모듈이
적절히 추가/업데이트됩니다.
- -project <ProjectDir>
- 아카이브할 웹 서비스 구현이 하나 이상 포함된 프로젝트 디렉토리의
완전한 경로 이름을 지정합니다.
해당 웹 서비스 구현은
-createService 인수와 함께 도구를 실행하여 생성된 것일 수 있습니다.
선택
인수:
- -add <서비스>
- 아카이브에 추가할 웹 서비스 이름 목록을 공백으로 구분하여
지정합니다. 이러한 이름은 지정된 프로젝트 아래에 이미 작성된
웹 서비스 구현과 일치해야 합니다. 이 옵션을 사용하지 않을 경우
이러한 디렉토리가 모두 추가됩니다. 지정한 이름 중 하나를 갖는
웹 서비스 모듈이 EAR 파일에 존재할 경우, 해당 웹 서비스 모듈이
디렉토리의 최근 내용으로 업데이트됩니다.
- -verbose
- 도구를 실행하면 추가 정보를 표시합니다.
- -help
- 도움말 정보를 표시합니다.
참고: -deploy 옵션은
지원되지 않습니다.
- -rootModule <루트 모듈 기본 이름>
- 동일한 유형의 개별 웹 서비스를 단일 모듈로
병합하고 집계합니다. 웹 모듈의 이름은 <루트 모듈 기본
이름>_WEB.war로 지정되며 EJB 모듈의 이름은 <루트 모듈 기본
이름>_EJB.jar로 지정됩니다.
- -host <HostName:PortNumber>
- 모든 웹 서비스의 호스트 이름과 포트 번호를 바꿉니다. 이 옵션은
-rootModule과 조합해서만 사용해야 합니다.
중요: WSDL2WebService 명령을 사용하여
작성하는 EJB 웹 서비스가 EAR 파일을 로컬로 가져오는 WSDL 파일 세트를 사용할 경우, EJB 웹 서비스는 생성되지만
EAR 파일을 작업공간으로 가져와서 단위 테스트 환경 또는 원격 서버에 배치한 후에 서버를 시작하면
예외가 발생합니다. 이 예외는 라우터 웹 프로젝트에
WSDL이 없어서 발생하는 것입니다. 이 오류를 방지하려면
다음 중 하나를 수행하십시오.
- 관리 콘솔을 사용하여 독립형 WebSphere Application
Server에 배치하십시오.
- 모놀리식(monolithic) WSDL을 사용하십시오. 즉 -splitWsdl 인수를 사용하지 마십시오.
- EJB 프로젝트의 META-INF/wsdl 디렉토리에 있는
모든 WSDL 파일을 라우터 웹 프로젝트의 WEB-INF/wsdl로
직접 복사하십시오.
참고 1:
-genResolver 인수만
선택하여 원격에 있는 절대 참조 로컬 위치를 가져오면, 웹 서비스를 실행할 때 인터넷에 반드시 연결하지 않아도 됩니다. 이는
로컬 또는 상대적 가져오기에 사용할 수 없습니다. 또한 -genResolver
옵션은 XSD 파일을 가져오는 WSDL 가져오기가 포함된 WSDL 파일에서
사용할 수 없습니다. 예를 들어, 다음과 같이 WSDL 가져오기가 스키마 요소 밖에
있는 경우
<import location="a.xsd" namespace="http://namespaceA"/>
<유형>
<schema xmlns="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://namespaceA"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
아래와 같이 변경하여 스키마 요소 안에
스키마 가져오기를 포함시키십시오.
<유형>
<schema xmlns="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://namespaceA"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<import schemaLocation="a.xsd" namespace="http://namespaceA"/>