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