バックエンドに古いRPC /エンコードされたWSDL Webサービスを使用する必要があります。最初はApache CXFとJAX-WSを使用してみましたが、JAX-WS wsimport
ツールはrpc/enoded WSDLを使用しません。
[エラー] rpc/encoded wsdlsはJAXWS 2.0ではサポートされていません。
この仕事にJAX-RPCを使用することにも疑問があります。 Axis 1.4は5年前のツールです。
現在、これらの3つのオプションが表示されます。
javax.xml.ws.Dispatch
=SOAPを送受信し、どういうわけかそれを解析します 1つの例これらはどちらも良い音ではないので、良いリードを与えて、何をすべきか、そしてそれを解決する方法を考えていただければ幸いです。
私の場合は、encodedからliteralへのWSDLの手動編集で解決されました(基本的に、操作の入力と出力の下でuse="literal"
が唯一の置き換えでした)そして、Apache CXFでスタブを生成できました。エンドポイントがRPC /エンコードされたパースを正確に解析しておらず、RPC /エンコードされた仕様XMLをWSDLに対して検証できなかったため、それは可能でした。
Axis 1.4はうまくいくかもしれませんが、その小さなWSDLハックでApache CXFを使用する方がより良い方法かもしれません。
参考までに、今回はJAX-RPCとAxis 1.4の使用を選択しました。クライアントコードを生成しましたが、サービスがアップグレードされたときに、それをJAX-WS実装に置き換えることができれば幸いです。
誰かがAxis 1.4を使用したい場合(まあ、「いいね」はここでは適切な単語ではありません;-)、適切なクラスとポートインターフェイスを生成できるMavenプラグインを次に示します。
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>axistools-maven-plugin</artifactId>
<version>1.4</version>
<executions>
<execution>
<id>generate-sources</id>
<phase>generate-sources</phase>
<goals>
<goal>wsdl2Java</goal>
</goals>
<configuration>
<!-- Use your .wsdl location here-->
<sourceDirectory>${basedir}/src/main/resources/wsdl</sourceDirectory>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
<!-- Here the libraries that you need to call the Axis WS client -->
<dependencies>
<dependency>
<groupId>org.Apache.axis</groupId>
<artifactId>axis</artifactId>
<version>1.4</version>
</dependency>
<dependency>
<groupId>org.Apache.axis</groupId>
<artifactId>axis-jaxrpc</artifactId>
<version>1.4</version>
</dependency>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>commons-discovery</groupId>
<artifactId>commons-discovery</artifactId>
<version>0.5</version>
</dependency>
<dependency>
<groupId>axis</groupId>
<artifactId>axis-wsdl4j</artifactId>
<version>1.5.1</version>
</dependency>
<dependency>
<groupId>org.Apache.axis</groupId>
<artifactId>axis-saaj</artifactId>
<version>1.4</version>
</dependency>
<!-- activation+mail: To stop Axis generating WARNING about "Attachment support being disabled" -->
<dependency>
<groupId>javax.activation</groupId>
<artifactId>activation</artifactId>
<version>1.1.1</version>
</dependency>
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4.7</version>
</dependency>
</dependencies>