2012-11-30 4 views
1

java2wsdl을 생성 할 때 extraClasses 매개 변수를 전달하고 싶습니다. 다음은 Ant 태스크입니다.java2wsdl을 호출 할 때 Ant 스크립트에 extraClasses 옵션을 추가하는 방법은 무엇입니까?

<target name="rews.all" depends="xews.aar"> 
    <echo message="${axis2.classpath}" /> 
    <delete file="${build.dir}/wsdl/XEWS.wsdl" /> 
    <taskdef name="java2wsdl" 
      classname="org.apache.ws.java2wsdl.Java2WSDLTask" 
      classpathref="axis2.classpath">     
    </taskdef> 
    <java2wsdl className="com.dd.xews.XEWS" 
       outputLocation="${build.dir}/wsdl/" 
       targetNamespace="http://xews.dd.com/" 
       schemaTargetNamespace="http://xews.dd.com"> 
     <classpath> 
      <pathelement path="${axis2.classpath}"/> 
      <pathelement location="${build.dir}/classes"/> 
      <pathelement location="${vendor.dir}/AWS/lib/aws-java-sdk-1.2.1.jar"/> 
     </classpath>    
    </java2wsdl> 
    <copy todir="${build.dir}/" file="${build.dir}/wsdl/XEWS.wsdl"/> 
</target> 

행운을 제외한 모든 것을 시도했습니다.

누구나 구문을 알고 있습니까? 여기에 extraClasses를 어떻게 추가합니까?

<java2wsdl className    ="com.dd.xews.XEWS" 
      outputLocation  ="${build.dir}/wsdl/" 
      targetNamespace  ="http://xews.dd.com/" 
      schemaTargetNamespace ="http://xews.dd.com" 
      extraClasses   ="com.dd.xews.XEWS.Emailer.java"> 
</java2wsdl> 

어떻게 java2wsdl Ant task 지원 않는 속성 을 찾을 :

Test1 파일은 (실패)

이 오류 java2wsdl doesn't support the "extraClasses" attribute와 함께 실패?

내 Axis2 버전은 1.5.4입니다.

답변

1

다음은 개미 작업의 소스 코드 인 Java2WSDLTask에 대한 링크입니다.

#setExtraClasses 문자열 매개 변수를 허용하고 쉼표 구분 기호를 사용하여 분할하려고합니다. 그래서 이것은 Axis2는 이전 버전에서 작동하지 않습니다

<extraClasses>com.test.Class1,com.test.Class2</extraClasses>

편집

같은 것을 통과 시도 (더 정확하게는 - 이전 버전은 1.6.0). 그것은 'extraClasses'속성이 배열 유형으로 지정 되었기 때문입니다. Ant 유형 속성은 분명히 Ant 작업 속성으로 지원되지 않습니다. 이 JIRA 이슈에서 모든 세부 사항을 찾을 수 있습니다 : AXIS2-4634: Ant task Java2WSDLTask does not allow the use of extraClasses

가장 쉬운 방법은 Axis2 JAR을 최신 1.6.x 버전으로 업그레이드하는 것입니다. 일부 프로젝트 관련 이유로 Axis2 버전에 문제가있는 경우 (필자는이 버전이 없어야 함), 최신 버전 (위의 GrepCode에 대한 링크 참조)에서 Java2WSDLTask의 소스 코드를 가져 와서 프로젝트의이 작업 (다른 클래스 이름 또는 패키지를 사용해야 함)을 사용하고있는 것처럼 Ant 태스크로 사용하십시오. 그것을 제외하고는 'extraClasses'속성을 사용할 수 있습니다.

+0

위의'Test1'을 참조하십시오. 실패했습니다. 다른 생각? – Danijel

+0

.java 확장자가 없으면 클래스 이름이어야한다고 생각합니다. 예 : extraClasses = "com.dd.xews.XEWS.Emailer"; 이 정적 인 내부 클래스입니까? –

+0

오류 :'java2wsdl은 "extraClasses"속성을 지원하지 않습니다. – Danijel

0

Axis2 1.4 이상은 "-xc"속성을 지원합니다. 다음은 내가 한 일입니다.