1.4. 注意制限事項

1.4.1. 注意事項

1.4.1.1. 同一プロジェクトに複数Webサービスを生成

プロジェクトに既に別のWebサービスが生成されている場合は、同一プロジェクトに複数Webサービスを生成することができません。

1.4.1.2. 「Webサービスの属する名前空間URI」について

「Web サービスの属する名前空間URI」の値に基づいてパッケージを生成するため、長すぎる名前空間名を指定すると、 全体のファイルパス長がWindowsOS の制限となる256文字を超えることがあります。

1.4.1.3. WSDLファイルには別のファイルをインポートしようとする場合

WSDLファイル中に別のファイルをインポートしている記述がある場合、インポートされるファイルをwsdlフォルダをルートにしての相対パス上に置く必要があります。
例えば、以下のような場合、
--------wsdlファイル--------
…
  <types>
    <xsd:schema>
      <xsd:import namespace="http://packagename/" schemaLocation="ext/TestServiceService_schema1.xsd"/>
    </xsd:schema>
  </types>
…
--------wsdlファイル--------
      
「TestServiceService_schema1.xsd」ファイルを<ワークスペース>\<プロジェクト>\WebContent\WEB-INF\wsdl\ext フォルダ配下に置きます。
ファイルをインポートできるタグは以下の通りです:
その後、WSDL ファイルの解析エラーが解消されない場合は、WSDLファイルの右クリックメニュー 検証 を選択してください。

1.4.1.4. web.xml(ejb-jar.xml)について

既存のプロジェクトにWebサービスを生成する場合、既存の web.xml(ejb-jar.xml)の内容は変更されます。 以下の変更内容に該当する場合、生成する前にバックアップをとって、生成後に必要に応じて該当の記述をコピーして下さい。

1.4.1.5. WSDLファイルを生成する場合

以下の状況で右クリックメニュー WSDLファイルを生成 を選択すると、「対象外のプロジェクトが指定されています」エラーが発生する可能性があります。
1. 選択したプロジェクトのパッケージ名はwizard.xmlから取得したパッケージ名と一致しない。(例:プロジェクトのパッケージ名を変更したことがあります。)
2. 選択したプロジェクトのwizard.xmlからパッケージ名を取得できず、且つプロジェクトのパッケージ名はデフォルトパッケージ名と一致しない。(例:V8.1で生成したプロジェクトをデフォルトパッケージの違いワークスペースにインポートしました。)
        ※ デフォルトパッケージは『パッケージ名変更の設定』を参照してください。
wizard.xmlを以下のように修正すれば解決できます。
<?xml version="1.0" encoding="UTF-8"?>
<webservice version="2.0" xmlns="http://www.nec.co.jp/WebOTX/webservice/director" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.nec.co.jp/WebOTX/webservice/director/wizard.xsd">
  <server>
  …
    <setting name="WebservicePackage" value="パッケージ名"/>
  …
  </server>
</webservice>
      
※ パッケージ名はプロジェクトのパッケージです。(例:sample.hello.helloservice)

1.4.1.6. WSDLファイルから作成したクライアントについて

事前に生成したWSDLをそのまま利用してクライアントを作成した場合、作成したクライアントに手を加えずに実行できません。
生成したクライアントファイル(例:sample.hello.HelloService_Service)のWSDLファイルのアドレスを下記のように修正する必要があります。
@WebServiceClient(name = "HelloService", targetNamespace = "http://sample/Hello", wsdlLocation = "http://localhost/Hello/helloservice?wsdl ")
public class HelloService_Service
    extends Service
{

    private final static URL HELLOSERVICE_WSDL_LOCATION;
    private final static WebServiceException HELLOSERVICE_EXCEPTION;
    private final static QName HELLOSERVICE_QNAME = new QName("http://sample/Hello", "HelloService");

    static {
        URL url = null;
        WebServiceException e = null;
        try {
            url = new URL("http://localhost/Hello/helloservice?wsdl");
        } catch (MalformedURLException ex) {
            e = new WebServiceException(ex);
        }
        HELLOSERVICE_WSDL_LOCATION = url;
        HELLOSERVICE_EXCEPTION = e;
    }
    ...
}
      

Caution
ホスト名およびポート番号は環境に合わせて変更してください。


1.4.1.7. 配備記述子について

Webサービスの配備記述子に対して、「文書に対する文法制約 (DTD または XML スキーマ) が検出されませんでした。」 のワーニングが出る可能性がありますが 動作に影響はありません。
ワーニングを消去したい場合は、ウィンドウ > 設定 を選択し、ダイアログの XML > XML ファイル >検証 ページの 「文法が指定されない場合の表示」「無視」に変更してください。
下記のWebサービスの配備記述子は上記のワーニングが出ます。

1.4.1.8. WebContentフォルダについて

既存動的Webプロジェクトに追加する場合、WebContentフォルダが WebContent 以外 (例:WebContentTest)にサービスを生成しようとした場合、WebContentフォルダ固定となります。 WebContentフォルダ以外の既存動的WebプロジェクトにWebサービスを生成することはサポートできません。

1.4.1.9. Webサービスの属する名前URIについて

「2.1.JAX-WS Web サービスを作成する( ウィザード )」の手順でWebサービスを作成した場合、ドメイン名の逆順にパッケージ名を作成します。
1.「www」はドメイン名でないため、パッケージ名に変換されません。
      例:Webサービスの属する名前URI に 「http://www.nec.co.jp/webotx 」を入力すると、jp.co.nec.webotx のパッケージが生成されます。
2.Javaキーワードのあるドメイン名に対し、Javaキーワードの前に「_」が付加されます。
      例:Webサービスの属する名前URI に 「http://sample.test.new/aaa 」と入力すると、「 _new.test.sample.aaa 」 のパッケージで生成されます。

1.4.1.10. タイムアウトについて

WSDLからWebサービスとクライアントを生成する場合、まれに「11033:wsimportコマンドの実行に失敗しました。」というエラーが発生します。タイムアウト時間の設定に関係している可能性があります。
タイムアウト時間の設定方法は下記の通りです:
<workspace>/.metadata/.plugins/org.eclipse.core.runtime/.settings 配下にある com.nec.webotx.webservice.prefs ファイルに timeout.time=設定時間 を追加します。
(例)timeout.time=5
※com.nec.webotx.webservice.prefs ファイルがなければ、手動で同じ名前のテキストファイルを新規作成する必要があります。
※設定時間は秒を単位に設定してください。

1.4.1.11. 開発環境での配備について

Webサービス化されたEJBプロジェクトを右クリックし、実行 > サーバーで実行 で配備することはできません。ほかの配備方法をご利用ください。
配備方法の詳細は、Webサービスの プログラミング・開発 > Webサービス > Web サービスのデプロイ の中で説明しています。

1.4.1.12. Webサービスエクスプローラーについて

JAX-RPC 形式のWebサービスでは、Webサービスエクスプローラーでの Webサービスのテストを利用することが出来ません。
Webサービス生成時に同時生成されるクライアントを利用してテストを行って下さい。

1.4.1.13. ビジネスロジックが読み込めない

配備記述子は正しく定義されていますか?

WARやEJB-JAR形式のビジネスロジックを読み込ませるときならば、配備記述子が存在するか確かめてください。また、その内容が正しいか確かめてください。EJB-JARファイルの場合、ステートレスセッションBeanが含まれており、Remoteインタフェースが定義されている必要があります。

アーカイブ内部のディレクトリ構成とパッケージ構成は合っていますか?

クラスに定義したパッケージとアーカイブ内部のディレクトリ構成が一致しないと読み込めません。

デフォルトパッケージのクラスではありませんか?

パッケージに属さないデフォルトパッケージのクラスの読み込みには対応していません。パッケージに属したビジネスロジックを読み込ませてください。

プロジェクトビルドは成功していますか?

Eclipseのプロジェクトビルドが成功していないプロジェクトは読み込むことができません。それは、ビジネスロジックとして指定したプロジェクトが参照するプロジェクトについても同じです。Antを使ってビルドしている場合などでEclipseのプロジェクトビルドが成功しない場合は、一旦アーカイブを作成し、それをビジネスロジックとして指定してください。

1.4.1.14. エラーコード11001で異常終了する

WebOTXホームディレクトリの設定を確認してください

Webサービス作成ウィザードでこのエラーで異常終了する場合、メニューからウィンドウ|設定で起動する設定画面の「WebOTX」の設定で、WebOTXホームディレクトリが正確に設定されていることを確認してください。

デフォルトのソースフォルダや出力フォルダを設定していませんか?

Webサービス作成ウィザードでこのエラーで異常終了する場合、メニューからウィンドウ|設定で起動する設定画面のJava|新規プロジェクトの設定で、ソースフォルダや出力フォルダを設定しているとこの問題が発生します。『初期設定』で説明されている通り、「ソースおよび出力フォルダ」は「プロジェクト」を選択してください。

1.4.1.15. エラーコード11003で異常終了する

tools.jarの設定を確認してください

Webサービス作成ウィザードでこのエラーで異常終了する場合、メニューからウィンドウ|設定で起動する設定画面のWebOTX|Webサービスの設定で、J2SE SDKに含まれるtools.jarが指定されていることを確認してください。

1.4.1.16. エラーコード18002または16001で異常終了する

Webサービスに使用できる型か確認してください

Webサービス化しようとしているメソッドの引数、返却値にWebサービスに使用できない型が使われていないかどうか確認してください。Webサービスに使用できるデータ型は4章プログラミング・開発にて説明しています。JavaBeanやJavaBeanの配列のときは、JavaBeanに内包される変数の型もチェックする必要があります。

JavaBeanの規則に従っているか確認してください

Webサービス化しようとしているメソッドの引数、返却値がJavaBeanやJavaBeanの配列のとき、そのJavaBeanが規則に従っていないとエラーになることがあります。これは、Webサービス作成の過程でWebサービス化するビジネスロジックをクラスロードしなければならないために発生することがあります。

1.4.2. 制限事項

特にありません。