Как изменить порядок развертывания WSO2 Enterprise Integrator
В моем проекте ESB у меня есть много Data Services и Proxy Services. А Proxy Services называют Data Services последовательно. В версиях 5.xx DSS и ESB отделены, но из EI 6.xx они объединяются друг с другом. Проблема в том, что когда я запускаю EI, Proxy Services развертываются раньше, чем Data Services. EI не может найти вызываемые Data Services, поэтому Proxy Services не могут быть развернуты.
Мне нужно исправить порядок развертывания, чтобы службы данных запускались до прокси-служб. Как я могу это сделать?
Вот одна из неудачно развернутых прокси-служб:
TID: [-1234] [] [2017-11-03 08: 14: 35,121] INFO {org.apache.synapse.core.axis2.ProxyService} - Служба построения Axis для службы прокси: COMPLAIN_px {org.apache.synapse.core.axis2.ProxyService} TID: [-1234] [] [2017-11-03 08:14:35,122] ERROR {org.apache.synapse.core.axis2.ProxyService} - Ошибка чтения из URI wsdl {org.apache.synapse.core.axis2.ProxyService} java.net.ConnectException: соединение отклонено (соединение отклонено) на java.net.PlainSocketImpl.socketConnect(собственный метод) на java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350) на java.net.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206) при java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188) в java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) в java.net.Socket. подключиться (Socket.java:589) на sun.net.NetworkClient.doConnect(NetworkClient.java:175) на sun.net.www.http.HttpClient.openServer(HttpClient.java:463) на sun.net.www.http.HttpClient.openServer(HttpClient.java:558) на sun.net.www.http.HttpClient.(HttpClient.java:242) на sun.net.www.http.HttpClient.New(HttpClient.java:339) на sun.net.www.http.HttpClient.New(HttpClient.java:357) на sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:1202) на sun.net.www.protocol.http.HttpURLConnection Java:1138) на sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1032) на sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:966) на sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1546) в sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1474) в org.apachefligSynSF (SynapseConfigUtils.java:316) по адресу org.apache.synapse.core.axis2.ProxyService.buildAxisService(ProxyService.java:318) по адресу org.apache.synapse.Axis2SynapseController.deployProxySeryn.jpg: Axis2:701) в org.apache.synapse.Axis2SynapseController.createSynapseEnvironment(Axis2SynapseController.java:390) в org.apache.synapse.ServerManager.start(ServerManager.java:182) в org.izerit.inserin.Bit. (ServiceBusInitializer.java:468) по адресу org.wso2.carbon.mediation.initializer.ServiceBusInitializer.activate(ServiceBusInitializer.java:206) по адресу sun.reflect.NativeMethodAccessorImpl.invoke0(собственный метод).java:62) в sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) в java.lang.reflect.Method.invoke(Method.java:498) в org.eclipse.equinox.delternal.mo.ServiceComponent.activate(ServiceComponent.java:260) в org.eclipse.equinox.internal.ds.model.ServiceComponentProp.activate(ServiceComponentProp.java:146) в org.eclipse.equinox.internal.ds.moild.Pervice.ds.mobu.Service.Serv. ServiceComponentProp.java:345) в org.eclipse.equinox.internal.ds.InstanceProcess.buildComponent(InstanceProcess.java:620) по адресу org.eclipse.equinox.internal.ds.InstanceProcess.buildComponents(InstanceProcess.java:197) по адресу org.eclipse.equinox.internal.ds.Resolver.ver.ljptable(343) в org.eclipse.equinox.internal.ds.SCRManager.serviceChanged(SCRManager.java:222) в org.eclipse.osgi.internal.serviceregistry.FilteredServiceListener.serviceChanged(FilteredServiceListener.josos.jos10.jos10: atj..framework.internal.core.BundleContextImpl.dispatchEvent(BundleContextImpl.java:861) в org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230) в org.giue.melg.dispatchEventSynchronous(ListenerQueue.java:148) при org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEventPrivileged(ServiceRegistry.java:819) в org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEvent(ServiceRegistry.java:771) в org.eclipse.osgi.internal.serviceregistry.ServiceRegistra ionImpl.register(ServiceRegistrationImpl.java:130) в org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.registerService(ServiceRegistry.java:214) в org.eclipse.osgi.framework.internal.core.BundleContexttemperImpl Java:433) в org.eclipse.osgi.framework.internal.core.BundleContextImpl.registerService(BundleContextImpl.java:451) в org.wso2.carbon.inbound.endpoint.persistence.service.InboundEndpointPersistenceServiceEndisPerviceDomserSponentSPerviceSentviceSentviceSentviceSP 49) в sun.reflect.NativeMethodAccessorImpl.invoke0(собственный метод) в sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) в sun.reflect.DelegatingMethodAccessorImpl.jetj.jj.Method.invoke (Method.java:498) в org.eclipse.equinox.internal.ds.model.ServiceComponent.activate(ServiceComponent.java:260) в org.eclipse.equinox.internal.ds.model.ServiceComponentPac.ac (ServiceComponentPro p.java:146) в org.eclipse.equinox.internal.ds.model.ServiceComponentProp.build(ServiceComponentProp.java:345) в org.eclipse.equinox.internal.ds.InstanceProcess.buildComponent (InstancePro20). в org.eclipse.equinox.internal.ds.InstanceProcess.buildComponents(InstanceProcess.java:197) в org.eclipse.equinox.internal.ds.Resolver.getElitable(Resolver.java:343) в org.eclipse.equinox.ds.SCRManager. (BundleContextImpl.java:861) в org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230) в org.eclipse.osgi.framework.eventmgr.ListenerQueue.dischronuejer (org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEventPrivileged(ServiceRegistry.java:819) в org.eclipse.os файл registerService (ServiceRegistry.java:214) в org.eclipse.osgi.framework.internal.core.BundleContextImpl.registerService(BundleContextImpl.java:433) в org.eclipse.osgi.framework.internal.core.BundlConteIcontext Java: 451) в org.wso2.carbon.core.init.CarbonServerManager.initializeCarbon(CarbonServerManager.java:514) в org.wso2.carbon.core.init.CarbonServerManager.start(CarbonServerManager.gava): org:.carbon.core..invoke (De legatingMethodAccessorImpl.java:43) в java.lang.reflect.Method.invoke(Method.java:498) в org.eclipse.equinox.internal.ds.model.ServiceComponent.activate (ServiceComponent.java:260lse) в org..equinox.internal.ds.model.ServiceComponentProp.activate (ServiceComponentProp.java:146) в org.eclipse.equinox.internal.ds.model.ServiceComponentProp.build(ServiceComponentProp.java:345) в orgin.ecl.ds.InstanceProcess.buildComponent (InstanceProcess.java:620) в org.eclipse.equinox.internal.ds.InstanceProcess.buildComponents(InstanceProcess.java:197) в org.eclipse.equinox.internal.ds.Resolver Resolver..java: 343) в org.eclipse.equinox.internal.ds.SCRManager.serviceChanged(SCRManager.java:222) в org.eclipse.osgi.internal.serviceregistry.FilteredServiceListener.serviceChanged (FilteredSeravaL7).7 eclipse.osgi.framework.internal.core.BundleContextImpl.dispatchEvent(BundleContextImpl.java:861) в org.eclipse.osgi.framework.eventmgr.EventManager.d ispatchEvent (EventManager.java:230) по адресу org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:148) по адресу org.eclipse.osgi.internal.serviceregistry.ServiceRegeryEvile.Revice в org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEvent(ServiceRegistry.java:771) в org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.register(ServiceRegistrationImpl.java:1ternal.g. org или org.g..serviceregistry.ServiceRegistry.registerService (ServiceRegistry.java:214) в org.eclipse.osgi.framework.internal.core.BundleContextImpl.registerService(BundleContextImpl.java:433) в org.eclipse.ternalpl..registerHttpService(Activator.java:81) в org.eclipse.equinox.http.servlet.internal.Activator.addProxyServlet(Activator.java:60) в org.eclipse.equinox.http.servlet.internal.ProxyServerin..java:40) в org.wso2.carbon.tomcat.ext.servlet.DelegationServlet.init(DelegationServlet.java:38) в org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1269) в org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:11).apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1072) в org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5368) в org.apache.catalina.core.StandardContext.start.java:5660) в org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145) в org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1571) в org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1561) в java.util.concurrent.FutureTask.run(FutureTask.java:266) в java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPool): в java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) в java.lang.Thread.run(Thread.java:748) TID: [-1234] [] [2017-11-03 08:14:35,124] Вт ARN {org.apache.synapse.Axis2SynapseController} - прокси-сервис COMPLAIN_px не может быть развернут. - Продолжить в отказоустойчивом режиме прокси-службы. {} Org.apache.synapse.Axis2SynapseController
2 ответа
С точки зрения архитектуры не рекомендуется размещать прокси и поставщиков услуг (DSS) в одном узле.
Рекомендуется разделить на разные узлы, где в одном случае ESO или ESB WSO2 является контейнером услуг (Data Services); в другом узле, предоставляющем сервисы прокси.
При таком подходе у вас не будет случаев, которые вы описываете.
Я надеюсь, что это поможет вам;
Я только что проверил это. Разархивируйте CAPP. Измените порядок, в котором определяются зависимости (артефакты) в файле artifacts.xml, на нужный вам порядок. Снова заархивируйте его и разверните. Проверьте магию!