【问题标题】:How to Change the Deployment Order of WSO2 Enterprise Integrator如何更改 WSO2 Enterprise Integrator 的部署顺序
【发布时间】:2018-04-15 16:41:45
【问题描述】:

在我的 ESB 项目中,我有很多数据服务和代理服务。并且代理服务按顺序调用数据服务。 在 5.x.x 版本中,DSS 和 ESB 是分开的,但从 EI 6.x.x 开始,它们会相互结合。问题是当我启动 EI 时,代理服务比数据服务更早部署。 EI 找不到调用的数据服务,所以无法部署代理服务。

我来宾我必须修复部署顺序,以便数据服务在代理服务之前启动。我该怎么做?

这是部署失败的代理服务之一:

TID: [-1234] [] [2017-11-03 08:14:35,121] 信息 {org.apache.synapse.core.axis2.ProxyService} - 构建 Axis 服务 代理服务:COMPLAIN_px {org.apache.synapse.core.axis2.ProxyService} TID:[-1234] [] [2017-11-03 08:14:35,122] 错误 {org.apache.synapse.core.axis2.ProxyService} - 读取错误 wsdl URI {org.apache.synapse.core.axis2.ProxyService} java.net.ConnectException:连接被拒绝(连接被拒绝) 在 java.net.PlainSocketImpl.socketConnect(本机方法) 在 java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350) 在 java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206) 在 java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188) 在 java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) 在 java.net.Socket.connect(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.plainConnect0(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.apache.synapse.config.SynapseConfigUtils.getOMElementFromURL(SynapseConfigUtils.java:316) 在 org.apache.synapse.core.axis2.ProxyService.buildAxisService(ProxyService.java:318) 在 org.apache.synapse.Axis2SynapseController.deployProxyServices(Axis2SynapseController.java:701) 在 org.apache.synapse.Axis2SynapseController.createSynapseEnvironment(Axis2SynapseController.java:390) 在 org.apache.synapse.ServerManager.start(ServerManager.java:182) 在 org.wso2.carbon.mediation.initializer.ServiceBusInitializer.initESB(ServiceBusInitializer.java:468) 在 org.wso2.carbon.mediation.initializer.ServiceBusInitializer.activate(ServiceBusInitializer.java:206) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java.lang.reflect.Method.invoke(Method.java:498) 在 org.eclipse.equinox.internal.ds.model.ServiceComponent.activate(ServiceComponent.java:260) 在 org.eclipse.equinox.internal.ds.model.ServiceComponentProp.activate(ServiceComponentProp.java:146) 在 org.eclipse.equinox.internal.ds.model.ServiceComponentProp.build(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.getEligible(Resolver.java:343) 在 org.eclipse.equinox.internal.ds.SCRManager.serviceChanged(SCRManager.java:222) 在 org.eclipse.osgi.internal.serviceregistry.FilteredServiceListener.serviceChanged(FilteredServiceListener.java:107) 在 org.eclipse.osgi.framework.internal.core.BundleContextImpl.dispatchEvent(BundleContextImpl.java:861) 在 org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230) 在 org.eclipse.osgi.framework.eventmgr.ListenerQueue.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.ServiceRegistrationImpl.register(ServiceRegistrationImpl.java:130) 在 org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.registerService(ServiceRegistry.java:214) 在 org.eclipse.osgi.framework.internal.core.BundleContextImpl.registerService(BundleContextImpl.java:433) 在 org.eclipse.osgi.framework.internal.core.BundleContextImpl.registerService(BundleContextImpl.java:451) 在 org.wso2.carbon.inbound.endpoint.persistence.service.InboundEndpointPersistenceServiceDSComponent.activate(InboundEndpointPersistenceServiceDSComponent.java:49) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java.lang.reflect.Method.invoke(Method.java:498) 在 org.eclipse.equinox.internal.ds.model.ServiceComponent.activate(ServiceComponent.java:260) 在 org.eclipse.equinox.internal.ds.model.ServiceComponentProp.activate(ServiceComponentProp.java:146) 在 org.eclipse.equinox.internal.ds.model.ServiceComponentProp.build(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.getEligible(Resolver.java:343) 在 org.eclipse.equinox.internal.ds.SCRManager.serviceChanged(SCRManager.java:222) 在 org.eclipse.osgi.internal.serviceregistry.FilteredServiceListener.serviceChanged(FilteredServiceListener.java:107) 在 org.eclipse.osgi.framework.internal.core.BundleContextImpl.dispatchEvent(BundleContextImpl.java:861) 在 org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230) 在 org.eclipse.osgi.framework.eventmgr.ListenerQueue.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.ServiceRegistrationImpl.register(ServiceRegistrationImpl.java:130) 在 org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.registerService(ServiceRegistry.java:214) 在 org.eclipse.osgi.framework.internal.core.BundleContextImpl.registerService(BundleContextImpl.java:433) 在 org.eclipse.osgi.framework.internal.core.BundleContextImpl.registerService(BundleContextImpl.java:451) 在 org.wso2.carbon.core.init.CarbonServerManager.initializeCarbon(CarbonServerManager.java:514) 在 org.wso2.carbon.core.init.CarbonServerManager.start(CarbonServerManager.java:219) 在 org.wso2.carbon.core.internal.CarbonCoreServiceComponent.activate(CarbonCoreServiceComponent.java:94) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java.lang.reflect.Method.invoke(Method.java:498) 在 org.eclipse.equinox.internal.ds.model.ServiceComponent.activate(ServiceComponent.java:260) 在 org.eclipse.equinox.internal.ds.model.ServiceComponentProp.activate(ServiceComponentProp.java:146) 在 org.eclipse.equinox.internal.ds.model.ServiceComponentProp.build(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.getEligible(Resolver.java:343) 在 org.eclipse.equinox.internal.ds.SCRManager.serviceChanged(SCRManager.java:222) 在 org.eclipse.osgi.internal.serviceregistry.FilteredServiceListener.serviceChanged(FilteredServiceListener.java:107) 在 org.eclipse.osgi.framework.internal.core.BundleContextImpl.dispatchEvent(BundleContextImpl.java:861) 在 org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230) 在 org.eclipse.osgi.framework.eventmgr.ListenerQueue.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.ServiceRegistrationImpl.register(ServiceRegistrationImpl.java:130) 在 org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.registerService(ServiceRegistry.java:214) 在 org.eclipse.osgi.framework.internal.core.BundleContextImpl.registerService(BundleContextImpl.java:433) 在 org.eclipse.equinox.http.servlet.internal.Activator.registerHttpService(Activator.java:81) 在 org.eclipse.equinox.http.servlet.internal.Activator.addProxyServlet(Activator.java:60) 在 org.eclipse.equinox.http.servlet.internal.ProxyServlet.init(ProxyServlet.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:1182) 在 org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1072) 在 org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5368) 在 org.apache.catalina.core.StandardContext.startInternal(StandardContext.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(ThreadPoolExecutor.java:1142) 在 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] WARN {org.apache.synapse.Axis2SynapseController} - 代理服务 无法部署 COMPLAIN_px - 在代理服务故障安全中继续 模式。 {org.apache.synapse.Axis2SynapseController}

【问题讨论】:

  • 听起来有点类似:wso2.org/jira/browse/ESBJAVA-3064 在我看来这个问题是已知的,但 WSO2 不愿意修复它。
  • 根据CAPP部署架构,EI无法确定CAPP中的其他服务。因此,无法控制订单。您是否尝试过在 CAPP 内的 artifacts.xml 文件中定义的订单数据服务和代理。我认为您可以使用它来控制行为。
  • 谢谢@vinok!我会试试你的建议,然后告诉你结果。

标签: wso2 wso2esb wso2dss wso2ei


【解决方案1】:

从架构的角度来看,将代理和服务提供者 (DSS) 放在同一个节点中并不是一个好的做法。

建议是分成不同的节点,在一种情况下,WSO2 EI 或 ESB 是服务容器(数据服务);在另一个提供代理服务的节点中。

使用这种方法,您将不会出现您描述的发病率。

希望对你有帮助;

【讨论】:

  • 我同意它不是很好的架构。我刚从 ESB 5.x 迁移过来,我想在一个节点中利用 DSS - ESB 组合的优势来减少延迟。
【解决方案2】:

我刚刚测试了这个。解压 CAPP。将 artifacts.xml 中定义的依赖项(工件)的顺序更改为您想要的顺序。再次存档并部署。检查魔法!

【讨论】:

  • 谢谢你,@vinok!我试过你的方法,它解决了我的问题。我希望我的问题和您的回答对其他人有用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-04
  • 1970-01-01
  • 2011-06-20
  • 1970-01-01
相关资源
最近更新 更多