- PR -

WSDDの記述エラーについての質問

1
投稿者投稿内容
未記入
会議室デビュー日: 2005/07/23
投稿数: 12
投稿日時: 2005-07-23 21:13

サーバ/クライアント共にJavaを用いて、Webサービスを作っています。
Tomcat+Axis1.1でファイル転送(Attachment機能)を組んでいるのですが、WSDDからWSDLを生成する時にエラーになります。

表示されるエラーは以下のものです.


/----ここから

AXIS error
Sorry, something seems to have gone wrong... here are the details:

Fault - ; nested exception is:
WSDLException: faultCode=OTHER_ERROR: Can't find prefix for 'urn:クラス名'. Namespace prefixes must be set on the Definition object using the addNamespace(...) method.:

AxisFault
faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException
faultSubcode:
faultString: WSDLException: faultCode=OTHER_ERROR: Can't find prefix for 'urn:クラス名'. Namespace prefixes must be set on the Definition object using the addNamespace(...) method.:
faultActor:
faultNode:
faultDetail:

ここまで----/


問題はWSDDのtypeMappingだと思いますが、どのようにすれば良いのでしょうか?
上記エラーログだけでは解決方法がわからず困っています。
#参考にしたサイトや書籍では、下記のような記述で問題なさそうなのですが...


/----WSDDここから
<deployment xmlns="http://xml.apache.org/axis/wsdd/"
xmlns:java="http://xml.apache.org/axis/wsdd/providers/java"
xmlns:myNS="urn:クラス名">

<service name="クラス名" style="java:RPC">
<parameter name="className" value="クラス名"/>
<parameter name="allowedMethods" value="*"/>
<parameter name="scope" value="session"/>
<typeMapping deserializer="org.apache.axis.encoding.ser.JAFDataHandlerDeserializerFactory"
languageSpecificType="java:javax.activation.DataHandler"
qname="myNS:DataHandler"
serializer="org.apache.axis.encoding.ser.JAFDataHandlerSerializerFactory"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
/>

</service>
</deployment>
WSDDここまで----/
しゅう
会議室デビュー日: 2004/02/07
投稿数: 7
投稿日時: 2005-07-24 00:13
Axis1.1でのファイル転送(Attachment機能)については詳しく知らないのですが、エラーを見る限り「urn:クラス名」がおかしいと怒られているのではないでしょうか?

他の要因で、typeMappingがおかしいと考えたのでしたら、その要因を教えていただければ解決に結びつくかもしれません。(ここにはすばらしい先輩方がたくさんいらっしゃいますので)

<deployment xmlns="http://xml.apache.org/axis/wsdd/"
xmlns:java="http://xml.apache.org/axis/wsdd/providers/java"
xmlns:myNS="urn:クラス名">   <---ここ

とりあえず、問題の箇所を削除してやってみてはいかがでしょうか?
未記入
会議室デビュー日: 2005/07/23
投稿数: 12
投稿日時: 2005-07-24 10:15
私もご指摘の通り、クラス名関係の部分かなと思ったのですが、

xmlns:myNS="urn:クラス名">   <---ここ
上記箇所の記述を削除してみたところ、AdminClientのコマンドが失敗し、
Axisへの登録そのものが失敗してしまいます。

>他の要因で、typeMappingがおかしいと考えたのでしたら、
>その要因を教えていただければ解決に結びつくかもしれません。

さしたる確証はないのですが、肝はDataHandlerの取り扱いだと思っています。
同じクラス名で、DataHandlerを使わない(Attachment機能を使わない)処理であれば、
動作は上手くいきます。
その場合wsddには <typeMapping>エレメントの記述は不要ですので、
今回 <typeMapping>のどこかで間違った記述や、記述が不足しているのでは? と思いまいした。

#他には、Axisのjar関係の不一致も考えてみたのですが、参考資料指定のものと変わらずでした。
未記入
会議室デビュー日: 2005/07/23
投稿数: 12
投稿日時: 2005-07-24 21:24
自レスです。

<deployment xmlns="http://xml.apache.org/axis/wsdd/"
xmlns:java="http://xml.apache.org/axis/wsdd/providers/java"
xmlns:myNS="http://xml.apache.org/xml-soap" >

上記のように3行目を変更することにより解決しました。
↓以下は参考URLです。
http://www.mail-archive.com/axis-user@xml.apache.org/msg12024.html
1

スキルアップ/キャリアアップ(JOB@IT)