- PR -

WebLogic Workshop9.2でのWebサービス例外

1
投稿者投稿内容
Ks
会議室デビュー日: 2008/04/25
投稿数: 2
投稿日時: 2008-04-25 18:35
WebLogicWorkshop9.2.3でWebサービスの開発を行っております。
現在、Webサービスでの例外処理について調査しているのですが、SOAPFactoryのインスタンスを取得するところでエラーになってしまいます。

※--------- ソースコード ---------
package services;

import javax.jws.*;
import javax.xml.namespace.QName;
import javax.xml.rpc.soap.SOAPFaultException;
import javax.xml.soap.Detail;
import javax.xml.soap.SOAPException;
import javax.xml.soap.SOAPFactory;

@WebService
public class SampleWebService {
@WebMethod
public void b2cGatewayXMLService() {

Detail detail = null;

try {
//***** ここでエラー発生 *****
SOAPFactory soapFactory = SOAPFactory.newInstance();

detail = soapFactory.createDetail();
detail.addChildElement("errorCd").addTextNode("E001");
detail.addChildElement("errorMsg").addTextNode("エラー");

}catch (SOAPException e) {
e.printStackTrace();

}

QName faultCode = null;
String faultString = "the fault string";
String faultActor = "the fault actor";

throw new SOAPFaultException(faultCode, faultString, faultActor, detail);
}
}


※--------- エラー内容 ---------
javax.xml.soap.SOAPException: Unable to create SOAP Factory: Provider com.sun.xm
l.messaging.saaj.soap.ver1_1.SOAPFactory1_1Impl not found
at javax.xml.soap.SOAPFactory.newInstance(Unknown Source)
at services.SampleWebService.b2cGatewayXMLService(SampleWebService.java:19)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)

(以下略)


「SOAPFactory1_1Impl」が無いと言っているようなのですが、これが何を指しているのかが分かりません。
ご存知の方がいらっしゃいましたらご教示ください。
よろしくお願い致します。

99ri
大ベテラン
会議室デビュー日: 2006/09/09
投稿数: 129
投稿日時: 2008-05-03 03:08
引用:

Ksさんの書き込み (2008-04-25 18:35) より:
WebLogicWorkshop9.2.3でWebサービスの開発を行っております。
「SOAPFactory1_1Impl」が無いと言っているようなのですが、これが何を指しているのかが分かりません。



SAAJ (SOAP with Attachments API for Java の略)
SOAPメッセージをゼロから構築するのを支援するインターフェースとクラスを定義したものです

weblogic起動時にSAAJ の
仕様を実装しているクラスをシステムプロパティに指定する必要があります

設定例 Windows版です
ドメインディレクトリの起動スクリプトに追加
C:/bea/weblogic92/samples/domains/workshop/startWebLogic.cmd
コード:
set EXTRA_JAVA_PROPERTIES=%EXTRA_JAVA_PROPERTIES% -Djavax.xml.soap.SOAPFactory=weblogic.xml.saaj.SOAPFactoryImpl


binの起動スクリプトでsetDomainEnv.cmdをコールした時に上記が参照されます

参考URL
http://edocs.beasys.co.jp/e-docs/wls/docs92/webserv/jws.html
WebLogic Web サービス プログラマーズ ガイド
JWS ファイルのプログラミング
例外の送出

SOAPFactory の独自の実装を使用することも、BEA の実装を使用することもできます。
実行時には、-Djavax.xml.soap.SOAPFactory フラグを使用して、BEA の SOAPFactory 実装を指定します。
-Djavax.xml.soap.SOAPFactory=weblogic.xml.saaj.SOAPFactoryImpl

参考URL
forum.java.sun.com/thread.jspa?threadID=650735&messageID=9975039
 Unable to create SOAP connection factoryの最後
Ks
会議室デビュー日: 2008/04/25
投稿数: 2
投稿日時: 2008-05-07 10:35
99ri様

教えて頂いたとおりの対応で解決する事ができました。

ありがとうございました。
1

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