我试图在AEM 6.2中创建SOAP服务(客户端无法进行REST调用)。现在它正常运行,问题是当我们重新部署或重置AEM实例时......然后服务端口被锁定。 "创建()"。
时出错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()&# 34;它说错了。
server.getDestination().shutdown();
server.stop();
server.destroy();
真的坚持了好几天,谢谢你的帮助。
答案 0 :(得分:0)
您应该创建一个OSGI包并在包内创建您的soap服务。
@Activate
public void activate(BundleContext bundleContext) throws Exception {
... start your soap service
}
@Deactivate
public void deactivate() throws Exception {
... stop your soap service
}
现在,您可以通过重新启动捆绑包来重新启动soap服务。这里是参考如何创建OSGI包。 http://www.aemcq5tutorials.com/tutorials/create-osgi-bundle-in-aem/