я создаю простой веб-сервис SOAP. я должен удостовериться, что это работает на веб-сервисе кота.
Я пытаюсь реализовать это с JAX-WS (см. код),
мой вопрос: Endpoint.publish использует сервер кота для хостинга этого, или действительно ли это - мини-вид glassfish сервера?
я должен расширять UnicastRemoveObject или что-то подобное вместо этого?
идеально это смогло бы быть упакованным в.WAR и заглядываться каталог и просто работало бы.
Это, кажется, не работает с моим установленным сервером кота, как то, потому что это говорит, что порт уже используется. Я использую Ubuntu, кармическую с tomcat6 установленным пакетом, это мог также быть мой пользователь, не имеет полномочий опубликовать рабочему коту на 8 080
я надеюсь, что этот вопрос достаточно ясен
пример кода:
@WebService
public class UserAttributes {
public static void main(String[] args) {
UserAttributes instance = new UserAttributes();
Endpoint.publish("http://localhost:8082/WebServices/userattributes",
instance);
}
public string Hello() {
return "Hello World";
}
}
EndPoint.publish
Используйте сервер Tomcat для размещения этого или это мини-местный рыб. Сервер?
JAX-WS RI EndPoint.publish
API использует по умолчанию Внедрение света HTTP-сервер , которая включена в Sun's Java SE 6. Так что нет, это не так много Использовать встроенный Glassfish ни встроенный Tomcat и еще меньше, ваша существующая установка TOMCAT: Он использует встроенный контейнер , т.е. что-то работает внутри того же JVM. Как правило, это, однако, можно подключить другие реализации до тех пор, пока они предоставляют реализацию поставщика услуг (SPI). Например, мола 6 делает это, см. j2se6httpserverspi . Но я не собираюсь охватывать все детали здесь :)
, похоже, с моим установленным сервером Tomcat не работает, потому что он говорит, что порт уже используется.
Как я уже говорил выше, API enpoint.publish
не использует вашу существующую установку TOMCAT. Он использует свой собственный сервер и позволяет развертывать ваш веб-сервис без использования и развертывания вашего приложения. Это особенно полезно во время развития (поскольку он ускоряет вещи). На самом деле, это чрезвычайно удобно.
Теперь, если у вас есть сервер Tomcat, работающий на порту 8082, и если вы попытаетесь опубликовать вашу конечную точку
, используя один и тот же порт, все не будут работать, как вы заметили. Используйте другой (и неиспользуемый) порт во время разработки.
И если вы хотите развернуть ваши веб-сервисы на существующую установку Tomcat, вам придется упаковать их в войну и развернуть эту войну на Tomcat. Но это совершенно другое и не имеет ничего общего с использованием EndPoint API. Publish
.