簡體   English   中英

客戶端捕獲Web服務用戶異常[Java 6.0.17]

[英]Client catching Web Service User Exceptions [Java 6.0.17]

我正在嘗試使用JAX-WS從Web服務器向客戶端發送EXCEPTION ...服務器拋出異常時,客戶端會捕獲到該異常...但是內容不是預期的消息...

服務器.java

package pck;

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

異常

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;
    }
}

客戶端.java

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”,而不是在服務器中使用它創建的“ Something”。為什么有任何線索?

另外,當我運行WebService時,我不斷在輸出中得到以下消息:com.sun.xml.internal.ws.model.RuntimeModeler getExceptionBeanClass
INFO:動態創建異常bean類pck.jaxws.UserExceptionBean

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

不確定,但是您的自定義異常看起來很奇怪。 實際上,您應該super提示:

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

這樣,您可以通過e.getMessage()獲得它。 看看是否有幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM