6

WEBサービス初心者のため、間違ったことをたくさん書いていたらすみません…

いくつかの Java クラスを作成し、wsdl を生成したので、ボトムアップ Web サービスができました。すべてを (EAR に) デプロイし、呼び出しました

  http://localhost:7159/chc2/services/WebServiceManager

Web サービスを呼び出します。うまくいき、結果が得られます。

問題は、アプリケーションを他のサーバーにデプロイする必要があり、明らかに URL の最初の部分であるローカル IP が同じではないことです。

その URL は、WSDL で次のように宣言されています。

<wsdlsoap:address location="http://localhost:7159/chc2/services/WebServiceManager"/>

私の質問は: .wsdl でリンクの IP 部分を動的に取得する方法はありますか? Javaでそれを行ういくつかの方法をネットで見つけましたが、Javaを介さずに.wsdlを直接呼び出しています....wsdlでそれを行う方法があると思います。

私が持っている他の構成ファイルは、server-config.wsdd と web.xml です。

ありがとうございました :)

4

4 に答える 4

4

一部のアプリケーション サーバーでは、ダミーのアドレス ロケーションを持つ WSDL を含む Web サービスを送信できます。

<soap:address location="REPLACE_WITH_ACTUAL_URL"/>

デプロイ時に、この値を実際の URL に置き換えます。Glassfishはこの機能を確実にサポートしています (実際には、アドレスの場所の値に好きなものを入れることができると思います。Glassfish は自動的にそれを置き換えます)。このリンクによると、JBossもこの「機能」をサポートしています。HTH。

于 2013-02-17T11:49:09.243 に答える
1

私が理解しているように、あなたの問題は次のとおりです。他のサーバーにWebサービスをデプロイする場合、どのようにWebサービスを呼び出しますか?

サーバーは明らかにノード/クラスターの一部です。たとえばWebSphere上のJavaEEアプリケーション・サーバーでplugin-config.xmlは、着信/発信httpポートを構成できます。

IBM HTTP Webサーバーは、を介してアプリケーションサーバーで構成されますplugin-config.xml。これにより、Webサービスがhttp://:port/webserviceURIとして公開されます。これは、アプリケーションサーバーのIPに関係なくWebサービスを呼び出すために使用するURLです。

于 2013-02-15T03:24:29.857 に答える
1

[servler-name]-servlet.xml に配置された sws タグを使用して、XSD を介して wsdl を動的に生成します。

<sws:dynamic-wsdl
        id="getemployeeDetails"
        portTypeName="EmpService"
        locationUri="/empService"
        targetNamespace="http://www.example.org/">
        <sws:xsd location="/WEB-INF/employee.xsd"/>

    </sws:dynamic-wsdl>

このようにして、サーバーでホストされているときにURLを動的にすることができます

よろしく

アンシュル

于 2013-02-15T08:35:10.883 に答える