2016-08-11 8 views
0

AEM 6.2でSOAPサービスを作成しようとしています(クライアントはREST呼び出しを行うことができません)。今のところ、問題は再デプロイするか、AEMインスタンスをリセットした後にサービスのポートがロックされることです。 "create()"でエラーが発生しました。AEMのSOAPサービス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

あなたは解決策を見つけましたか?私は現在、ポートがロックされたままで、さらにユニットテストのクラスが同じJVMセッションで実行できないJUnitのテストケースシナリオで、この正確な問題に固執しています。 –

答えて

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/

+0

それは私の質問に答えません。実際にはOSGIバンドル内にsoapサービスを作成し、shutdown()stop()とdestroy()は無効になっています()。問題は、ポートが再起動または再デプロイ時にロックされるため、再度使用できないことです。石鹸サービスはそのアドレスの独立したJettyで開始されるので、AEMまたはバンドルの再起動は何もしません。 – ch0ke

関連する問題