как использовать jaxws для класса, ссылающегося на интерфейс - PullRequest
0 голосов
/ 22 июля 2010

У меня есть класс Java, который мне нужно аннотировать для веб-службы.Все настроено, компилируется и т. Д., Wsdl генерируется с использованием плагина maven для wsprovide ... у меня проблема в том, что класс ссылается на интерфейс ...

@WebService(name = "myWebService", targetNamespace = "......")
@SOAPBinding(style = SOAPBinding.Style.RPC)

public class MyClassImpl implements MyClass {
protected TheService m_theService;
/**
 * @return the theService
 */
public TheService getTheService() {
    return m_theService;
}

TheService - это интерфейспоэтому я получаю сообщение об ошибке JAXB ... TheService - это интерфейс, а JAXB не может обрабатывать интерфейсы.Метод getTheService не нужно показывать в веб-сервисе, но я не понимаю, как его обойти.Может кто-нибудь объяснить, что делать в этой ситуации?

Ответы [ 2 ]

0 голосов
/ 13 августа 2012

Вы можете аннотировать любой метод, который не требуется отображать, с помощью:

@WebMethod(exclude = true)

Таким образом, wsgen будет игнорировать метод при генерации артефактов JAX-WS.

0 голосов
/ 22 июля 2010

Решено!Нашел это вскоре после публикации этого сообщения и смог решить мои проблемы :-)

https://jaxb.dev.java.net/guide/Mapping_interfaces.html

...