2009-04-10 6 views
4

Я пытаюсь разоблачить метод веб-службы через аннотации JAX-WS. Многие примеры, которые я видел ссылки на метод EndPoint.publish(), чтобы быстро встать на службу в автономное приложение (напр от Java Web Services: и работает, первое издание):Сервлеты + JAX-WS

public class TimeServerPublisher { 
public static void main(String[ ] args) { 
    // 1st argument is the publication URL 
    // 2nd argument is an SIB instance 
    Endpoint.publish("http://127.0.0.1:9876/ts", new TimeServerImpl()); 
} 

}

Одна вещь, которую мне не хватает, заключается в том, как выполнить практически то же самое, но в существующем приложении. Могу ли я сделать сервлет, чтобы справиться с этим? Каков правильный способ публикации этой службы в существующем файле WAR?

ответ

3

В контейнере вам не нужно публиковать это объявление. Контейнер сделает публикацию. Если вы планируете использовать его на сервере JBoss, попробуйте JBossWS иначе для Tomcat или любого другого сервера Axis2 может быть лучшим выбором.

Подробнее читайте в следующих ссылках.

http://jbossws.jboss.org/mediawiki/index.php?title=JBossWS

http://ws.apache.org/axis2/

+1

Или CXF: http://cwiki.apache.org/CXF20DOC/servlet-transport.html –

+0

Да, я пропустил CXF :-) –

1

Как @Jerrish и @andri coments, в зависимости от ваших проблем есть разные апробации и решения.

Идея заключается в том, что вам не нужно устанавливать конфигурацию (порт и т. Д.), Когда будет опубликован ваш веб-сервис. Лучшим подходом может быть установка этого через файлы конфигурации (XML, свойства и т. Д.) Или использование @Annotations.

Например, если вы привыкли использовать фреймворки, такие как Guice или Spring, вы знаете, что возможно/рекомендуется начать контекст публикации вашего приложения или инициализировать некоторые объекты, фабрики, источники данных и т. Д., А публикация webservices - это другое задача, которая может быть выполнена в это время, потому что будет доступна, когда вы запустите приложение, не ?.

Кстати, у меня есть хороший опыт работы с CXF, а другое решение может быть Spring Web Services еще одним мощным решением для создания веб-сервисов.