2009-11-18 83 views
1

我想從Web服務器發送到客戶端使用JAX-WS的異常... 當服務器拋出異常時,客戶端確實會捕獲它......但內容不是預期的訊息...客戶端捕獲Web服務用戶異常[Java 6.0.17]

Server.java

package pck; 

@WebService() 
public class Server 
{ 
    @WebMethod() 
    public function() throws UserException 
    { 
    throw new UserException(「Something」); 
    } 
} 

Exception.java

import javax.xml.ws.WebFault; 

@WebFault() 
public class UserException 
     extends Exception 
{ 
    private String ErrMessage; 

    public UserException(String message) 
    { 
     this.ErrMessage = message; 
    } 

    public String ErrorMessage() 
    { 
     return this.ErrMessage; 
    } 
} 

Client.java

0123現在
public class Client 
{ 
    public static void main(String[] args) throws Exception 
    { 
    try 
     { 
     Server.function(); 
     } 
    catch (UserException ex) 
     { 
     System.out.println("User Exception: " + ex.ErrorMessage()); 
     } 
    } 
} 

,正如我所說,當異常是由服務器拋出的客戶端不抓住它,但ex.ErrorMessage()返回字符串「pck.UserException」,而不是「東西」,它與創建在服務器......任何線索爲什麼?

此外,當我跑我的WebService我一直在輸出得到以下信息: com.sun.xml.internal.ws.model.RuntimeModeler getExceptionBeanClass
INFO:動態創建例外bean類pck.jaxws.UserExceptionBean

任何線索或幫助將不勝感激。 謝謝,

回答

0

不確定,但您的自定義異常看起來很奇怪。你其實應該super消息:

public UserException(String message) { 
    super(message); 
} 

這樣你就可以通過e.getMessage()得到它。看看它是否有幫助。

+0

不 - 給我相同的字符串... – Shaitan00 2009-11-19 08:06:34