WSDL2WebService 도구 참조

명령행에서 WSDL2WebService 도구를 사용하면 IBM® WebSphere® 런타임 환경을 사용하는 WSDL 파일에서 웹 서비스를 생성할 수 있습니다.

구문

명령행을 설정했다면 다음 구문과 인수를 사용하여 도구를 실행할 수 있습니다.

스켈레톤 웹 서비스 구현을 작성하려면 다음 구문을 사용하십시오.

참고: 마지막 인수는 <WSDL URI>여야 합니다.

웹 서비스 가능 아카이브를 작성하려면 다음 구문을 사용하십시오.

인수: 스켈레톤 웹 서비스 구현

참고: -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.xmiibm-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"/>

피드백