1

CXF (wsdl から pom.xml で Web サービスを自動生成する) を JBoss (Eclipse ide) で使用していますが、Web アプリケーションから Web サービスにアクセスする際に問題があります。このリソースを見つけました: http://blog.progs.be/?p=92しかし、WSDL_LOCATION = cl.getResource( "my/progam/pack/wsdl/myService.wsdl" ); を使用するのに本当に苦労しています。私のコードで正しく動作するように。

wsdl を src/main/wsdl に配置し、次の行を .classpath ファイルに追加しました: classpathentry kind="src" path="src/main/wsdl"

また、フォルダー my,program,pack,wsdl を作成し、wsdl をその場所にドロップしたので、アクセス可能になりました。

ただし、classloader.getResource 呼び出しは常に null を返します。

getResource( "/wsdl/myService.wsdl" ) を指定すると、null は返されませんが、必要なものではなく、完全なファイル パスが表示されると思います (URL の一部に wsdl ファイルへのパスがすべて含まれていることを考慮すると、 jboss サーバー ディレクトリを経由し、WEB-INF ディレクトリが含まれます。

.classpath ファイルが正しく設定されていませんか、それとも他に何か不足していますか?

WSDL の場所が正しくない場合、次のように常に ClassCast 例外がスローされます。

java.lang.ClassCastException: org.apache.cxf.jaxws.ServiceImpl at javax.xml.ws.Service.(Service.java:81)

4

1 に答える 1

1

私の wsdls はsrc/main/wsdl(...)

これらのファイルをクラスパスで取得するには、POM でディレクトリをリソースとして宣言する必要があります。

<project>
  ...
  <build>
    <resources>
      <resource>
        <directory>src/main/resources</directory>
      </resource>
      <resource>
        <directory>src/main/wsdl</directory>
      </resource>
    </resources>
    ...
  </build>
</project>

これで、WSDL がclassesディレクトリの下に配置されるはずです。

于 2010-03-30T13:39:35.827 に答える