2013-03-19 2 views
3

wsdl 파일을 기반으로 Axis2 웹 서비스를 생성해야하는 요구 사항이 있습니다. 이미 wsdl 파일이 있습니다. 이전에 wsdl2java를 사용하여 웹 서비스 클라이언트를 만들었지 만 제공된 WSDL 파일을 사용하여 웹 서비스를 만드는 방법을 모르겠습니다. 누군가가 올바른 명령이나 옵션을 사용하여 나를 도울 수 있습니까?WSDL 파일에서 웹 서비스 (웹 서비스 클라이언트 아님) 만들기

또한 WAS 6.1 및 JBoss 5.1.0 GA에 게시해야합니다. 모든 작업을 수행해야합니다.

+0

http://axis.apache.org/axis2/java/core/docs/adv-userguide.html 난 우리가 WSDL2Java의 명령에서 몇 가지 옵션을 사용하여 일부 골격 코드를 생성 할 수 있다고 들었습니다. 그 요구 사항을 여기에서 사용할 수 있습니까? –

+0

나는 이것을 시도한 사람이 없다는 것에 놀랐다. 이것은 아니오입니다. 1 웹 사이트에서 기술적 인 질문과 답변을 찾았지만 이에 대한 응답은 없습니다. 제발 도와주세요. –

답변

5

답변을 얻을 수 있습니다. 다른 참조 용으로 여기에서 업데이트하십시오.

당신은 WSDL을 가지고 자바 클래스로부터 WSDL를 만들 필요가 없습니다 그러나 경우,

우리는 WSDL로 시작하는 서비스를 작성 및 배포, WSDL부터의 Java2WSDL 도구를 사용하시기 바랍니다 WSDL을 작성하십시오. 이미 알고 있겠지만 서비스에 대한 WSDL 설명은 해당 웹 서비스의 정확한 정의를 제공합니다. Axis2는 WSDL을 처리하고 대부분의 작업을 수행하는 Java 코드를 생성 할 수 있습니다. 서버 측에서는이를 스켈레톤이라고하고 클라이언트 측에서는 스텁이라고합니다.

  1. 는 골격 코드를 생성 :

    Axis2를 사용하여 웹 서비스를 작성하는이 방법은 네 단계를 포함한다.

  2. 비즈니스 논리를 추가하십시오.
  3. 웹 서비스에 대한 * .aar 아카이브 (축 아카이브)를 생성하십시오.
  4. 웹 서비스를 배포하십시오.

1 단계는 : 해골 코드

골격과 필요한 클래스를 생성하려면, 당신은 Axis2와에서 제공하는 WSDL2Java의 도구를 사용하여 생성합니다. 이 도구는 배포판의 bin 디렉토리에 있으며 제공된 스크립트 (.bat 또는 .sh)를 사용하여 실행할 수 있습니다. 이 도구의 매개 변수 목록은 Axis2 참조 문서에서 찾을 수 있습니다.

이 예제에서 wsdl2java 도구의 매개 변수는 다음과 같습니다. 이 예제에서는 xmlbeans를 데이터 바인딩 프레임 워크로 사용하고 있으며 생성 된 코드는 "samples"디렉토리에 저장됩니다.

wsdl2java.sh -uri ../samples/wsdl/Axis2SampleDocLit.wsdl -ss -sd -d xmlbeans 
-o ../samples -p org.apache.axis2.userguide

이는 "샘플/src에"디렉토리에 필요한 클래스를 생성하고 것 "샘플/자원/schemaorg_apache_xmlbeans"디렉토리에있는 스키마 클래스. 이들은 소스 파일이 아니며 생성 된 클래스를 컴파일하기 위해 클래스 경로에서 사용할 수 있어야합니다.

2 단계 : 이제 골격 클래스에서 비즈니스 로직을 작성해야 비즈니스 로직

를 구현합니다. "samples/src/org/apache/axis2/userguide"디렉토리에서 생성 된 클래스 중 골격 클래스 -Axis2SampleDocLitServiceSkeleton.java를 찾을 수 있습니다. 아래 그림과 같이 skeleton에서 echoString (..) 메소드를 채우십시오. "samples/wsdl"디렉토리의 Axis2SampleDocLit.wsdl에는 echoString, echoStringArray, echoStruct의 세 가지 작업이 있습니다.그들이 가득 할 때 다른 사람이 어떻게 보이는지 확인하려면, 참조 코드 목록은 Axis2SampleDocLitService 서비스

public org.apache.axis2.userguide.xsd.EchoStringReturnDocument 
    echoString(org.apache.axis2.userguide.xsd.EchoStringParamDocument param4) throws Exception { 
    //Use the factory to create the output document. 
    org.apache.axis2.userguide.xsd.EchoStringReturnDocument retDoc = 
      org.apache.axis2.userguide.xsd.EchoStringReturnDocument.Factory.newInstance(); 
    //send the string back. 
    retDoc.setEchoStringReturn(param4.getEchoStringParam()); 
    return retDoc; 

3 단계 :

Axis2는 서비스가 서비스 아카이브로 번들 할 필요가 아카이브 파일을 만듭니다. 다음 단계는 클래스를 .aar (axis2 아카이브)에 패키지화하고 Axis2에 배포하는 것입니다. 코드로 생성 된 개미 파일이 있습니다. Axis2 서비스 아카이브가 생성됩니다. 그러나 개미를 사용하지 않으려는 경우 다음 단계를 사용하여 아카이브를 만들 수 있습니다.

생성 된 코드를 컴파일하십시오.
"resources/schemaorg_apache_xmlbeans"xmlbeans 클래스를 클래스 폴더에 복사하십시오.
생성 된 파일 중에는 Axis2 서비스의 배포 설명자 인 services.xml 파일이 있습니다. [자세히 알아보기] 에 자원/service.xml을 복사 META-INF/services.xml에
컨텐츠를 사용하여 아카이브를 만듭니다 (자신의 service.xml 파일을 쓰기 Axis2와의 기본 API를 사용하여 작성 웹 서비스의 하위 섹션을 참조하십시오)

을 클래스 폴더의. 디렉토리를 클래스 폴더로 변경하고 jar -cf service-name.aar을 실행하여 아카이브를 작성하십시오.

4 단계 : 배포 웹 서비스

서비스는 단순히 당신의 서블릿의 "/ 웹 어플리케이션/축 2/WEB-INF"의 "서비스"디렉토리에 ".aar"파일을 드롭하여 배포 할 수 있습니다

컨테이너. Apache Tomcat을 서블릿 컨테이너로 사용하는 것이 좋습니다. 서비스 디렉토리는 axis2.war이 Tomcat에 의해 분해 된 후에 만 ​​사용할 수 있습니다. 그러나 가장 쉬운 방법은 axis2.war이 webapps 디렉토리에 복사 된 후 Tomcat을 시작하는 것입니다 (아직 시작하지 않은 경우). Axis2 웹 응용 프로그램 (

http://localhost:8080/axis2
)의 홈 페이지에서 "Services"링크를 확인하고 Axis2SampleDocLitService가 배포 된 서비스 아래에 표시되는지 확인하십시오.

Axis2의 hotupdate/hotdeployment 기능을 지원하기 위해 확장 된 구성을 사용하여 WebLogic 및 WebSphere 응용 프로그램 서버에 Axis2 WAR를 배포하는 것이 좋습니다. 자세한 내용은 Application Server 특정 구성 안내서를 참조하십시오.

참고 : Axis2를 사용하면 Axis2 웹 응용 프로그램의 관리 모듈에있는 "서비스 업로드"도구를 사용하여 웹 서비스를 손쉽게 배포 할 수 있습니다.

은 전체 기사는 다음 링크를 참조하십시오 (자세한 내용은 웹 관리 설명서를 참조하십시오) :

관련 문제