Клиент, перехватывающий исключения пользователя веб-службы [Java 6.0.17] - PullRequest
1 голос
/ 18 ноября 2009

Я пытаюсь отправить ИСКЛЮЧЕНИЕ с веб-сервера клиенту, использующему JAX-WS ... Когда сервер выдает исключение, клиент его ловит ... но содержимое не соответствует ожидаемому сообщению ...

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
ИНФОРМАЦИЯ: Динамически создаваемый объект EJB класса pck.jaxws.UserExceptionBean

Любые подсказки или помощь будут высоко оценены. Спасибо,

1 Ответ

0 голосов
/ 19 ноября 2009

Не уверен, но ваше пользовательское исключение выглядит странно. На самом деле вы должны super сообщение:

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

Таким образом, вы можете получить его по e.getMessage(). Посмотрите, поможет ли это.

...