2009-11-18 106 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