2016-05-11 8 views
0

こんにちは私は、与えられたwsdl(wsdl2Java)からJavaを生成し、wsdl(java2ws)に生成されたコードを生成するサンプルプロジェクトを作成しています。 のWSDL2Javaが正常に動作しているが、Java2WSDLの中で、私は、問題の原因は何私のANTファイルorg.apache.cxf.tools.common.ToolException:クラスの読み込みに失敗する

Buildfile: D:\sarvan\java\webservice\java2wsVSws2java\build.xml 
cxfWSDLToJava: 
[echo] **********Genarating WSDLToJava*********** 
cxfJavaToWSDL: 
[echo] ************Genarating JavaToWSDL************* 
[java] JavaToWS Error: org.apache.cxf.tools.common.ToolException: Fail to load class : D:\sarvan\java\webservice\java2wsVSws2java\build \genClasses/com/saravana/webservice/services/CalServiceService.class 
compile-all: 
[javac] D:\sarvan\java\webservice\java2wsVSws2java\build.xml:54: warning: 'includeantruntime' was not set, defaulting to  build.sysclasspath=last; set to false for repeatable builds 
[javac] Compiling 9 source files to D:\sarvan\java\webservice \java2wsVSws2java\build\genClasses 
BUILD SUCCESSFUL 
Total time: 5 seconds 

に以下のような例外を取得しています、すべてのヘルプしてください! マイANT:

<target name="cxfJavaToWSDL" depends="cxfWSDLToJava"> 
<echo> ************Genarating JavaToWSDL************* </echo> 
    <java classname="org.apache.cxf.tools.java2ws.JavaToWS" fork="true"> 
    <arg value="-wsdl"/> 
     <arg value="-classdir"/> 
     <arg value="${classes}"/> 
    <arg value="-cp"/> 
     <arg value="${classes}/**/CalServiceService.class"/> 
     <arg value="-o"/> 
    <arg value="${lib.dir}/CalServiceService.wsdl"/> 
    <arg value="${classes}/com/saravana/webservice/services/CalServiceService.class"/> 
    <classpath> 
     <path refid="class.path"/> 
     <pathelement location="${classes}/**/*.class"/> 
    </classpath> 
    </java> 

<target name="cxfWSDLToJava" > 
    <echo message="**********Genarating WSDLToJava***********"/>  
    <java classname="org.apache.cxf.tools.wsdlto.WSDLToJava" fork="true"> 
    <arg value="-client"/> 
    <arg value="-d"/> 
    <arg value="${genCode.dir}"/> 
    <!-- <arg value="-b"/> 
    <arg value="./async_binding.xml"/> --> 
    <arg value="${lib.dir}/CalService.wsdl"/> 
    <classpath> 
    <path refid="class.path"/> 
    </classpath> 
    </java> 
</target> 
<target name="compile-all" depends="cxfJavaToWSDL"> 
    <javac debug="on" destdir="${classes}"> 
     <src path="${genCode.dir}"/> 
     <classpath refid="class.path"/> 
    </javac> 
</target> 

とANTの私のプロパティとクラスパス

<project name="javawsVSwsTojava" default="compile-all" basedir="."> 
<property name="lib.dir" location="./WebContent/WEB-INF/lib" /> 
<property name="genCode.dir" location="./Java Resources/generatedcode" /> 
<property name="classes" location="./build/genClasses" /> 
<property name="wsdl.location" location="" /> 
<path id="class.path"> 
    <fileset dir="${lib.dir}/dependencies"> 
     <include name="**/*.jar" /> 
    </fileset> 
</path> 

答えて

0

をあなたがそれを動作させるためにあなたのantファイルを少し変更する必要がありそうです。 SEIの我々はjava2wsをしたい場合にはそれだけのためにクラスパスを、私たちはクラスファイル(コンパイル)を与える必要がされてあなたのjava2wsdlタスク

<java classname="org.apache.cxf.tools.java2ws.JavaToWS" fork="true"> 
    <arg value="-wsdl"/> 
     <arg value="-classdir"/> 
     <arg value="${classes}"/> 
    <arg value="-cp"/> 
     <arg value="${classes}/"/> 
     <arg value="-o"/> 
    <arg value="${lib.dir}/CalServiceService.wsdl"/> 
    <arg value="com.saravana.webservice.services.CalServiceService"/> 
    <classpath> 
     <path refid="class.path"/> 
     <pathelement location="${classes}/**/*.class"/> 
    </classpath> 
    </java> 
1

でこれを試してみて、Javaのを与えるべきではありません(SRC)

<target name="cxfJavaToWSDL" depends="compile-all"> 
    <echo> ************Genarating JavaToWSDL************* </echo> 
    <java classname="org.apache.cxf.tools.java2ws.JavaToWS" fork="true"> 
     <arg value="-wsdl" /> 
     <arg value="-o" /> 
     <arg value="${lib.dir}/CalServiceService.wsdl" /> 
     <arg 
      value="com.saravana.webservice.services.CalService" /><!--you should give fully qualified class name here --> 
     <classpath> 
      <path refid="class.path" /> 
     </classpath> 
    </java> 
</target> 

と、私たちはこれは私の問題を解決し

<path id="class.path"> 
<pathelement location="${classes}"/> 
    <fileset dir="${lib.dir}/dependencies"> 
     <include name="**/*.jar" /> 
    </fileset> 
</path> 

クラスパスにコンパイルされたクラスや依存のjarファイルを追加する必要があります。

関連する問題