35

バックエンド用に古い学校のRPC/エンコードされたWSDLWebサービスを使用する必要があります。最初はApacheCXFとJAX-WSを使用しようとしましたが、JAX-WSwsimportツールはrpc/enodedWSDLを使用しません。

[エラー]rpc/encodewsdlsはJAXWS2.0ではサポートされていません。

JAX-RPCはかなり時代遅れであるため、このジョブにJAX-RPCを使用することについても疑問があります。Axis1.4は5年前のツールです。

現在、次の3つのオプションが表示されます。

  1. JAX-WSjavax.xml.ws.Dispatchを使用してSOAPを送受信し、なんらかの方法で解析します。一例
  2. JAX-RPCを使用して、古いテクノロジーを使用することで悪いカルマを獲得し、
  3. それをすべて手動で行い、後で自分を憎む。

どちらもあまり良く聞こえないので、良いリードを与えて、何をすべきか、そしてそれをどのように解決するかを考えていただければ幸いです。

4

2 に答える 2

24

アップデート

私のケースは、WSDL をエンコードされたものからリテラルに手動で編集することで解決され(基本的には操作の下で入力と出力use="literal"が唯一の置き換えでした)、Apache CXFでスタブを生成できました。エンドポイントが RPC/encoded を正確に解析しておらず、RPC/encoded 仕様の XML を WSDL に対して検証できなかったため、それが可能でした)。

Axis 1.4 でうまくいくかもしれませんが、Apache CXF を WSDL のちょっとしたハックで使用する方が良い方法かもしれません。


[古い回答]

参考までに、今回は JAX-RPC と Axis 1.4 を使用することにしました。私はクライアント コードを生成しました。サービスがアップグレードされたときに、それを JAX-WS 実装に置き換えることができれば幸いです。

于 2011-09-06T13:11:28.423 に答える
1

誰かが 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>
于 2018-11-22T13:23:25.770 に答える