- PR -

WebLogic & リテラルエンコーディング

1
投稿者投稿内容
ksaito
会議室デビュー日: 2004/12/20
投稿数: 1
投稿日時: 2004-12-20 23:33
お世話になります。ksaitoと申します。

現在、WebLogic Server 8.1(SP3)にて、ドキュメント指向(リテラルエンコーディング)のWebサービスの構築テストを行っているのですが、作成したクライアントスタブ殻サービスを呼び出した際にエラーが発生してしまい、うまく実行できずにいます(エラー内容を株に記載しました)。

(Axisのwsdl2javaを用いてスタブを作成した場合は問題なく実行できます。)

問題はシリアライズに関連しているようなのですが、回避方法がまったく分かりません・・・。

同じような現象に見舞われている方、いらっしゃいませんか?
原因をお分かりの方、いらっしゃればぜひご教授ください。よろしくお願いします。

【表示されるエラーメッセージ】
java.rmi.RemoteException: web service invoke failed: javax.xml.soap.SOAPException: failed to serialize class java.lang.Object weblogic.xml.schema.binding.SerializationException: type mapping lookup failure on class=class org.apache.crimson.tree.ElementNode TypeMapping=TYPEMAPPING SIZE=3

【サービスメソッド】
---------------------------------------

public class HogeService {

 public HogeService() {
 }

 public Document execute(org.w3c.dom.Document doc) throws Exception {

  //戻り値の生成
  org.w3c.dom.Document resultDoc = ...

  return resultDoc;
 }
}
---------------------------------------

【サービスのデプロイ】
servicegenタスク + serviceタスクを使用(style="document"オプションを付加)

 <servicegen
   destEar="${build}/${ear_file}"
   warName="${war_file_11}"
   keepGenerated="True">
   <service
    style="document"
    javaClassComponents="hoge.HogeService"
    targetNamespace="${namespace}"
    serviceName="HogeService"
    serviceURI="/HogeService"
    generateTypes="True"
    expandMethods="True"
    useSOAP12="false">
   </service>
  <classpath>
   <pathelement path="${build}"/>
   <pathelement path="${java.class.path}"/>
  </classpath>
 </servicegen>

【スタブの生成】
clientgenタスクを使用

 <clientgen
   wsdl="${url_literal_11}"autotype="true"
   packageName="${pkg}.weblogic.literal"
   keepGenerated="true"
   clientJar="${stub-weblogic-literal-11}"
  />

【クライアントコード】

public static void main(String[] args) {

 //スタブの生成
 HogeServicePort port = ...

 //DOMオブジェクトの生成
 Document doc = ...

 Object result = stub.execute(doc); // <-ここでエラーが発生する

}


[ メッセージ編集済み 編集者: ksaito 編集日時 2004-12-20 23:43 ]
1

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