Ответ 1
Использует ли
Endpoint.publish
сервер tomcat для размещения этого сервера или является ли он сервером мини-сотового типа?
JAX-WS RI Endpoint.publish
API по умолчанию использует легкую HTTP-версию сервера, которая включена в Sun Java SE 6. Итак, Нет, он использует не встроенный GlassFish и встроенный Tomcat, а тем более ваш существующий Tomcat install: он использует контейнер embedded, то есть что-то работает внутри одной JVM. Просто FYI, однако, возможно подключить другие реализации до тех пор, пока они предоставляют реализацию поставщика услуг (SPI). Например, Jetty 6 делает это, см. J2se6HttpServerSPI. Но я не собираюсь описывать все подробности здесь:)
Кажется, он не работает с моим установленным сервером tomcat, поскольку он говорит, что порт уже используется.
Как я уже говорил выше, API Enpoint.publish
не использует вашу существующую установку Tomcat. Он использует собственный сервер и позволяет развертывать веб-службу без необходимости упаковки и развертывания вашего приложения. Это особенно полезно при разработке (поскольку оно ускоряет работу). На самом деле это очень удобно.
Теперь, если у вас есть сервер Tomcat, работающий на порту 8082, и если вы попытаетесь опубликовать свой Endpoint
с помощью одного и того же порта, все будет работать так, как вы заметили. Используйте другой (и неиспользуемый) порт во время разработки.
И если вы хотите развернуть свои веб-службы для существующей установки Tomcat, вам придется упаковать их в войну и развернуть эту войну на Tomcat. Но это совершенно другое и не имеет никакого отношения к использованию API Endpoint.publish
.