- PR -

SOAPFault にメッセージをセットするには

1
投稿者投稿内容
minitotoro
会議室デビュー日: 2003/12/21
投稿数: 1
投稿日時: 2004-09-01 17:43
はじめまして。現在AXISを利用してメッセージのやりとりを行っています。
SoupFaultのdetail部に独自の値をセットしようと試みているのですが、うまくいきません。

以下サーバー側のソースです
--------------------------
public class HelloAxis {

public void sayHello() {

Date date;
String dateTime;
Detail detail = null;

try {
System.out.println("sayHello called");
detail = SOAPFactory.newInstance().createDetail();
detail.addChildElement("errCd").addTextNode("001");
detail.addChildElement("errMsg").addTextNode("error message");

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

throw new SOAPFaultException(new QName( "http://localhost:8080/","sayHello" ),
"helloSOAPFault method failed","http://localhost:8080/axis/HelloAxis.jws",detail );

}

}

-----
client側のソースです

public class HelloAxisClient {

public static void main(String[] args) throws Exception{
Response resp;
try{

String endpoint = "http://localhost:8080/axis/HelloAxis.jws";

Service service = new Service();
Call call = (Call) service.createCall();

call.setTargetEndpointAddress( new java.net.URL(endpoint) );
call.setOperationName(new QName("http://localhost:8080/", "sayHello"));
String ret = (String) call.invoke( new Object[0] );

}catch( Exception exception ){
exception.printStackTrace();
}
}

このとき結果はfaultCodeとfaultStringしか取得できていません。
faultDetailにセットした
>detail.addChildElement("errCd").addTextNode("001");
>detail.addChildElement("errMsg").addTextNode("error message");
を出すにはどうすればよろしいでしょうか。
よろしくお願いします

uk
ぬし
会議室デビュー日: 2003/05/20
投稿数: 1155
お住まい・勤務地: 東京都
投稿日時: 2004-09-03 16:18
クライアント側でExceptionをcatchしているところを、SOAPFaultExceptionをcatchする
ように変えたら取得できませんか?
1

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