Java: использование конечной точки для публикации веб-сервиса к серверу кота

я создаю простой веб-сервис 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";
    }
}
11
задан Jon Seigel 16 May 2010 в 01:55
поделиться

1 ответ

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 .

25
ответ дан 3 December 2019 в 03:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: