barbitoff programmer`s blog

Здесь я публикую заметки из программерской жизни: грабли, на которые мне случилось наступить, проблемы, для которых было найдено элегантное (или не очень) решение, а также все, с чем мне пришлось столкнуться и чем хотелось бы поделиться =)
PS Если хотите меня поблагодарить - на странице есть 3 места, чтобы это сделать =)

пятница, 13 января 2012 г.

cannot find symbol symbol : constructor Service(java.net.URL,javax.xml.namespace.QName,javax.xml.ws.WebServiceFeature[]) location: class javax.xml.ws.Service super(wsdlLocation, CONFIRMSERVICE_QNAME, features);

Проблема: 
При компиляции проекта, использующего JAX-WS и клиент веб-сервиса, сгенерированный по WSDL, вылетает ошибка, ругающаяся на код, сгенерированный wsimport`ом:
cannot find symbol symbol : constructor Service(java.net.URL,javax.xml.namespace.QName,javax.xml.ws.WebServiceFeature[]) location: class javax.xml.ws.Service super(wsdlLocation, CONFIRMSERVICE_QNAME, features);
Причина:
Wsimport и компилятор используют разные версии JAX-WS (например, wsimport использует 2.1, а компилятор - 2.2).

Решение:
Исправить либо библиотеки, используемые компилятором, либо используемые wsimport`ом (первый использует библиотеки, подключенные к проекту, а второй - библиотеки JDK, их можно переопределить через endorsed-механизм).

2 комментария:

  1. Можно поподробней описать, как пофиксить эту ошибку? Я пробовал добавить webservices-api.jar в jre/lib/endorsed, но так и не помогло

    ОтветитьУдалить
  2. Установка JAXWS помогла

    ОтветитьУдалить