我正在尝试使用JAX-WS从Web服务器向客户端发送EXCEPTION ... 当服务器抛出异常时,客户端会捕获它...但内容不是预期的消息...
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
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
信息:动态创建异常bean类pck.jaxws.UserExceptionBean
任何线索或帮助将不胜感激。 谢谢,
答案 0 :(得分:0)
不确定,但您的自定义异常看起来很奇怪。事实上你应该super
消息:
public UserException(String message) {
super(message);
}
这样你可以通过e.getMessage()
获得它。看看它是否有帮助。