Включает ли Java 7 реализацию JAX-WS или только API? - PullRequest
13 голосов
/ 02 февраля 2012

Мне сказали, что Java 7 должна включать JAX-WS, так что мне не нужны библиотеки, подобные тем, что есть в Apache CXF.Однако в официальных документах говорится:

Этот выпуск содержит Java API для обработки XML (JAXP) 1.4.5, поддерживает архитектуру Java для привязки XML (JAXB) 2.2.3,и поддерживает Java API для веб-служб XML (JAX-WS) 2.2.4.

Кроме того, на странице Eclipse в JAX-WS говорится об использовании реализаций, таких как Apache CXF,Метро Солнца или Apache Axis.И каждый пример / учебник, который я могу найти на JAX-WS, использует набор библиотек, такой как CXF или Metro.

У меня есть проект в Eclipse, который вызывает «Endpoint.publish (...)» для класса сjavax.jws.WebService аннотация.Файл WSDL, указанный ниже, находится вне Eclipse.Этот проект работает (как «Java-приложение»), прекрасно с библиотеками Apache CXF.Как только я удаляю их (и ссылки Eclipse на Apache CXF), происходит сбой со следующим исключением:

com.sun.xml.internal.ws.server.ServerRtException: [failed to localize] cannot.load.wsdl(http://localhost:8081/wsdl/csw.wsdl)
    at com.sun.xml.internal.ws.transport.http.server.EndpointImpl.getPrimaryWsdl(EndpointImpl.java:313)

Так что я либо делаю что-то не так, либо Apache предоставляет реализации вещей, для которых JDKСам по себе имеет только API.Укажите, в чем дело, вместе с обычной ссылкой на что-то актуальное.

1 Ответ

10 голосов
/ 02 февраля 2012

JDK 7 (например, 6) включает реализацию на основе метро.

Как вы можете видеть из вашего исключения, внутренняя реализация работает "com.sun.xml.internal.ws.transport.http.server.EndpointImpl". Кажется, проблема в том, что вам не нравится ваш WsdlLocation (я думаю, что jaxws ожидает локальный ресурс, но вы предоставили ему ресурс http).

...