1.5. 注意制限事項
1.5.1. 注意事項
1.5.1.1. 同一プロジェクトに複数Webサービスを生成
プロジェクトに既に別のWebサービスが生成されている場合は、同一プロジェクトに複数Webサービスを生成することができません。
1.5.1.2. 「Webサービスの属する名前空間URI」について
「Web
サービスの属する名前空間URI」の値に基づいてパッケージを生成するため、長すぎる名前空間名を指定すると、
全体のファイルパス長がWindowsOS の制限となる256文字を超えることがあります。
1.5.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:import
- xsd:import
- xsd:include
その後、WSDL
ファイルの解析エラーが解消されない場合は、WSDLファイルの右クリックメニュー 検証
を選択してください。
1.5.1.4. web.xml(ejb-jar.xml)について
既存のプロジェクトにWebサービスを生成する場合、既存の
web.xml(ejb-jar.xml)の内容は変更されます。
以下の変更内容に該当する場合、生成する前にバックアップをとって、生成後に必要に応じて該当の記述をコピーして下さい。
- ejb-jar.xml のバージョンは3.0に変更されます。
- web.xml(ejb-jar.xml)にコメントなどが記述されている場合は、生成後に削除されます。
1.5.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.5.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 Logger logger = Logger.getLogger(sample.hello.HelloService_Service.class.getName());
static {
URL url = null;
try {
URL baseUrl;
baseUrl = sample.hello.HelloService_Service.class.getResource(".");
url = new URL(baseUrl, "http://localhost/Hello/helloservice?wsdl ");
} catch (MalformedURLException e) {
logger.warning("Failed to create URL for the wsdl Location: 'http://localhost/Hello/helloservice?wsdl', retrying as a local file");
......
}
Caution
ホスト名およびポート番号は環境に合わせて変更してください。
1.5.1.7. 配備記述子について
Webサービスの配備記述子に対して、「文書に対する文法制約 (DTD または XML
スキーマ) が検出されませんでした。」 のワーニングが出る可能性がありますが 動作に影響はありません。
ワーニングを消去したい場合は、ウィンドウ > 設定
を選択し、ダイアログの XML > XML ファイル >検証 ページの
「文法が指定されない場合の表示」を 「無視」に変更してください。
下記のWebサービスの配備記述子は上記のワーニングが出ます。
- nec-jaxws.xml
- nec-web.xml
- nec-ejb-jar.xml
- webservice.xml
1.5.1.8. WebContentフォルダについて
既存動的Webプロジェクトに追加する場合、WebContentフォルダが
WebContent 以外
(例:WebContentTest)にサービスを生成しようとした場合、WebContentフォルダ固定となります。
WebContentフォルダ以外の既存動的WebプロジェクトにWebサービスを生成することはサポートできません。
1.5.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.5.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.5.1.11. 開発環境での配備について
Webサービス化されたEJBプロジェクトを右クリックし、実行 >
サーバーで実行 で配備することはできません。ほかの配備方法をご利用ください。
配備方法の詳細は、Webサービスの プログラミング・開発 >
Webサービス > Web サービスのデプロイ
の中で説明しています。
1.5.1.12. Webサービスエクスプローラーについて
JAX-RPC 形式のWebサービスでは、Webサービスエクスプローラーでの
Webサービスのテストを利用することが出来ません。
Webサービス生成時に同時生成されるクライアントを利用してテストを行って下さい。
1.5.2. 制限事項
特にありません。