2016-08-11 3 views
0

Я пытаюсь создать службу SOAP в AEM 6.2 (клиент не может сделать вызов REST). В настоящее время это происходит и работает, проблема в том, когда мы повторно развертываем или экземпляр AEM сбрасывается ... тогда порт службы блокируется. Ошибка в «create()».Служба SOAP в AEM 6.2

final JaxWsServerFactoryBean jaxWsServerFactoryBean = new JaxWsServerFactoryBean(); 
jaxWsServerFactoryBean.setServiceClass(getWebServiceClass()); 
jaxWsServerFactoryBean.setAddress(this.webServiceAddress); 
jaxWsServerFactoryBean.setServiceBean(this); 
jaxWsServerFactoryBean.getInInterceptors().add(new LoggingInInterceptor()); 
jaxWsServerFactoryBean.getOutInterceptors().add(new LoggingOutInterceptor()); 

server = jaxWsServerFactoryBean.create(); 

*ERROR* [OsgiInstallerImpl] org.apache.cxf.transport.http_jetty.JettyHTTPServerEngine Could not start Jetty server on port 4,517: Address already in use: bind 

В первый раз я раскрываю отлично работает, но тогда я должен изменить порт для каждого повторного развёртывания ... Я закрываю сервер, если существует до этого создания, и если я буду называть «isStarted()» он говорит ложный.

server.getDestination().shutdown(); 
server.stop(); 
server.destroy(); 

Действительно застрял в течение нескольких дней на этом, спасибо вам за помощь.

+0

Не ответ, но это один упрямый потребитель услуг, который хочет использовать только мыло. – Abhishek

+0

Вы нашли решение? В настоящее время я придерживаюсь этой точной проблемы в сценарии сценария JUnit, где порт также остается заблокированным, а дополнительные классы модулей тестирования не могут выполняться на одном сеансе JVM. –

ответ

0

Вы должны создать комплект OSGI и создать свою мыльную службу внутри пакета.

@Activate 
public void activate(BundleContext bundleContext) throws Exception { 
    ... start your soap service 
} 

@Deactivate 
public void deactivate() throws Exception { 
    ... stop your soap service 
} 

Теперь вы можете перезапустить свое мыльное обслуживание, перезапустив комплект. вот ссылка, как создать пакет OSGI. http://www.aemcq5tutorials.com/tutorials/create-osgi-bundle-in-aem/

+0

Это не отвечает на мой вопрос. Фактически я создаю мыльную службу внутри пакета OSGI, и что shutdown() stop() и destroy() дезактивируются(). Проблема в том, что порт блокируется, поэтому перезапуск или повторное развертывание он не может быть использован повторно. Мыльная служба запускается в независимом Jetty по этому адресу, так что перезапуск AEM или пулов ничего не делает. – ch0ke

Смежные вопросы